diff options
| author | Takashi Kokubun <takashikkbn@gmail.com> | 2024-12-20 17:45:51 -0800 |
|---|---|---|
| committer | Takashi Kokubun <takashikkbn@gmail.com> | 2024-12-20 17:45:52 -0800 |
| commit | 6114094aa049ffcf3202254933e5da1552837c32 (patch) | |
| tree | f11375ab1916f120535d77ce4c06af8da5b6ddf9 | |
| parent | 861ee7a3212d5e3e794d08034062fd4c21cac2a9 (diff) | |
[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.
| -rw-r--r-- | NEWS.md | 52 |
1 files changed, 28 insertions, 24 deletions
@@ -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 - -* 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 +### YJIT + +#### 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 |
