Skip to content

v0.22.0 — roadmap checkpoint release

Choose a tag to compare

@odvcencio odvcencio released this 08 Jul 05:36
08a4747

Roadmap checkpoint release after the v0.21 engine cut. This release lands the
first four campaign buckets after v0.21.0: the runtime/recovery foundation,
the external lex-state election ledger, broad precise ExternalLexStates
coverage, and the Cobol large-table/recovery cleanup. It does not claim that
all grammar tiers are parity-clean yet; the remaining tier-IV rows stay visible
and classified for the next campaign waves. It also does not claim universal
near-C parser performance across the registry yet; v0.22.0 publishes the
perf-scan scaffold and targeted wins while the broader wave-3 ratchet remains
tracked for the next release line.

Added

  • cgo_harness/perf_scan: a nightly Go-vs-C scoring harness and CI proposal
    for tracking full-parse and incremental parser performance without mixing
    correctness and performance gates.
  • External lex-state election ledger for all 206 tracked grammars
    (cgo_harness/tier_scan/external_lex_elections.{md,json}), including the
    default-elected, staged, missing-ELS, and no-scanner categories used by the
    C-recovery rollout.
  • Precise ExternalLexStates tables for a broad set of external-scanner
    grammars, with JavaScript and Cobol kept staged behind their explicit
    opt-in policies until their defaults are separately certified.
  • Release-tier scan documentation and generation support. Tier publication is
    staged in-tree, but the zero-IV release block is intentionally not enabled
    for this checkpoint release.

Changed

  • Runtime conflict handling now centralizes C's repetition-skip dispatch rule
    behind the shared conflict-policy path, leaving only languages with
    measured recovery-shape hazards on explicit opt-outs or scoped handlers.
  • External scanner symbol binding now uses positional table metadata instead
    of brittle name-only assumptions, reducing stale-table failure modes across
    generated blobs.
  • C# namespace recovery and forest/retry paths avoid redundant large-span
    work, keeping the boundedness tests focused on parser behavior instead of
    retry overhead.
  • Arena overflow slab growth is capped so pathological large parses fail or
    recover under an explicit memory budget rather than growing unbounded slabs.

Fixed

  • Generated parse tables no longer silently truncate action or GOTO indexes
    that exceed uint16. The runtime now supports large state targets, and the
    generator reports actionable boundary errors for unsupported table shapes.
  • Cobol fixed-format compatibility now preserves program headers and recovered
    paragraph structure across large-table parses. Focused Docker gates measured
    Cobol at 25/25 real-corpus parity and 20/20 direct C-oracle parity for this
    release line.
  • Cobol recovered paragraph-header normalization now preserves unrelated parent
    HasError state, so a clean recovered header no longer masks a separate
    retained error in the same procedure_division subtree.
  • C recovery table validation now checks both action and GOTO bounds before
    accepting the recovery path, preventing large-table grammars from taking a
    silently invalid C-recovery route.
  • Recovery cycle diagnostics now include non-materializing acyclicity checks
    around transient recovery children, guarding against parent-link cycles in
    debug sweeps.

Performance

  • GLR merge-equivalence and recovery-path cache work removes the largest
    repetition-boundary cliffs found after v0.21.0 while keeping correctness
    gates separate from benchmark gates.
  • Bash retry overhead, C# namespace recovery retries, and TypeScript
    fourslash arena pressure are reduced by targeted fast-path and cap fixes.
  • The perf harness is present for nightly scoring and follow-up CI wiring, but
    this release does not enable a universal near-C performance gate.