Releases: HarperZ9/buildlang
Release list
Buildlang 1.4.0: checked arithmetic and portable stdio
Buildlang 1.4.0 defines checked fixed-width integer arithmetic and ships the merged portable stdio, match-result lowering, and VS Code dependency-lock repairs.
- Plain fixed-width integer addition, subtraction, multiplication, and compound assignments use checked semantics. Constant overflow is diagnosed; runtime overflow uses the arithmetic panic path. Explicit checked, wrapping, and saturating operations remain distinct.
- Option/Result match expressions obtain concrete result types from context or arm payloads. C and Rust print lowering preserve stdout versus stderr intent.
- The compiler manifest and lockfile identify version 1.4.0. Two intentionally retained scientific-runtime report fields have focused dead-code annotations for strict-warning builds.
The C path remains primary. Rust, LLVM, WASM, SPIR-V, and native experimental backends retain their documented limitations. LLVM function-style formatting is unsupported and fails closed. This release does not establish performance superiority or complete backend parity.
Validation: the local full strict-warning test suite passed with 1,818 passed, zero failed, and 11 ignored. Formatting, repository-art verification, and the strict-warning optimized build passed. The release commit also passed CI lint, art, Windows/Ubuntu tests and optimized builds, plus the workflow's compile and negative-program checks.
This GitHub source release does not publish a package registry artifact or a prebuilt compiler binary.
Release commit: 12014e291bb1e7233caf4d23d49d78b2270c5332. Main CI and reviewed PR #52.
v1.3.0 — fail-closed codegen memory-safety
BuildC now refuses to emit C that crashes, hangs, or returns a stale value.
Where it used to miscompile, it either rejects the program at compile time or
traps at run time with the exact panic text.
Highlights
- Integer divide-by-zero and
MIN / -1trap instead of faulting the hardware or
hanging, and every array index is bounds-checked. - A non-exhaustive scalar
matchis caught at compile time where coverage can be
proven, and aborts cleanly where it cannot, instead of reading an
uninitialised local. - A vector of an aggregate element is rejected rather than miscompiled, and
aggregate and call-argument literals build at the correct element width. - About twenty parser fixes widen the accepted grammar:
if letstatements,
turbofish on paths, associated type bindings,async moveblocks, labeled
loops, struct literals in scrutinee position, and more. - Type and effect diagnostics now point at
line:colwith a caret. - Tool-call and model-boundary receipt read paths with executed Monte Carlo
intervals.
Run it
buildc your_program.bld --target c -o out.c
Evidence
Green on CI across lint, format, and the test matrix on Ubuntu and Windows. Full
suite: 1780 passing, 0 failing on the release tree. Every memory-safety fix
ships a control test that passes on the pre-fix binary and fails only after the
fix, so a regression that reopened the hole turns the control red.
Not in this release
Flags and bitflags, resume / with, the macro expander, and the shader-block
DSL are held for a language-surface decision.
Full changelog: v1.2.0...v1.3.0
v1.2.0
buildlang 1.1.0 - accountable scientific compute
Minor release. A second, independent receipt family beyond the capability
(check) receipts: the scientific-runtime receipt
(buildlang-scientific-runtime-receipt/v0).
buildc run --emit-receipt <path> --invariant <NAME>runs a numeric.bld
kernel, checks a stated invariant over its output series, and seals a
re-checkable JSON receipt.buildc receipt verifyRE-RUNS the program and
re-derives the verdict (typedfailure_class, verdict-gated exit codes).- Six invariants, each a fixed re-checked tolerance with a paired
positive/negative kernel:energy-monotone,conservation,bounded
(discrete maximum principle),energy-identity(a quantitative energy-balance
residual),relation(--columns N, verifier-compared columns), and
conserved-band(approximate conservation, e.g. a symplectic integrator). buildc receipt exportemits witnessed measurement rows.
Backward compatible: run without --emit-receipt is byte-identical to 1.0.x.
Honest scope: the receipt witnesses the observed output series, not model
correctness or any physical law (NOT_A_NEW_PHYSICAL_LAW). C stays the only
production-verified backend. Install: cargo install buildlang. Details:
docs/SCIENTIFIC-RECEIPT.md.
QuantaLang v1.0.0 — The Effects Language
QuantaLang v1.0.0
The first release of the QuantaLang compiler.
What's included
quantac.exe— Windows x86-64 compiler binary (4.3 MB)- Compiles
.quantasource files to C, HLSL, GLSL, and experimental backends
Highlights
- 81K lines of Rust, 604 tests passing, zero unsafe in compiler core
- 15 programs compile including a 4,559-line SQL database engine
- Self-verifying color science — CIE 1976 Lab + OKLab output matches published standards
- CI verified — clippy, rustfmt, cargo test, end-to-end compilation, self-checking binary
Quick start
quantac hello.quanta # Compile and run
quantac hello.quanta -o out.c # Compile to C
quantac --target hlsl shader.quanta -o shader.fx # Compile to HLSLVerified programs
| Program | LOC | Description |
|---|---|---|
| db.quanta | 4,559 | SQL database with lexer, parser, executor, WAL |
| color.quanta | 199 | sRGB → XYZ → Lab → OKLab converter |
| color_test.quanta | 121 | Self-verifying color science (12/12 pass) |
| jq.quanta | 1,048 | JSON query tool |
| awk.quanta | 876 | Text processing |
| codegen.quanta | 2,490 | Code generator |
Requirements
- Windows 10/11 x86-64
- A C compiler (MSVC, gcc, or clang) for native binary output