summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vm.c4
-rw-r--r--vm_insnhelper.h1
-rw-r--r--vm_method.c1
3 files changed, 5 insertions, 1 deletions
diff --git a/vm.c b/vm.c
index dcb863dd96..c02d502f37 100644
--- a/vm.c
+++ b/vm.c
@@ -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