Skip to content

v0.2.0

Choose a tag to compare

@ydah ydah released this 29 Jul 15:57
· 501 commits to main since this release

ibex v0.2.0

This release significantly expands Ibex’s opt-in grammar and tooling capabilities while preserving racc-compatible behavior as the default.

Highlights

  • Standalone runtime package
    Generated parsers now use the separately versioned ibex-runtime package, allowing applications to deploy parsers without installing the generator and development
    tooling. The -E option remains available for generating a self-contained parser.

  • Expanded extended grammar mode
    pragma extended now supports parameterized and inline rules, grammar fragment imports, multiple entry points, declarative stateful lexers, typed AST generation,
    declarative error recovery, and grammar-defined tests. These features are currently Preview and do not change the default compatible mode.

  • Integrated authoring and build workflow
    This release adds a formatter, LSP server, watch mode, Rake integration, static migration checks for racc grammars, and transactional generation that avoids
    publishing partially updated output.

  • New syntax-tree and parser analysis capabilities
    pragma cst now generates format-v6 Red/Green syntax metadata. The generator also adds a Preview IELR backend and expanded conflict and ambiguity analysis.

Upgrade notes

  • Regenerate parsers with ibex v0.2.0. Non-embedded generated parsers require ibex-runtime ~> 0.2.
  • CST users must migrate to the format-v6 Red/Green APIs. CST table formats v1–v5 are no longer accepted.

ibex-runtime v0.2.0

This release introduces ibex-runtime as a standalone deployment package for parsers generated by Ibex.

Highlights

  • Red/Green concrete syntax trees
    The new lossless and error-tolerant CST runtime provides immutable Green nodes, lazy Red navigation, typed syntax views, persistent editing and structural diffing,
    exact source reconstruction, and versioned ibex_cst serialization.

  • Incremental syntax processing
    Experimental syntax-only sessions can relex edited input and conservatively reuse validated subtrees, with deterministic fallback when reuse is unsafe.

  • Stronger runtime controls and observability
    Isolated parser sessions, resource limits, immutable runtime events, JSONL tracing, streaming lexer support, and bounded recovery and repair APIs improve support for
    editors, language tooling, and long-running applications.

Breaking changes

  • The legacy mixed semantic/syntax CST API, including CST::Node and CST::Token, has been removed.
  • Parsers using CST table formats v1–v5 must be regenerated with ibex v0.2.0. Existing non-CST table formats remain readable.

Full Changelog: v0.1.0...v0.2.0