Skip to content

Roadmap to a fully functional Ruby VM with MMTk #20

@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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions