Skip to content

Roadmap to a fully functional Ruby VM with MMTk #20

Open
@wks

Description

@wks

This is a very high level roadmap.

  • Step 1: Support NoGC
  • Step 2: Support MarkSweep and non-copying Immix
  • Step 3: Support copying Immix
  • Intermediate steps: Fix obvious performance issues.
    • Tracking issue: GC performance issues for MMTk Ruby #25
    • Remove excessive obj_free
      • Tracking issue: Make obj_free unnecessary for common types #11
      • We have not eliminated all obj_free candidates (it is impossible), but it is no longer the biggest performance problem that prevent us from moving forward. It still has room for improvement, though.
    • Load-balancing: Handle extra-large arrays.
    • Specialising object-scanning fast paths
    • (Optional) Use in-header forwarding bits.
  • Step 4: Support StickyImmix, a generational collector
  • Intermediate steps: Stablising
    • Re-examine disabled test cases and enable them if possible.
    • Revisit Ractor support.
  • Step 5: Implement allocation and write barrier fast paths with YJIT

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions