* Warn Struct#initialize with only keyword args
A part of [Feature #16806]
* Do not warn if `keyword_init: false`
is explicitly specified
* Add a NEWS entry
* s/in/from/
* Make sure all fields are initialized
Previously, if a class included a module and then prepended the
same module, the prepend had no effect. This changes the behavior
so that the prepend has an effect unless the module is already
prepended the receiver.
While here, rename the origin_seen variable in include_modules_at,
since it is misleading. The variable tracks whether c has been seen,
not whether the origin of klass has been.
Fixes [Bug #17423]
because the name "MJIT" is an internal code name, it's inconsistent with
--jit while they are related to each other, and I want to discourage future
JIT implementation-specific (e.g. MJIT-specific) APIs by this rename.
[Feature #17490]
* 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.