Skip to main content

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

PhaseTitleStatusCommitTracking page
0Skeleton: rtree / lower / emit / build / runtime gemLANDEDd5559fc885phase-00
1Hello worldLANDEDd5559fc885phase-01
2Scalars and arithmeticLANDEDd5559fc885phase-02
2.5Control flowLANDED4738082cdephase-025
3ListsLANDED4738082cdephase-03
3.5MapsLANDEDbdc3ca1fc7phase-035
4Records (Data.define)LANDED4738082cdephase-04
5User functionsLANDED4738082cdephase-05
6Sum types and pattern matchingLANDEDbdc3ca1fc7phase-06
7Closures and higher-order functionsLANDEDa25a09e775phase-07
8Query DSL (from / where / select / order / skip / take)LANDED271fe13799phase-08
9Datalog (compile-time semi-naive eval)LANDED2ab17282e6phase-09
10Channels (Thread::SizedQueue)LANDED00bf88ebb5phase-10
11Agents (Ruby classes)LANDED9494a06464phase-11
12async / await (Thread + .value)LANDEDc6317bc4bephase-12
13Streams (Mochi::Runtime::Stream)LANDEDd0041ea451phase-13
14Deep string ops (index, contains, substring, reverse, upper, lower, split, join, str)LANDED07eb070db3phase-14
15List aggregates and HOF (min, max, sum, in, map, filter, reduce)LANDED0732df08e0phase-15
16Sets and ordered mapsLANDEDa39456b067phase-16
17Math (abs, floor, ceil) and map helpers (len, keys, values)LANDEDd4ab0240e7phase-17
18File I/O, JSON, CSV, HTTPLANDED3890f4bd77phase-18
19try / catch / panic (Mochi::Runtime::Panic)LANDEDa1b3d4bcdcphase-19
20Agent spawn (spawn AgentType())LANDED2157007a50phase-20
21Stream subscribe_limit + saveCSVLANDED7a8e62a176phase-21
22TargetRubyGemLANDED59c6cb5f0aphase-22
23TargetRubyBundleLANDED15293215afphase-23
24TargetIRubyKernelLANDED72522b6311phase-24
25TargetTebakoLANDED89202f961aphase-25
26TargetTruffleNativeLANDED64bccce8c5phase-26
27TargetMRubyLANDED64bccce8c5phase-27
28Audit gap closure (driver errors, edge cases, emitted-syntax checks, integration)LANDEDd43705737a + audit-2phase-28
29Runtime matrix CI + dead-code cull (audit-4)LANDEDe0956a4238phase-29
30mochi-runtime gem unit tests + gem-build CI (audit-5)LANDEDc1fe1b55efphase-30
31Reproducibility test + dead path filter cull (audit-6)LANDED13e42c2a33phase-31
32License + dead-code + repro expansion (audit-7)LANDED0a753708adphase-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.

RuntimePhases 0-21 (language)Phases 22-28 (packaging + audit)Source
CRuby 3.2 LTSLANDED (ubuntu CI)LANDED (ubuntu CI).github/workflows/transpiler3-ruby-test.yml (blocking)
CRuby 3.4LANDED (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 10NOT STARTED (29.1)NOT STARTED (29.1)sub-phase 29.1, container image required
TruffleRuby 33NOT STARTED (29.2)NOT STARTED (29.2)sub-phase 29.2, container image required
mruby 4NOT 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.