Skip to content

v0.1.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jul 00:26

LangForge v0.1.0-rc.1 Release Notes

LangForge v0.1.0-rc.1 is the first public release candidate of the LangForge CLI.

LangForge is a scanner/parser generator for building DSLs, validators, transpilers, compilers, code generators, and language tooling from one readable .lf grammar file.

This is a pre-release. The generated APIs, grammar syntax, and project layout may still change before v0.1.0.

Highlights

  • Generates scanner/parser code for Go, C#, C, and C++.
  • Supports combined .lf grammar files with lexer and parser sections.
  • Supports LR parser modes: SLR(1), LALR(1), IELR(1), and canonical LR(1).
  • Provides typed reducer contexts so handwritten semantic code can use named values such as ctx.Left and ctx.Right instead of manual parser-stack indexing.
  • Supports pull-based lexeme-source parsing for lazy scanner-to-parser pipelines.
  • Includes grammar-directed parser recovery with structured diagnostics.
  • Writes deterministic manifests such as langforge.actions.json for reducer and parity checks.
  • Includes runnable examples and copyable templates for Go, C#, C, and C++.
  • Includes benchmark examples for Go and C# parsing/scanning workloads.
  • Includes CI, Docker smoke checks, release artifact generation, and SHA256 checksums.

Install This Release Candidate

Because this is a pre-release, use the tag-specific release URL instead of /releases/latest/download/....

Install this release candidate with:

curl -fsSL https://github.com/russlank/lang-forge/releases/download/v0.1.0-rc.1/install-lang-forge.sh \
  | LANG_FORGE_VERSION=v0.1.0-rc.1 sh

Install to a user-writable directory:

curl -fsSL https://github.com/russlank/lang-forge/releases/download/v0.1.0-rc.1/install-lang-forge.sh \
  | LANG_FORGE_VERSION=v0.1.0-rc.1 LANG_FORGE_INSTALL_DIR="$HOME/.local/bin" sh

Or download the platform-specific binary from the assets below and verify it with SHA256SUMS.

For the final non-pre-release v0.1.0, the usual latest-release URL can be used:

curl -fsSL https://github.com/russlank/lang-forge/releases/latest/download/install-lang-forge.sh | sh

Release Assets

Attached assets include:

  • lang-forge-linux-amd64
  • lang-forge-linux-arm64
  • lang-forge-darwin-amd64
  • lang-forge-darwin-arm64
  • lang-forge-windows-amd64.exe
  • install-lang-forge.sh
  • SHA256SUMS

Notes For This Release Candidate

This release candidate is mainly intended for:

  • trying the CLI;
  • validating .lf grammars;
  • inspecting parser tables;
  • generating Go, C#, C, and C++ examples;
  • reviewing the generated API shape;
  • giving feedback before the first v0.1.0 release.

Recommended first commands after downloading or cloning:

lang-forge version
lang-forge validate --spec examples/go/calc/calc.lf
lang-forge inspect --spec examples/go/calc/calc.lf --format text

From a source checkout:

make ci
make examples-test
make vocabulary-check