v0.9.9 — All 3 Futamura Projections Validated
Futamura Projections — Fully Validated
All three Futamura Projections are now verified with comprehensive cross-projection equivalence testing:
- P1 (Specialization) — 25-pair program equivalence, Jones optimality confirmed, zero interpretive overhead in residual code.
- P2 (Compiler Generation) — no PE dispatch names or BTA artifacts leak into generated compilers, comprehensive P1 matching verified.
- P3 (Compiler-Generator Generation) — triple equivalence across 10 programs, cross-projection byte-identical output, cogen matches P2 compiler, 20 surface-level language feature tests covering structs, maps, sequences, options, variants, control flow, recursion, and copy semantics.
PE Map & CCopy Support
All three PE variants (pe_source, pe_bti, pe_mini) now handle Map types and copy expressions through partial evaluation. exprToVal processes CNew with Map typename and CCopy targets; valToExpr reconstructs Map values for residual code emission.
Expression Embedding Analysis
New exprEmbeds() and argsStrictlyEmbed() predicates compare expression structure to determine when one expression is subsumed by another — enabling more precise memoization decisions during specialization. Covers CInt, CBool, CText, CFloat, CVar, CBinOp, CCall, and CList structures.
Extended Key Generation
pe_mini now generates unique memoization keys for 15 additional CExpr variants, preventing key collisions in the specialization cache for complex programs involving collections, maps, field access, ranges, slices, copies, and set operations.