Skip to content

m9 0.3.0

Choose a tag to compare

@atverm atverm released this 30 Aug 00:24
· 27 commits to main since this release

The M9 compiler m9c, the runtime libm9rt.a, the standard library as M9 source, the module reference, the language report and the VS Code extension files. gcc is the only toolchain any of them needs. FLEXPART-M9 is not in these packages.

The source tarball m9-0.3.0.tar.gz has been WITHDRAWN from this release (2026-08-30). It was cut with a bare git archive HEAD of the development tree, so it carried far more than this repository does: the project's internal working notes, the CI workflow, and all 51 source files of the FLEXPART port, none of which belong in a public release. It contained no credentials, keys or tokens. The packages below are unchanged and are what this release is for; their receipts still name that tarball's sha256, and are left as they were rather than quietly rewritten.

From v0.3.1 the source tarball is cut from the same list that produces this repository -- 223 files: the compiler, runtime, standard library, gates, man page and module reference -- and the release tooling refuses to build one that is not. Checked twice: that the tarball equals the list, and, because that check alone passes if the list itself is wrong, against an independent deny-list of paths that must never be published.

One package per distribution, x86-64, each built ON that distribution (the Ubuntu 26.04 one on a real 26.04 machine rather than a VM), then installed there and made to compile and run an M9 program with an empty environment before it was allowed to leave the build machine.

distribution package install
Ubuntu 24.04 LTS m9_0.3.0_amd64.ubuntu24.04.deb sudo apt install ./m9_0.3.0_amd64.ubuntu24.04.deb
Ubuntu 26.04 LTS m9_0.3.0_amd64.ubuntu26.04.deb sudo apt install ./m9_0.3.0_amd64.ubuntu26.04.deb
Debian 13 m9_0.3.0_amd64.debian13.deb sudo apt install ./m9_0.3.0_amd64.debian13.deb
Fedora 43 m9-0.3.0-1.fc43.x86_64.rpm sudo dnf install ./m9-0.3.0-1.fc43.x86_64.rpm
Rocky 9 (RHEL 9, Alma 9) m9-0.3.0-1.el9.x86_64.rpm sudo dnf install ./m9-0.3.0-1.el9.x86_64.rpm
Arch m9-0.3.0-1-x86_64.pkg.tar.zst sudo pacman -U ./m9-0.3.0-1-x86_64.pkg.tar.zst

Each .receipt records the distribution the package was built on, its sha256, the tarball's sha256, the gcc that built it, and the smoke line. Nothing here was modified after it came back from the build machine except the two debs' file names, which carry their distribution because they would otherwise be the same name (dpkg reads the control file, not the name).

Chapter 0 of the tutorial (M9Tutorial, tutorial.modula9.net) covers installation from these and from source.