* Document Fiber's method related to scheduling;
* Extend Fiber's class docs with concepts of non-blocking
fibers;
* Introduce "imaginary" (documentation-only) class
Fiber::SchedulerInterface to properly document how
scheduler's methods should look.
Pointed out by @shyouhei.
NOTE: Already we have dropped the support for older MSVCs,
probably prior to 1300 or 1400. Remove the conditional code,
especially in win32/Makefile.sub.
* Instance variables
* Merge ivar guards on JIT a69dd699eee4f7eee009
* Prefer RB_OBJ_FROZEN_RAW 5611066e03
* Skip checking ROBJECT_EMBED 81a8d1cf09
* Method inlining
* Mark some Integer methods as inline 0703e01471
* Allow inlining Integer#-@ and #~ dbb4f19969
* Inline builtin struct aref 167d139487
* Make Kernel#then, #yield_self, #frozen? builtin 24fa37d87a
* (For future) Rewrite Kernel#tap with Ruby f3a0d7a203
* Other optimizations
* Inline constant references 53babf35ef
* Lazily move PC with RUBY_VM_CHECK_INTS 5d74894f2b
* Cache access to reg_cfp->self on JIT d409837729
* JIT compaction
* Shrink the blocking region for compile_compact_jit_code ed8e552d4d
* Stop leaving .c files for JIT compaction in /tmp fa1250a506
* GC of JIT-ed code
* Run unload_units in the JIT worker thread 16dab6b692
* Avoid unloading units which have enough total_calls d80226e7bd
* Throttle unload_units 122cd35939
* Throttle JIT compaction 096f54428d
* Compilation speed
* Eliminate IVC sync between JIT and Ruby threads 0960f56a1d
* Lazily move units from active_units to stale_units 5d8f227d0e
Please see 200c5f4075 for other improvements in Jan ~ Jun.
"experimental_everything" makes the assigned value, it means
the assignment change the state of assigned value.
"experimental_copy" tries to make a deep copy and make copyied object
sharable.
Previously, due to a change to fix bug 15608, Method#inspect output
changed for class methods:
Ruby 2.7
"#<Method: String.prepend(*)>"
Before change:
"#<Method: #<Class:Object>(Module)#prepend(*)>"
This is wrong because the Method object was created from String and
not Object. This is because the fix for bug 15608 assumed it was
being called on the singleton class of a instance, and would skip
the first singleton class until it got to the class itself. For
class methods, this results in always using the superclass. Fix
behavior to not skip until the superclass if the singleton class
is the singleton class of a module or class.
After change:
"#<Method: #<Class:Object>(Module)#prepend(*)>"
Fixes [Bug #17428]