Age | Commit message (Collapse) | Author |
|
Was reading some assembly and noticed the dead branches generated for
FL_TEST(). Just a quick basic pass to change the obvious places; there
may be other opportunities.
Notes:
Merged: https://github.com/ruby/ruby/pull/12980
Merged-By: XrXr
|
|
It's not used outside of default.c.
Notes:
Merged: https://github.com/ruby/ruby/pull/12964
|
|
It's not used outside of defaut.c
Notes:
Merged: https://github.com/ruby/ruby/pull/12964
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12976
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12965
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12965
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12915
|
|
Moving object_id dumping from ObjectSpace to the GC flags allows ObjectSpace
to not assume the FL_SEEN_OBJ_ID flag and instead move it to the responsibility
of the GC.
Notes:
Merged: https://github.com/ruby/ruby/pull/12915
|
|
We now use `MMTK::handle_user_collection_request(true, ...)` to force
triggering a GC instead of enabling GC temporarily.
https://github.com/ruby/mmtk/commit/02ef47f818
|
|
https://github.com/ruby/mmtk/commit/9da566e26a
|
|
There are 7 entries in RB_GC_OBJECT_METADATA_ENTRY_COUNT.
|
|
This will allow ObjectSpace.dump to output the age of the object.
Notes:
Merged: https://github.com/ruby/ruby/pull/12777
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12777
|
|
This function replaces the internal rb_obj_gc_flags API. rb_gc_object_metadata
returns an array of name and value pairs, with the last element having
0 for the name.
Notes:
Merged: https://github.com/ruby/ruby/pull/12777
|
|
we had been using a stub weak definition of `mprotect` in wasm/missing.c
so far, but wasi-sdk 23 added mprotect emulation to wasi-libc[^1], so the
emulation is now linked instead. However, the emulation doesn't support
PROT_NONE and fails with ENOSYS, so we need to avoid calling mprotect
completely on WASI.
[^1]: https://github.com/WebAssembly/wasi-libc/commit/7528b13170462c82e367d91ae0ecead84e470ceb
Notes:
Merged: https://github.com/ruby/ruby/pull/12776
|
|
https://github.com/ruby/mmtk/commit/e52b973611
|
|
In this context, `vm_locked` is a argument variable, and is not used
later in the function.
Notes:
Merged: https://github.com/ruby/ruby/pull/12718
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12664
|
|
These methods were accidentally removed in [Feature #20470]. This commit
adds them back.
Notes:
Merged: https://github.com/ruby/ruby/pull/12664
|
|
|
|
If the object is a T_MOVED, then it is poisoned in ASAN, so we need to
unpoison it before checking the type.
Notes:
Merged: https://github.com/ruby/ruby/pull/12644
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12629
|
|
We can use rb_gc_vm_weak_table_foreach for reference updating of weak tables
in the default GC.
Notes:
Merged: https://github.com/ruby/ruby/pull/12629
|
|
For moving garbage collectors, we may want to combine liveliness checking
with reference updating for performance. This commit allows for non-weak
references to be passed into the callback function when weak_only is false.
Notes:
Merged: https://github.com/ruby/ruby/pull/12629
|
|
https://github.com/ruby/mmtk/commit/f47a1e2d17
|
|
Previously, generic ivars worked differently than the other global tables
during compaction. The other global tables had their references updated
through iteration during rb_gc_update_vm_references. Generic ivars updated
the keys when the object moved and updated the values while reference
updating the object. This is inefficient as this required one lookup for
every moved object and one lookup for every object with generic ivars.
Instead, this commit changes it to iterate over the generic ivar table to
update both the keys and values.
Notes:
Merged: https://github.com/ruby/ruby/pull/12607
|
|
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/6a78ffaf16
|
|
https://github.com/ruby/mmtk/commit/5bbac70c69
|
|
https://github.com/ruby/mmtk/commit/52b857ea04
|
|
https://github.com/ruby/mmtk/commit/810f897603
|
|
https://github.com/ruby/mmtk/commit/67da9ea5b8
|
|
https://github.com/ruby/mmtk/commit/dbb4036be9
|
|
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/836a9059cb
|
|
https://github.com/ruby/mmtk/commit/79ce2008a3
|
|
https://github.com/ruby/mmtk/commit/c8b1f4c156
|
|
- Split static recipes to depend file.
- Modify makefile configurations in the block to `create_makefile`.
- Expand rust sources in extconf.rb instead of GNU make extension.
TODO: pass `CARGO_TARGET_DIR` without shell syntax.
Notes:
Merged: https://github.com/ruby/ruby/pull/12572
|
|
https://github.com/ruby/mmtk/commit/4a24d55d91
|
|
https://github.com/ruby/mmtk/commit/1d2f7b9cfc
|
|
https://github.com/ruby/mmtk/commit/5c5c454f65
|
|
https://github.com/ruby/mmtk/commit/63ab563e04
|
|
UNIQUE_OBJECT_ENQUEUING guarantees that object marking is atomic so that
an object cannot be marked more than once.
https://github.com/ruby/mmtk/commit/2f97fd8207
|
|
https://github.com/ruby/mmtk/commit/68bf1b638263
https://github.com/ruby/mmtk/commit/ba1ec69bf6
|
|
Since libmmtk_ruby.a was a PHONY target, it caused the shared object to
not be rebuilt even though libmmtk_ruby.a was updated.
https://github.com/ruby/mmtk/commit/076f0a97a6
|
|
https://github.com/ruby/mmtk/commit/02b9439ea6
|
|
https://github.com/ruby/mmtk/commit/0de72c03ba
|
|
Depending on the allocator, `malloc_usable_size` may be very cheap or quite
expensive. On `macOS` for instance, it's about as expensive as `malloc`.
In many case we call `objspace_malloc_size` with as size we initially
requested as `hint`. The real usable size may be a few bytes bigger,
but since we only use that data to feed GC heuristics, I don't think
it's very important to be perfectly accurate.
It would make sense to call `malloc_usable_size` after growing a String
or Array to use the extra capacity, but here we don't do that, so
the call isn't worth its cost.
Notes:
Merged: https://github.com/ruby/ruby/pull/12490
|
|
rb_darray_insert could trigger a GC, which would cause problems if it
freed pages while a new page was being inserted.
For example, the following script fails:
GC.stress = true
GC.auto_compact = :empty
10.times do
GC.verify_compaction_references(expand_heap: true, toward: :empty)
end
It errors out with:
'GC.verify_compaction_references': malloc: possible integer overflow (8*18446744073709551603) (ArgumentError)
Notes:
Merged: https://github.com/ruby/ruby/pull/12459
|
|
This reverts commit 24a740796050b72aa2d35339ba2a317d4eda7b75.
Notes:
Merged: https://github.com/ruby/ruby/pull/12459
|