Loment
EN

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.

Download Get started

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

  1. 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 std facade is excluded by name and by a criterion — it has no functions, and its 127 modules are compared individually.
  2. A constant table in the self-hosted compiler. find_const no longer scans the whole unit per identifier, which is what made the facade take tens of minutes to compile.

Fixed

  1. The state bugs the twin criterion exposed. A four-arm match overwrote the gc_auto_alpha flag, 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.
  2. Thirty-five swept defects, each with a criterion that was red first. The standard library, ten internet parsers, 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.
  3. Capacity that ran out. The checker's symbol table now holds 5200 entries; the std facade 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.

Latest release The version to install. Always this link, never a version number copied onto a page. Roadmap What comes after 0.1.4.7, stated as a plan rather than as a feature. Get started Install it and run your first program. Back to the front page What Loment is, and the two kinds of program it builds.