Releases: russlank/lang-forge
Release list
v0.1.0
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
.lfgrammar 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.Leftandctx.Rightinstead 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.jsonfor 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 | shInstall 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" shOr 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 shRelease Assets
Attached assets include:
lang-forge-linux-amd64lang-forge-linux-arm64lang-forge-darwin-amd64lang-forge-darwin-arm64lang-forge-windows-amd64.exeinstall-lang-forge.shSHA256SUMS
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 textFrom a source checkout:
make ci
make examples-test
make vocabulary-checkFor 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.0What This Release Is Good For
This release is intended for:
- trying the CLI;
- validating
.lfgrammars; - 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:
.lfgrammar 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
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
.lfgrammar 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.Leftandctx.Rightinstead 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.jsonfor 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 shInstall 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" shOr 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 | shRelease Assets
Attached assets include:
lang-forge-linux-amd64lang-forge-linux-arm64lang-forge-darwin-amd64lang-forge-darwin-arm64lang-forge-windows-amd64.exeinstall-lang-forge.shSHA256SUMS
Notes For This Release Candidate
This release candidate is mainly intended for:
- trying the CLI;
- validating
.lfgrammars; - inspecting parser tables;
- generating Go, C#, C, and C++ examples;
- reviewing the generated API shape;
- giving feedback before the first
v0.1.0release.
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 textFrom a source checkout:
make ci
make examples-test
make vocabulary-check