Misc #20923
closedAdd builds for existing shared GC's to CI
Description
Summary¶
I'd like to add CI builds that exercise the GC API implementation with the currently supported known GC modules.
Implemented in [GH-#12212]
Background¶
Ruby now ships with a GC API, through which GC implementations communicate with the VM. By default the existing Ruby GC is compiled into the released binaries as it always has been. Optionally, the Ruby GC can be compiled as a shared object and loaded through the API. Ruby also provides a second GC implementation based on MMTk that can also be built as a module and loaded through the API. The MMTk implementation is being developed in the ruby/mmtk
repository and synced into ruby/ruby
using the existing gem syncing mechanisms.
Currently the Ruby CI exercises that it can build the default GC as a shared object, but it doesn't exercise whether it can load a shared GC correctly.
Implementation¶
The attached ticket provides Github Actions workflows that:
- build Ruby with shared GC support
- build both provided GC's as shared objects
- run
make check
with both modular GC libraries
It's important to note that this CI workflow will only test code that is directly included in the ruby/ruby
repository. MMTk development work will be happening inside ruby/mmtk
so these changes will be fully tested there.