@@ -26,21 +26,23 @@ public class LanguageOptions {
26
26
public final boolean FROZEN_STRING_LITERALS ;
27
27
/** --lazy-default=true */
28
28
public final boolean DEFAULT_LAZY ;
29
+ /** --lazy-calltargets=DEFAULT_LAZY */
30
+ public final boolean LAZY_CALLTARGETS ;
29
31
/** --core-as-internal=false */
30
32
public final boolean CORE_AS_INTERNAL ;
31
33
/** --stdlib-as-internal=false */
32
34
public final boolean STDLIB_AS_INTERNAL ;
33
- /** --lazy-translation-user=DEFAULT_LAZY */
35
+ /** --lazy-translation-user=LAZY_CALLTARGETS */
34
36
public final boolean LAZY_TRANSLATION_USER ;
35
37
/** --backtraces-omit-unused=true */
36
38
public final boolean BACKTRACES_OMIT_UNUSED ;
37
39
/** --lazy-translation-log=false */
38
40
public final boolean LAZY_TRANSLATION_LOG ;
39
41
/** --constant-dynamic-lookup-log=false */
40
42
public final boolean LOG_DYNAMIC_CONSTANT_LOOKUP ;
41
- /** --lazy-builtins=DEFAULT_LAZY */
43
+ /** --lazy-builtins=LAZY_CALLTARGETS */
42
44
public final boolean LAZY_BUILTINS ;
43
- /** --lazy-translation-core=DEFAULT_LAZY */
45
+ /** --lazy-translation-core=LAZY_CALLTARGETS */
44
46
public final boolean LAZY_TRANSLATION_CORE ;
45
47
/** --basic-ops-inline=true */
46
48
public final boolean BASICOPS_INLINE ;
@@ -108,14 +110,15 @@ public class LanguageOptions {
108
110
public LanguageOptions (Env env , OptionValues options ) {
109
111
FROZEN_STRING_LITERALS = options .get (OptionsCatalog .FROZEN_STRING_LITERALS_KEY );
110
112
DEFAULT_LAZY = options .get (OptionsCatalog .DEFAULT_LAZY_KEY );
113
+ LAZY_CALLTARGETS = options .hasBeenSet (OptionsCatalog .LAZY_CALLTARGETS_KEY ) ? options .get (OptionsCatalog .LAZY_CALLTARGETS_KEY ) : DEFAULT_LAZY ;
111
114
CORE_AS_INTERNAL = options .get (OptionsCatalog .CORE_AS_INTERNAL_KEY );
112
115
STDLIB_AS_INTERNAL = options .get (OptionsCatalog .STDLIB_AS_INTERNAL_KEY );
113
- LAZY_TRANSLATION_USER = options .hasBeenSet (OptionsCatalog .LAZY_TRANSLATION_USER_KEY ) ? options .get (OptionsCatalog .LAZY_TRANSLATION_USER_KEY ) : DEFAULT_LAZY ;
116
+ LAZY_TRANSLATION_USER = options .hasBeenSet (OptionsCatalog .LAZY_TRANSLATION_USER_KEY ) ? options .get (OptionsCatalog .LAZY_TRANSLATION_USER_KEY ) : LAZY_CALLTARGETS ;
114
117
BACKTRACES_OMIT_UNUSED = options .get (OptionsCatalog .BACKTRACES_OMIT_UNUSED_KEY );
115
118
LAZY_TRANSLATION_LOG = options .get (OptionsCatalog .LAZY_TRANSLATION_LOG_KEY );
116
119
LOG_DYNAMIC_CONSTANT_LOOKUP = options .get (OptionsCatalog .LOG_DYNAMIC_CONSTANT_LOOKUP_KEY );
117
- LAZY_BUILTINS = options .hasBeenSet (OptionsCatalog .LAZY_BUILTINS_KEY ) ? options .get (OptionsCatalog .LAZY_BUILTINS_KEY ) : DEFAULT_LAZY ;
118
- LAZY_TRANSLATION_CORE = options .hasBeenSet (OptionsCatalog .LAZY_TRANSLATION_CORE_KEY ) ? options .get (OptionsCatalog .LAZY_TRANSLATION_CORE_KEY ) : DEFAULT_LAZY ;
120
+ LAZY_BUILTINS = options .hasBeenSet (OptionsCatalog .LAZY_BUILTINS_KEY ) ? options .get (OptionsCatalog .LAZY_BUILTINS_KEY ) : LAZY_CALLTARGETS ;
121
+ LAZY_TRANSLATION_CORE = options .hasBeenSet (OptionsCatalog .LAZY_TRANSLATION_CORE_KEY ) ? options .get (OptionsCatalog .LAZY_TRANSLATION_CORE_KEY ) : LAZY_CALLTARGETS ;
119
122
BASICOPS_INLINE = options .get (OptionsCatalog .BASICOPS_INLINE_KEY );
120
123
PROFILE_ARGUMENTS = options .get (OptionsCatalog .PROFILE_ARGUMENTS_KEY );
121
124
DEFAULT_CACHE = options .get (OptionsCatalog .DEFAULT_CACHE_KEY );
@@ -155,6 +158,8 @@ public Object fromDescriptor(OptionDescriptor descriptor) {
155
158
return FROZEN_STRING_LITERALS ;
156
159
case "ruby.lazy-default" :
157
160
return DEFAULT_LAZY ;
161
+ case "ruby.lazy-calltargets" :
162
+ return LAZY_CALLTARGETS ;
158
163
case "ruby.core-as-internal" :
159
164
return CORE_AS_INTERNAL ;
160
165
case "ruby.stdlib-as-internal" :
@@ -241,6 +246,7 @@ public Object fromDescriptor(OptionDescriptor descriptor) {
241
246
public static boolean areOptionsCompatible (OptionValues one , OptionValues two ) {
242
247
return one .get (OptionsCatalog .FROZEN_STRING_LITERALS_KEY ).equals (two .get (OptionsCatalog .FROZEN_STRING_LITERALS_KEY )) &&
243
248
one .get (OptionsCatalog .DEFAULT_LAZY_KEY ).equals (two .get (OptionsCatalog .DEFAULT_LAZY_KEY )) &&
249
+ one .get (OptionsCatalog .LAZY_CALLTARGETS_KEY ).equals (two .get (OptionsCatalog .LAZY_CALLTARGETS_KEY )) &&
244
250
one .get (OptionsCatalog .CORE_AS_INTERNAL_KEY ).equals (two .get (OptionsCatalog .CORE_AS_INTERNAL_KEY )) &&
245
251
one .get (OptionsCatalog .STDLIB_AS_INTERNAL_KEY ).equals (two .get (OptionsCatalog .STDLIB_AS_INTERNAL_KEY )) &&
246
252
one .get (OptionsCatalog .LAZY_TRANSLATION_USER_KEY ).equals (two .get (OptionsCatalog .LAZY_TRANSLATION_USER_KEY )) &&
@@ -300,6 +306,13 @@ public static boolean areOptionsCompatibleOrLog(TruffleLogger logger, LanguageOp
300
306
return false ;
301
307
}
302
308
309
+ oldValue = oldOptions .LAZY_CALLTARGETS ;
310
+ newValue = newOptions .LAZY_CALLTARGETS ;
311
+ if (!newValue .equals (oldValue )) {
312
+ logger .fine ("not reusing pre-initialized context: --lazy-calltargets differs, was: " + oldValue + " and is now: " + newValue );
313
+ return false ;
314
+ }
315
+
303
316
oldValue = oldOptions .CORE_AS_INTERNAL ;
304
317
newValue = newOptions .CORE_AS_INTERNAL ;
305
318
if (!newValue .equals (oldValue )) {
0 commit comments