diff options
author | Kevin Newton <kddnewton@gmail.com> | 2022-04-04 12:24:06 -0400 |
---|---|---|
committer | Jean Boussier <jean.boussier@gmail.com> | 2022-04-04 20:41:05 +0200 |
commit | 42000664be43f8c70322557703003b9141cfb28f (patch) | |
tree | d9e7a2366271070894e10c3bbe122745e5270505 | |
parent | ea9c09a92c770e9e3cb0f5ceafd42c8407836f7e (diff) | |
download | ruby-42000664be43f8c70322557703003b9141cfb28f.tar.gz |
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.
-rw-r--r-- | vm.c | 4 | ||||
-rw-r--r-- | vm_insnhelper.h | 1 | ||||
-rw-r--r-- | vm_method.c | 1 |
3 files changed, 5 insertions, 1 deletions
@@ -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 diff --git a/vm_insnhelper.h b/vm_insnhelper.h index e26ecfa77c..5506fca4d6 100644 --- a/vm_insnhelper.h +++ b/vm_insnhelper.h @@ -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; diff --git a/vm_method.c b/vm_method.c index 1f472efb91..81e88a32c1 100644 --- a/vm_method.c +++ b/vm_method.c @@ -147,6 +147,7 @@ rb_clear_constant_cache_for_id(ID id) } rb_yjit_constant_state_changed(); + ruby_vm_global_constant_state++; } static void |