Yi Lin
Yi Lin
We should include some information about implement certain language features in our porting guide, for example: * GC initialization * command line options * thread local structure (`Mutator`) * fastpath...
Currently `DummyVM` uses `in_header(0)` for all the metadata specs in `ObjectModel`, which is definitely incorrect. As most VM portings would start from using side metadata for most of the specs,...
We should have simple kernel tests to drive critical part of mmtk-core code. This allows us to analyze performance without involving VM bindings. This also allows us to do thousands...
We should provide a reference implementation of barriers' fastpath in Rust, just like what we have for the allocators. They may be directly called by a binding if a binding...
This closes https://github.com/mmtk/mmtk-core/issues/591.
Immix uses forwarding bits and pointers. However, it does not add them to its side metadata context. So if a binding uses side metadata for those specs, Immix won't initialise...
We need to remove `LOS` (and `LargeCode`) from `AllocationSemantics`. MMTk will check allocation size in `alloc()`.
In the line in `ProcessEdgesWork`, https://github.com/mmtk/mmtk-core/blob/0babba20290d3c4e4cdb2a83284aa7204c9a23cc/src/scheduler/gc_work.rs#L449-L452 we check a constant `OVERWRITE_REFERENCE` and write back the reference returned by `trace_object()`. `OVERWRITE_REFERENCE` is defined per `ProcessEdgesWork`, which is currently per plan. In...
This feature would be helpful if a binding allows moving non-root objects, but not root objects. E.g. they are doing conservative stack scanning. The idea is simple: for root edges,...
`PlanConstraints` are constant for each plan. But some of its fields are unused, or superseded by other mechanisms. ## `moves_objects` https://github.com/mmtk/mmtk-core/blob/3dbdd7ae1076fb022f483b8b91cf37425dc6f0ee/src/plan/plan_constraints.rs#L11 `moves_objects` is superseded by `may_move_objects()` in `PlanTraceObject`, which is...