Commit 4dd4675
committed
Update ruby and mmtk-core repo rev
This is a reguler merging commit that synchronizes the MMTK's CRuby fork
with the upstream.
The upstream introduced the imemo:fields type, and is now using it for
the `generic_fields_tbl_`, i.e. it now holds instance variables for
objects other than `T_OBJECT`, `T_CLASS` and `T_MODULE`. When using
MMTk, we treat the key-value pair in the `generic_fields_tbl_` as a
strong edge, i.e. treating the imemo:fields of an object as if it were a
child. We now update the `generic_fields_tbl_` like other weak tables.
This simplified the handling of generic fields table in the MMTk
binding.
With imemo:fields added, we now have 17 imemo types including MMTk's
imemo:mmtk_strbuf and imemo:mmtk_objbuf. We increased the header bits
of the imemo type to 5 bits and changed the value of some imemo-specific
header offsets, such as `ISEQ_TRANSLATED`.
The upstream changed the API for acquiring/releasing the GVL. We make
changes accordingly.
YJIT assumes there is only one thread doing GC. It panics when two GC
worker threads try to mark two iseq objects simultaneously. We made
several changes to support parallel GC for YJIT-compiled iseq objects:
1. We replaced `Block::gc_obj_offsets` with `Block::gc_obj_addresses`
which are now absolute pointers instead of offsets. By doing so, we
no longer need to borrow the `Rc<RefCell<VirtualMem>>` during GC.
2. `rb_yjit_iseq_update_references` no longer uses `CodeBlock` to write
code, and no longer calls `mark_all_executable` after updating each
object. Instead we make the whole code memory writable before
updating any objects, and make it executable after the updating
phase finishes. This should both make it friendly to parallel GC
and improve performance.1 parent 37c55d0 commit 4dd4675
2 files changed
+4
-4
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
0 commit comments