| Age | Commit message (Collapse) | Author |
|
This commit implements moving Immix in MMTk, which allows objects to move
in the GC.
The performance of this implementation is not yet amazing. It is very
similar to non-moving Immix in many of them and slightly slower in others.
The benchmark results is shown below.
-------------- ----------------- ---------- ---------
bench Moving Immix (ms) stddev (%) RSS (MiB)
activerecord 241.9 0.5 86.6
chunky-png 447.8 0.8 74.9
erubi-rails 1183.9 0.8 136.1
hexapdf 1607.9 2.6 402.3
liquid-c 45.4 6.7 44.9
liquid-compile 44.1 9.3 53.0
liquid-render 105.4 4.5 55.9
lobsters 650.1 9.7 418.4
mail 115.4 2.1 64.4
psych-load 1656.8 0.8 43.6
railsbench 1653.5 1.3 149.8
rubocop 127.0 15.6 142.1
ruby-lsp 130.7 10.5 99.4
sequel 52.8 7.2 45.6
shipit 1187.0 3.9 311.0
-------------- ----------------- ---------- ---------
-------------- --------------------- ---------- ---------
bench Non-moving Immix (ms) stddev (%) RSS (MiB)
activerecord 218.9 2.7 86.1
chunky-png 464.6 0.8 66.7
erubi-rails 1119.0 4.3 132.7
hexapdf 1539.8 1.8 425.2
liquid-c 40.6 6.9 45.2
liquid-compile 40.6 8.1 52.9
liquid-render 99.3 2.3 48.3
mail 107.4 5.3 65.4
psych-load 1535.6 1.0 39.5
railsbench 1565.6 1.1 149.6
rubocop 122.5 14.3 146.7
ruby-lsp 128.4 10.7 106.4
sequel 44.1 4.0 45.7
shipit 1154.5 2.7 358.5
-------------- --------------------- ---------- ---------
|
|
https://github.com/ruby/mmtk/commit/9876d8f0a1
|
|
https://github.com/ruby/mmtk/commit/de252637ec
|
|
Remove the unused constant HAS_MOVED_GFIELDSTBL and related methods.
In the mmtk/mmtk-ruby repo, we are now able to find the global field
(IV) table of a moved object during copying GC without using the
HAS_MOVED_GFIELDSTBL bit. We synchronize some of the code, although we
haven't implemented moving GC in ruby/mmtk, yet.
See: https://github.com/mmtk/mmtk-ruby/commit/13080acdf553f20a88a7ea9ab9f6877611017136
https://github.com/ruby/mmtk/commit/400ba4e747
|
|
This commit allows building YJIT and ZJIT simultaneously, a "combo
build". Previously, `./configure --enable-yjit --enable-zjit` failed. At
runtime, though, only one of the two can be enabled at a time.
Add a root Cargo workspace that contains both the yjit and zjit crate.
The common Rust build integration mechanisms are factored out into
defs/jit.mk.
Combo YJIT+ZJIT dev builds are supported; if either JIT uses
`--enable-*=dev`, both of them are built in dev mode.
The combo build requires Cargo, but building one JIT at a time with only
rustc in release build remains supported.
Notes:
Merged: https://github.com/ruby/ruby/pull/13262
|
|
https://github.com/ruby/mmtk/commit/f47a1e2d17
|
|
Fixes a bug where there is an infinite loop when MMTK_HEAP_MIN is small.
https://github.com/ruby/mmtk/commit/12c7ede20b
|
|
https://github.com/ruby/mmtk/commit/52b857ea04
|
|
https://github.com/mmtk/mmtk-core/pull/1261 fixes an issue where the following
script causes a Rust panic:
GC.disable
10_000.times { Object.new }
puts GC.stat
https://github.com/ruby/mmtk/commit/6191ee994a
|
|
https://github.com/ruby/mmtk/commit/63ab563e04
|
|
https://github.com/ruby/mmtk/commit/68bf1b638263
https://github.com/ruby/mmtk/commit/ba1ec69bf6
|
|
https://github.com/ruby/mmtk/commit/02b9439ea6
|
|
https://github.com/ruby/mmtk/commit/0de72c03ba
|
|
This commit implements the mark-sweep algorithm using MMTk and allows
customizing the plan using MMTK_PLAN.
https://github.com/ruby/mmtk/commit/6fea5e5ffc
Co-Authored-By: Matt Valentine-House <matt@eightbitraptor.com>
|
|
This commit only supports initializing MMTk with NoGC and object
allocation.
https://github.com/ruby/mmtk/commit/39aa10e537
Co-Authored-By: Kunshan Wang <wks1986@gmail.com>
|