CI: Adjust time frame before the release
Initialize class dup/clone before calling initialize_dup/initialize_clone
Previously, you could override the class initialize_dup/initialize_clone method and the class hierarchy would not be set correctly inside the method before calling super.
This removes Module#initialize_copy, and instead makes Object#dup/clone...
Add NODE SCLASS locations
Add locations to struct RNode_SCLASS.
RNode_SCLASS
memo:
@ ProgramNode (location: (1,0)-(1,18)) +-- locals: [] +-- statements: @ StatementsNode (location: (1,0)-(1,18)) +-- body: (length: 1) +-- @ SingletonClassNode (location: (1,0)-(1,18))...
object.c: make rb_obj_class_must static inline
object.c: refactor rb_obj_class and rb_class_real
Kernel#class skip null check
Kernel#class can't possibly be called on an hidden object, hence we don't need to check for klass == 0.
Kernel#class
klass == 0
compare-ruby: ruby 3.5.0dev (2025-08-30T01:45:42Z obj-class 01a57bd6cd) +YJIT +PRISM [arm64-darwin24] built-ruby: ruby 3.5.0dev (2025-08-30T10:21:10Z obj-class b67c16c477) +YJIT +PRISM [arm64-darwin24]...
object.c: improve fake_class_p to also handle T_MODULE
This requires ensuring T_MODULE never has FL_SINGLETON set, so RMODULE_IS_REFINEMENT had to be moved.
Micro-optimize Object#class
Since BUILTIN_TYPE and RCLASS_SINGLETON_P are both stored in RBasic.flags, we can combine these two checks in a single bitmask.
BUILTIN_TYPE
RCLASS_SINGLETON_P
RBasic.flags
This rely on T_ICLASS and T_CLASS not overlapping, and assume klass is always either of these types....
T_ICLASS
T_CLASS
klass
CI: Warn longstanding development revision of bundled gems
CI: bundled_gems.yml: Split commit and push
View all revisions | View revisions
Also available in: Atom