Merge a YJIT release notes draft into NEWS [ci skip]

This commit is contained in:
Takashi Kokubun 2023-05-04 15:58:49 -07:00
parent 546093e8d9
commit 60eb181c37

22
NEWS.md
View File

@ -90,14 +90,22 @@ changelog for details of the default gems or bundled gems.
### YJIT ### YJIT
* Significant performance improvements over 3.2
* Splat and rest arguments support has been improved.
* Registers are allocated for stack operations of the virtual machine.
* More calls with optional arguments are compiled.
* `Integer#!=`, `String#!=`, `Kernel#block_given?`, `Kernel#is_a?`,
`Kernel#instance_of?`, `Module#===` are specially optimized.
* Instance variables no longer exit to the interpreter
with megamorphic Object Shapes.
* Metadata for compiled code uses a lot less memory. * Metadata for compiled code uses a lot less memory.
* Splat and rest arguments support has been improved. * Improved code generation on ARM64
* Registers are allocated for stack operations of the virtual machine. * Option to start YJIT in paused mode and then later enable it manually
* More calls with optional arguments are compiled. * `--yjit-pause` and `RubyVM::YJIT.resume`
* `Integer#!=`, `String#!=`, `Kernel#block_given?`, `Kernel#is_a?`, * This can be used to enable YJIT only once your application is done booting
`Kernel#instance_of?`, `Module#===` are specially optimized. * Exit tracing option now supports sampling
* Instance variables no longer exit to the interpreter * `--trace-exits-sample-rate=N`
with megamorphic Object Shapes. * Multiple bug fixes
[Feature #18498]: https://bugs.ruby-lang.org/issues/18498 [Feature #18498]: https://bugs.ruby-lang.org/issues/18498
[Bug #19150]: https://bugs.ruby-lang.org/issues/19150 [Bug #19150]: https://bugs.ruby-lang.org/issues/19150