Phase 16. Sanitiser matrix
| Field | Value |
|---|---|
| MEP | MEP-45 §Phases · Phase 16 |
| Status | COMPLETE 2026-05-26 09:06 (GMT+7) |
| Started | 2026-05-25 21:46 (GMT+7) |
| Landed | 2026-05-26 09:06 (GMT+7) |
| Tracking issue | — |
| Tracking PR | — |
Gate
Full Phase 1-15 fixture corpus compiles + runs clean under ASan, UBSan, TSan, MSan, LeakSan on x86_64-linux-gnu and aarch64-darwin.
Goal-alignment audit
Sanitiser clean is the strongest internal correctness signal short of formal verification. The user-facing payoff is "no UB, no UAF, no OOB in your shipped binary." Every sub-phase below directly validates runtime safety properties that would otherwise be invisible at test time and only surface as crashes in production. Aligns directly with user-facing goal.
Sub-phases
| # | Scope | Status | Commit | PR |
|---|---|---|---|---|
| 16.0 | ASan clean on full corpus (aarch64-darwin). -fsanitize=address, detect_leaks=0 (GC-less runtime intentionally does not free at exit). TestPhase16ASan gate (33 suites). | LANDED 2026-05-25 21:46 (GMT+7) | — | — |
| 16.1 | UBSan clean on full corpus. -fsanitize=undefined -fno-sanitize-recover=all. TestPhase16UBSan gate (33 suites). | LANDED 2026-05-25 21:46 (GMT+7) | — | — |
| 16.2 | TSan clean on streams/agents corpus: TestPhase16TSan gate runs agent/chan/method_shim/scheduler/stream suites (28 fixtures) under -fsanitize=thread; all clean (cooperative single-OS-thread scheduling, no actual data races) | LANDED 2026-05-26 05:05 (GMT+7) | (this PR) | — |
| 16.3 | MSan clean on Linux (Apple-silicon MSan unsupported upstream) | LANDED 2026-05-26 00:07 (GMT+7) | — |