Bring back RubyVM.stat(:global_constant_state)

This was removed as part of [Feature #18589]. But some applications were relying on this behavior. So bringing this back to make it better for backward compatibility going forward.
This commit is contained in:
Kevin Newton 2022-04-04 12:24:06 -04:00 committed by Jean Boussier
parent ea9c09a92c
commit 42000664be
Notes: git 2022-04-05 03:41:30 +09:00
3 changed files with 5 additions and 1 deletions

4
vm.c
View File

@ -529,7 +529,7 @@ vm_stat_constant_cache_i(ID id, VALUE table, void *constant_cache)
static VALUE
vm_stat(int argc, VALUE *argv, VALUE self)
{
static VALUE sym_constant_cache, sym_class_serial, sym_global_cvar_state;
static VALUE sym_global_constant_state, sym_constant_cache, sym_class_serial, sym_global_cvar_state;
VALUE arg = Qnil;
VALUE hash = Qnil, key = Qnil;
@ -547,6 +547,7 @@ vm_stat(int argc, VALUE *argv, VALUE self)
}
#define S(s) sym_##s = ID2SYM(rb_intern_const(#s))
S(global_constant_state);
S(constant_cache);
S(class_serial);
S(global_cvar_state);
@ -558,6 +559,7 @@ vm_stat(int argc, VALUE *argv, VALUE self)
else if (hash != Qnil) \
rb_hash_aset(hash, sym_##name, SERIALT2NUM(attr));
SET(global_constant_state, ruby_vm_global_constant_state);
SET(class_serial, ruby_vm_class_serial);
SET(global_cvar_state, ruby_vm_global_cvar_state);
#undef SET

View File

@ -14,6 +14,7 @@
MJIT_SYMBOL_EXPORT_BEGIN
RUBY_EXTERN VALUE ruby_vm_const_missing_count;
RUBY_EXTERN rb_serial_t ruby_vm_global_constant_state;
RUBY_EXTERN rb_serial_t ruby_vm_class_serial;
RUBY_EXTERN rb_serial_t ruby_vm_global_cvar_state;

View File

@ -147,6 +147,7 @@ rb_clear_constant_cache_for_id(ID id)
}
rb_yjit_constant_state_changed();
ruby_vm_global_constant_state++;
}
static void