mirror of
https://github.com/ruby/ruby.git
synced 2026-01-27 04:24:23 +00:00
[DOC] Resurrected YJIT section
under "Implementation improvements", similarly to past versions. We also don't do categorization like "* New features" (which was in this file) or "New features:" (which was on the release notes), so I used the standard header format instead. I applied the same change to release notes, copied the same thing back to NEWS.md, and then removed the TL;DR section from it.
This commit is contained in:
parent
861ee7a321
commit
6114094aa0
50
NEWS.md
50
NEWS.md
@ -448,30 +448,34 @@ The following bundled gems are promoted from default gems.
|
||||
enabled using the environment variable `RUBY_GC_LIBRARY=mmtk`. This requires
|
||||
the Rust toolchain on the build machine. [[Feature #20860]]
|
||||
|
||||
* New features of YJIT
|
||||
* Add unified memory limit via `--yjit-mem-size` command-line option (default 128MiB)
|
||||
which tracks total YJIT memory usage and is more intuitive than the
|
||||
old `--yjit-exec-mem-size`.
|
||||
* More statistics now always available via `RubyVM::YJIT.runtime_stats`
|
||||
* Add compilation log to track what gets compiled via `--yjit-log`
|
||||
* Tail of the log also available at run-time via `RubyVM::YJIT.log`
|
||||
* Add support for shareable consts in multi-ractor mode
|
||||
* Can now trace counted exits with `--yjit-trace-exits=COUNTER`
|
||||
* Compressed context reduces memory needed to store YJIT metadata
|
||||
### YJIT
|
||||
|
||||
* New optimizations of YJIT
|
||||
* Improved allocator with ability to allocate registers for local variables
|
||||
* When YJIT is enabled, use more Core primitives written in Ruby:
|
||||
* `Array#each`, `Array#select`, `Array#map` rewritten in Ruby for better performance [[Feature #20182]].
|
||||
* Ability to inline small/trivial methods such as:
|
||||
* Empty methods
|
||||
* Methods returning a constant
|
||||
* Methods returning `self`
|
||||
* Methods directly returning an argument
|
||||
* Specialized codegen for many more runtime methods
|
||||
* Optimize `String#getbyte`, `String#setbyte` and other string methods
|
||||
* Optimize bitwise operations to speed up low-level bit/byte manipulation
|
||||
* Various other incremental optimizations
|
||||
#### New features
|
||||
|
||||
* Add unified memory limit via `--yjit-mem-size` command-line option (default 128MiB)
|
||||
which tracks total YJIT memory usage and is more intuitive than the
|
||||
old `--yjit-exec-mem-size`.
|
||||
* More statistics now always available via `RubyVM::YJIT.runtime_stats`
|
||||
* Add compilation log to track what gets compiled via `--yjit-log`
|
||||
* Tail of the log also available at run-time via `RubyVM::YJIT.log`
|
||||
* Add support for shareable consts in multi-ractor mode
|
||||
* Can now trace counted exits with `--yjit-trace-exits=COUNTER`
|
||||
|
||||
#### New optimizations
|
||||
|
||||
* Compressed context reduces memory needed to store YJIT metadata
|
||||
* Improved allocator with ability to allocate registers for local variables
|
||||
* When YJIT is enabled, use more Core primitives written in Ruby:
|
||||
* `Array#each`, `Array#select`, `Array#map` rewritten in Ruby for better performance [[Feature #20182]].
|
||||
* Ability to inline small/trivial methods such as:
|
||||
* Empty methods
|
||||
* Methods returning a constant
|
||||
* Methods returning `self`
|
||||
* Methods directly returning an argument
|
||||
* Specialized codegen for many more runtime methods
|
||||
* Optimize `String#getbyte`, `String#setbyte` and other string methods
|
||||
* Optimize bitwise operations to speed up low-level bit/byte manipulation
|
||||
* Various other incremental optimizations
|
||||
|
||||
## Miscellaneous changes
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user