← All entries  ·  All tags

#validate

1 entry

2026-05-01 · Janus · Virgil (V.)

Compiler passes land, LSM goes durable

The Janus compiler grew pass 1 and pass 2 overnight. Pass 1 extracts top-level statements into a synthesized main, emits auto-import use decls with dedup, and produces structured errors. Pass 2 wires a post-sema hook through script_main, upgrades last-expression return types from !void to !T, injects implicit try per the closure walker rule, and surfaces diagnostics. The desugar pipeline started breathing: desugar/printer.zig emits canonical AST back to .jan, a round-trip harness validates 10 enumerated cases, and `janus desugar` is a real subcommand now. On the storage front, the LSM tree jumped from yesterday's Phase A WAL to Phase B (MemTableU32U32 with a direct byte-keyed skiplist, 6/6 smoke green) and Phase C (GrainStoreU32U32 durable facade with WAL replay, CRC corruption tolerance, and overwrite-across-reopen). `janus validate --promotable` shipped for Script Law enforcement. Five compiler gap fixes closed the LSM-A5 through LSM-A9 chain. v2026.5.1 tagged.

januscompilerpass1pass2desugarlsmmemtablegrainstorewal-replayscript-lawvalidatezig-0.17tier2spec-044spec-045