Skip to content

Releases: russlank/lang-forge

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 01:50

LangForge v0.1.0 Release Notes

LangForge v0.1.0 is the first public release 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 the first clean public baseline release. LangForge is still pre-1.0, so generated APIs, grammar syntax, and project layout may evolve in later minor releases.

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

Install or update the latest release with:

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

Install to a user-writable directory:

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

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

To install this exact version explicitly:

curl -fsSL https://github.com/russlank/lang-forge/releases/download/v0.1.0/install-lang-forge.sh \
  | LANG_FORGE_VERSION=v0.1.0 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

Try It

After installing:

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

For release-style local verification:

make clean
make ci
make dist VERSION=0.1.0
make docker-build VERSION=0.1.0 IMAGE_TAG=0.1.0
make docker-smoke VERSION=0.1.0 IMAGE_TAG=0.1.0

What This Release Is Good For

This release is intended for:

  • trying the CLI;
  • validating .lf grammars;
  • inspecting lexer/parser tables;
  • generating Go, C#, C, and C++ scanner/parser code;
  • experimenting with typed reducers;
  • testing lexeme-source parsing;
  • reviewing parser recovery diagnostics;
  • using the examples and templates as starting points for small DSLs and language tools.

Known Limitations

  • The project is still pre-1.0.
  • Additional grammar authoring conveniences, such as precedence/associativity declarations, are planned for later releases.
  • Optional AST helper generation is not part of this release.
  • Checked UTF-8 is the current default scanner input mode.
  • The current release artifacts are CLI-focused; language-specific runtime packages may be added later.

Feedback

Feedback is especially useful around:

  • .lf grammar authoring experience;
  • generated Go/C#/C/C++ API shape;
  • typed reducer ergonomics;
  • parser recovery diagnostics;
  • examples and templates;
  • installation and release artifacts.

v0.1.0-rc.1

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