MEP-56 implementation tracking
Per-phase tracking for MEP-56 Mochi-to-Ruby transpiler. Status values: NOT STARTED, IN PROGRESS, BLOCKED, LANDED, DEFERRED. Commit is the merge commit short SHA on main (or, for the umbrella PR #22510, the in-branch commit on mep/0056-ruby).
A phase is LANDED only when its gate is green on every Ruby runtime listed for it in MEP-56 §6. Missing runtimes become N.1, N.2, ... sub-phases per the umbrella-phase coverage rule.
Phase status
| Phase | Title | Status | Commit | Tracking page |
|---|---|---|---|---|
| 0 | Skeleton: rtree / lower / emit / build / runtime gem | LANDED | d5559fc885 | phase-00 |
| 1 | Hello world | LANDED | d5559fc885 | phase-01 |
| 2 | Scalars and arithmetic | LANDED | d5559fc885 | phase-02 |
| 2.5 | Control flow | LANDED | 4738082cde | phase-025 |
| 3 | Lists | LANDED | 4738082cde | phase-03 |
| 3.5 | Maps | LANDED | bdc3ca1fc7 | phase-035 |
| 4 | Records (Data.define) | LANDED | 4738082cde | phase-04 |
| 5 | User functions | LANDED | 4738082cde | phase-05 |
| 6 | Sum types and pattern matching | LANDED | bdc3ca1fc7 | phase-06 |
| 7 | Closures and higher-order functions | LANDED | a25a09e775 | phase-07 |
| 8 | Query DSL (from / where / select / order / skip / take) | LANDED | 271fe13799 | phase-08 |
| 9 | Datalog (compile-time semi-naive eval) | LANDED | 2ab17282e6 | phase-09 |
| 10 | Channels (Thread::SizedQueue) | LANDED | 00bf88ebb5 | phase-10 |
| 11 | Agents (Ruby classes) | LANDED | 9494a06464 | phase-11 |
| 12 | async / await (Thread + .value) | LANDED | c6317bc4be | phase-12 |
| 13 | Streams (Mochi::Runtime::Stream) | LANDED | d0041ea451 | phase-13 |
| 14 | Deep string ops (index, contains, substring, reverse, upper, lower, split, join, str) | LANDED | 07eb070db3 | phase-14 |
| 15 | List aggregates and HOF (min, max, sum, in, map, filter, reduce) | LANDED | 0732df08e0 | phase-15 |
| 16 | Sets and ordered maps | LANDED | a39456b067 | phase-16 |
| 17 | Math (abs, floor, ceil) and map helpers (len, keys, values) | LANDED | d4ab0240e7 | phase-17 |
| 18 | File I/O, JSON, CSV, HTTP | LANDED | 3890f4bd77 | phase-18 |
| 19 | try / catch / panic (Mochi::Runtime::Panic) | LANDED | a1b3d4bcdc | phase-19 |
| 20 | Agent spawn (spawn AgentType()) | LANDED | 2157007a50 | phase-20 |
| 21 | Stream subscribe_limit + saveCSV | LANDED | 7a8e62a176 | phase-21 |
| 22 | TargetRubyGem | LANDED | 59c6cb5f0a | phase-22 |
| 23 | TargetRubyBundle | LANDED | 15293215af | phase-23 |
| 24 | TargetIRubyKernel | LANDED | 72522b6311 | phase-24 |
| 25 | TargetTebako | LANDED | 89202f961a | phase-25 |
| 26 | TargetTruffleNative | LANDED | 64bccce8c5 | phase-26 |
| 27 | TargetMRuby | LANDED | 64bccce8c5 | phase-27 |
| 28 | Audit gap closure (driver errors, edge cases, emitted-syntax checks, integration) | LANDED | d43705737a + audit-2 | phase-28 |
| 29 | Runtime matrix CI + dead-code cull (audit-4) | LANDED | e0956a4238 | phase-29 |
| 30 | mochi-runtime gem unit tests + gem-build CI (audit-5) | LANDED | c1fe1b55ef | phase-30 |
| 31 | Reproducibility test + dead path filter cull (audit-6) | LANDED | 13e42c2a33 | phase-31 |
| 32 | License + dead-code + repro expansion (audit-7) | LANDED | 0a753708ad | phase-32 |
Runtime matrix
A phase is fully LANDED only after its gate passes on every required runtime. Phases not yet exercised on a runtime become N.1, N.2, ... sub-phases.
| Runtime | Phases 0-21 (language) | Phases 22-28 (packaging + audit) | Source |
|---|---|---|---|
| CRuby 3.2 LTS | LANDED (ubuntu CI) | LANDED (ubuntu CI) | .github/workflows/transpiler3-ruby-test.yml (blocking) |
| CRuby 3.4 | LANDED (ubuntu CI) | LANDED (ubuntu CI) | .github/workflows/transpiler3-ruby-test.yml (blocking) |
| CRuby 3.4 (macos) | LANDED (macos CI) | LANDED (macos CI) | .github/workflows/transpiler3-ruby-test.yml (non-blocking) |
| CRuby 4.0 (Homebrew) | LANDED (local) | LANDED (local) | local toolchain via MOCHI_RUBY env |
| JRuby 10 | NOT STARTED (29.1) | NOT STARTED (29.1) | sub-phase 29.1, container image required |
| TruffleRuby 33 | NOT STARTED (29.2) | NOT STARTED (29.2) | sub-phase 29.2, container image required |
| mruby 4 | NOT STARTED (29.3, subset) | NOT STARTED (29.3, subset) | sub-phase 29.3, language subset only |
Phase 29 added the CRuby matrix workflow transpiler3-ruby-test.yml. JRuby / TruffleRuby / mruby coverage is tracked under sub-phases 29.1 / 29.2 / 29.3 and depends on container-based toolchain detection landing in build.go.