Skip to content

Releases: The-Mettle-Project/mettle-core

Release list

libmtlc v0.1.0

Choose a tag to compare

@marquisburg marquisburg released this 09 Jul 20:19

libmtlc v0.1.0

The first public release of libmtlc, a from-scratch, frontend-agnostic native compiler backend, together with Mettle, its reference frontend. Custom IR, classical and GNN optimizers, hand-encoded code generation for four targets, and its own PE linker. No LLVM, no VM, no external assembler.

libmtlc owns the IR, the optimizer, code generation, and linking. Any frontend can build IR through the public API in include/mtlc/ and drive it to a native binary, targeting x86-64, ARM64, NVIDIA PTX, or SPIR-V. The backend never includes a frontend header, and that boundary is enforced by the test suite rather than just documented: a second, non-Mettle frontend (examples/calc) compiles and runs against the library alone.

Install the Mettle toolchain (compiler, standard library, runtime):

# Linux
curl -fsSL https://raw.githubusercontent.com/The-Mettle-Project/mettle-core/main/install.sh | sh
# Windows
irm https://raw.githubusercontent.com/The-Mettle-Project/mettle-core/main/install.ps1 | iex

Or get just the backend (headers and static library, for embedding in your own frontend):

# Linux, into ./libmtlc
curl -fsSL https://raw.githubusercontent.com/The-Mettle-Project/mettle-core/main/get-libmtlc.sh | sh
# Windows, into .\libmtlc
irm https://raw.githubusercontent.com/The-Mettle-Project/mettle-core/main/get-libmtlc.ps1 | iex

Changelog

  • Extracted the compiler backend into libmtlc, a standalone, frontend-agnostic library: custom IR, classical optimizer, GNN-driven optimizer behind a translation-validation gate, and native linking, fully decoupled from the Mettle frontend
  • Added the SPIR-V code generator (OpenCL 1.2), alongside the existing x86-64, ARM64, and PTX targets
  • Added the public IR builder API (mtlc/build.h) and the rest of include/mtlc/, letting any frontend construct IR, optimize, emit code, and link without touching internal headers
  • Added examples/calc, a second, non-Mettle frontend proving the backend is genuinely frontend-agnostic
  • Added the libmtlc_selfcontained, calc_frontend, and public_api suite gates
  • Added one-line install scripts for the full toolchain (install.sh, install.ps1) and for the backend alone (get-libmtlc.sh, get-libmtlc.ps1)
  • Added make dist-libmtlc / make install-libmtlc and tools/dist-libmtlc.ps1 for packaging just the backend from a checkout

Full Changelog: https://github.com/The-Mettle-Project/mettle-core/commits/v0.1.0

Full Changelog: https://github.com/The-Mettle-Project/mettle-core/commits/v0.1.0