@@ -37,8 +37,8 @@ def self.define_read_only_global(name, getter)
37
37
alias $" $LOADED_FEATURES
38
38
39
39
# The runtime needs to access these values, so we want them to be set in the variable storage.
40
- global_variable_set ( :$LOAD_PATH , LOAD_PATH )
41
- global_variable_set ( :$LOADED_FEATURES , LOADED_FEATURES )
40
+ Truffle . invoke_primitive : global_variable_set, :$LOAD_PATH , LOAD_PATH
41
+ Truffle . invoke_primitive : global_variable_set, :$LOADED_FEATURES , LOADED_FEATURES
42
42
43
43
define_read_only_global ( :$* , -> { ARGV } )
44
44
@@ -48,37 +48,39 @@ def self.define_read_only_global(name, getter)
48
48
49
49
define_hooked_variable (
50
50
:$/ ,
51
- -> { global_variable_get ( :$/ ) } ,
52
- -> v { if v && !Truffle ::Type . object_kind_of? ( v , String )
53
- raise TypeError , '$/ must be a String'
54
- end
55
- global_variable_set ( :$/ , v ) } )
51
+ -> { Truffle . invoke_primitive :global_variable_get , :$/ } ,
52
+ -> v {
53
+ if v && !Truffle ::Type . object_kind_of? ( v , String )
54
+ raise TypeError , '$/ must be a String'
55
+ end
56
+ Truffle . invoke_primitive :global_variable_set , :$/ , v
57
+ } )
56
58
57
59
$/ = "\n " . freeze
58
60
59
61
alias $-0 $/
60
62
61
63
define_hooked_variable (
62
64
:'$,' ,
63
- -> { global_variable_get ( :$,) } ,
64
- -> v { if v && !Truffle ::Type . object_kind_of? ( v , String )
65
- raise TypeError , '$, must be a String'
66
- end
67
- global_variable_set ( :$,, v ) } )
65
+ -> { Truffle . invoke_primitive :global_variable_get , :$, } ,
66
+ -> v {
67
+ if v && !Truffle ::Type . object_kind_of? ( v , String )
68
+ raise TypeError , '$, must be a String'
69
+ end
70
+ Truffle . invoke_primitive :global_variable_set , :$,, v
71
+ } )
68
72
69
73
$, = nil # It should be defined by the time boot has finished.
70
74
71
75
$= = false
72
76
73
77
define_hooked_variable (
74
78
:$VERBOSE ,
75
- -> { global_variable_get ( :$VERBOSE ) } ,
76
- -> v { v = if v . nil?
77
- nil
78
- else
79
- !!v
80
- end
81
- global_variable_set ( :$VERBOSE , v ) } )
79
+ -> { Truffle . invoke_primitive :global_variable_get , :$VERBOSE } ,
80
+ -> v {
81
+ v = v . nil? ? nil : !!v
82
+ Truffle . invoke_primitive :global_variable_set , :$VERBOSE , v
83
+ } )
82
84
83
85
Truffle ::Boot . redo do
84
86
$DEBUG = Truffle ::Boot . get_option 'debug'
@@ -98,17 +100,21 @@ def self.define_read_only_global(name, getter)
98
100
99
101
define_hooked_variable (
100
102
:$stdout ,
101
- -> { global_variable_get ( :$stdout ) } ,
102
- -> v { raise TypeError , "$stdout must have a write method, #{ v . class } given" unless v . respond_to? ( :write )
103
- global_variable_set ( :$stdout , v ) } )
103
+ -> { Truffle . invoke_primitive :global_variable_get , :$stdout } ,
104
+ -> v {
105
+ raise TypeError , "$stdout must have a write method, #{ v . class } given" unless v . respond_to? ( :write )
106
+ Truffle . invoke_primitive :global_variable_set , :$stdout , v
107
+ } )
104
108
105
109
alias $> $stdout
106
110
107
111
define_hooked_variable (
108
112
:$stderr ,
109
- -> { global_variable_get ( :$stderr ) } ,
110
- -> v { raise TypeError , "$stderr must have a write method, #{ v . class } given" unless v . respond_to? ( :write )
111
- global_variable_set ( :$stderr , v ) } )
113
+ -> { Truffle . invoke_primitive :global_variable_get , :$stderr } ,
114
+ -> v {
115
+ raise TypeError , "$stderr must have a write method, #{ v . class } given" unless v . respond_to? ( :write )
116
+ Truffle . invoke_primitive :global_variable_set , :$stderr , v
117
+ } )
112
118
113
119
def self . internal_raise ( exc , msg , ctx , internal )
114
120
skip = false
0 commit comments