Skip to content

Releases: HarperZ9/buildlang

Buildlang 1.4.0: checked arithmetic and portable stdio

Choose a tag to compare

@HarperZ9 HarperZ9 released this 10 Sep 22:39
12014e2

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.

Full changes

Release commit: 12014e291bb1e7233caf4d23d49d78b2270c5332. Main CI and reviewed PR #52.

v1.3.0 — fail-closed codegen memory-safety

Choose a tag to compare

@HarperZ9 HarperZ9 released this 06 Sep 19:17
a5c7638

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 / -1 trap instead of faulting the hardware or
    hanging, and every array index is bounds-checked.
  • A non-exhaustive scalar match is 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 let statements,
    turbofish on paths, associated type bindings, async move blocks, labeled
    loops, struct literals in scrutinee position, and more.
  • Type and effect diagnostics now point at line:col with 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

Choose a tag to compare

@HarperZ9 HarperZ9 released this 07 Jul 16:24
580334d

What's Changed

  • feat(units): compile-time dimensional-analysis core + scientific-receipt integration by @HarperZ9 in #15
  • Style: spectrum banner + feature-first README header by @HarperZ9 in #17
  • Release v1.2.0 by @HarperZ9 in #18

Full Changelog: v1.1.0...v1.2.0

buildlang 1.1.0 - accountable scientific compute

Choose a tag to compare

@HarperZ9 HarperZ9 released this 02 Jul 16:23

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 verify RE-RUNS the program and
    re-derives the verdict (typed failure_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 export emits 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

Choose a tag to compare

@HarperZ9 HarperZ9 released this 30 Mar 11:12

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 .quanta source 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 HLSL

Verified 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