Releases
Release history
From the first Loment to the one shipping now. Each entry says what that version was for — and where the record of it lives, because the earliest ones were released from a different repository and this one does not carry their tags.
This is the one page on this site that names versions. Everywhere else
the download link says releases/latest, because a version number written on a
page is a fact with an expiry date. Here the versions are the subject, so they are
named and each one points at what was actually published. None of it is a promise
about a version that has not shipped.
Before this repository
The first six versions came out of the project's previous repository. Their tags are not in this one and neither are their dates, so what follows is the shape of the line rather than a dated record — and nothing here links anywhere, because there is nothing to link to.
0.1.1 — the first Loment
A strict subset of Rust's syntax. That was the opening constraint rather than a style: the language was defined by what Rust had already settled, so there was very little to argue about and a compiler to build. It no longer claims to be a subset — the overlap is still there, the claim was dropped when the surface grew past it.
0.1.2 Alpha — the first self-hosting
The language begins to be written in itself. What that buys is not elegance: a compiler written in the language it compiles is the only way to find out what the language cannot express.
0.1.2 pre1 — repairs
The problems the first self-hosting turned up. A pre-release is where that kind of thing is supposed to happen.
0.1.2 pre2 — the base that still stands
The bootstrapping foundation every release since is built on: a compiler that rebuilds itself from a seed committed to the repository, and a check that the rebuilt seed equals the one it started from.
0.1.3 Alpha — the multi-syntax idea arrives
The first version where another language's source can be read as Loment. The meaning is always this language's; only the spelling is borrowed. It is the project's founding argument rather than a feature added on top, which is why it is listed here and not under "what else is different".
0.1.3.4 Alpha — the loop closes
All four stages — lexer, parser, checker and code generator — written in Loment, and the result reaches a three-stage fixed point. This is the last of the versions released from the previous repository, and the one every later version is measured against: it is the release the language and the compiler stopped needing a host to define them.
From this repository
The four versions that came out of this repository before the one shipping now. Each is a row rather than a section for the reason a record should give: the detail is on the release page it links to, and a history that keeps growing in full stops being a history and becomes a second copy of the archive.
0.1.4 Pre — the first installable Loment
2026-09-22. Put up as a pre-release for one reason: so that "the repository has versions" stops being a claim and becomes something you can look at. One detail survives it — the tag points at an earlier commit than the archives were built from, so GitHub's generated source archives are the tree before that build.
0.1.4 — usable
2026-09-23. The subject was being usable rather than having more in it: no syntax changed, and the work went into taking the last of the interpreter out of the path. Its Windows installer does nothing on machines that do not search the current directory; install from the zip if you want this version.
0.1.4.5 — reclamation, and a runtime that is a guarantee
2026-10-13. The four-rung reclamation ladder with an adaptive and a
generational half; no_runtime became a guarantee rather than a
declaration; networking on both targets; and the fifth setting, vm,
arrived with its release gate closed. A patch the same day changed only the Windows
installer.
0.1.4.6 — the gates come down
2026-10-17. Four things that had been built but kept out of a release
became reachable from one: an interpreter tier beside the compiler, libc and LibL, and
the vm setting. The rest was the largest defect sweep before 0.1.4.7.
0.1.4.7 — the libraries become twins
2026-10-18. A defect release, and the headline is not a feature: every library the package ships now compiles to byte-identical IR in both implementations — 155 modules, none skipped, no known gap, pinned by a criterion that fails when the list grows. What it took to get there was a set of silent state bugs rather than the divergence they had looked like from outside.
New
-
The shipped libraries are twins. Every module under the library store is
compiled as a root by both compilers and the IR compared byte for byte. The
stdfacade is excluded by name and by a criterion — it has no functions, and its 127 modules are compared individually. -
A constant table in the self-hosted compiler.
find_constno longer scans the whole unit per identifier, which is what made the facade take tens of minutes to compile.
Fixed
-
The state bugs the twin criterion exposed. A four-arm
matchoverwrote thegc_auto_alphaflag, so a non-alpha unit was compiled as alpha; chained casts did only the first step; 64-bit decimal literals were not wrapped; builtin calls had no return type in inference; shift operands inherited the outer 64-bit expectation; and virtual type sentinels were mistaken for token indices. -
Thirty-five swept defects, each with a criterion that was red first. The
standard library, ten
internetparsers, the compact VM form's decoder, four language-server cases, JSON/CSV/path/formatting, three tier-boundary fixes in the VM runtime, and a dependency pass that handed each unit the whole program instead of its own closure. -
Capacity that ran out. The checker's symbol table now holds 5200
entries; the
stdfacade closure has 4956 top-level names.
Not in this release
Nothing that was already built is still being withheld — this release opens no gate.
The interpreter is still not in the package: choose vm
remains a declaration, and 0.1.5 is where an artifact can actually be handed to an engine.
Where the current state is
This page is history. What the project can do today is on the rest of the site and in the repository, and what it intends to do next is on the roadmap — which is written as a plan and says so.