Skip to content

AILANG v0.54.18

Choose a tag to compare

@github-actions github-actions released this 23 Oct 11:53
· 423 commits to dev since this release
Immutable release. Only release title and notes can be modified.
v0.54.18
cd33d05

AILANG v0.54.18

Highlights

Added — checked WAV metadata and packed PCM16 conversion (2026-10-23)

std/audio adds wavInfo, wavHeaderChecked, wavFromPcmChecked,
pcm16ToFloats and floatsToPcm16. Metadata validates RIFF/chunk extents,
padding, format fields and whole frames; integer PCM 8/16/24/32 is supported,
while float/extensible encodings return explicit errors. Packed s16le conversion
preserves interleaved channels, uses /32768 decoding and explicit nearest-even
quantization with reject-or-clip policies; nonfinite samples always fail.
Materialized PCM extents are capped at 100 MiB. Resampling remains deferred.

Design: WAV metadata.

Fixed — WAV padding and ordinary writer validation (2026-10-23)

Odd PCM data now receives its RIFF-required pad, with correct outer size and an
unchanged unpadded data-chunk size. Legacy WAV wrappers keep their signatures
but reject partial frames, unsupported bit depths, field overflow and oversized
buffers without needing contract flags. Valid even-length PCM16 headers remain
byte-identical. Generated Go supports the same checked audio boundaries and
byte operations; bytes use native slice storage and decoded arrays stay packed.

Design: Checked WAV writers.

Added — bounded fixed-decimal formatting (2026-10-23)

std/string.formatFixed(x, decimals) formats float64 values with precision
0..1000. Interpreter, strict bytecode and generated Go use the same strconv
semantics, including nearest-even ties, signed zero and nonfinite strings.
Invalid precision fails ordinarily in every engine. floatToStr is unchanged.

Design: Fixed-decimal formatting.

Fixed — typed error variants in SMT contracts

Preserve native parametric ADT declarations and concrete constructor types when
verifying contracts such as Result[int, AudioError]. Imported ResourceLimit
payloads and contract-only datatype dependencies are declared before use;
unsupported or ambiguous shapes produce structured skips. The valid size guard
now verifies, while a broken successful result produces a counterexample through
the same encoding in verify, package verification and ai-check. Existing
callee-signature limits and numeric/runtime evidence scope remain unchanged.

Design: Typed ADT declarations.

Added — verification reasons and mathematical-model evidence (2026-10-23)

Static and package verification reports now retain typed outcome reasons,
Real/Int numeric-model scope, bounded recursion depth and encoder rejection
details. Package-quality summaries distinguish module budget issues and property
test skips, and do not imply runtime contracts ran. Missing evidence from older
producers remains unavailable. Existing schemas, counters, statuses, exit codes,
publish gates and KPI definitions are unchanged; the parked skip-counter split
is not part of this change.

Fixed — formatter preserves single-constructor enum identity (2026-10-23)

Formatting a nullary single-constructor sum such as the audio encoding/layout
types retains its required leading pipe. Previously it would reparse as a type
alias. Structural round-trip tests cover enums and neighboring type forms.

Fixed — package quality badge describes verifier skips accurately (2026-10-23)

PUB016 no longer describes every skipped contract as an unsupported type or
builtin. The verifier also skips functions without postconditions. The badge
continues to direct authors to per-function reasons; counts, proof status and
publish gates are unchanged. Reported by the sunholo/audio roadmap audit.

Fixed — Stall watchdog tracks the controller's own session (2026-10-22)

Claude attempts now receive a fresh session id; progress includes that session's parent and foreground subagent transcripts across project paths.
Unrelated Claude and pi sessions no longer mask stalls, and unavailable Claude ids disable early kills while retaining the hard timeout.
Design: M-FLEET-STALL-OWN-TRANSCRIPT.

Fixed — Routing evidence heading recognition (2026-10-21)

The routing checker now recognises colon, period, parenthetical and bulleted headings, and stops bulleted blocks at sibling fields while retaining fleet role bullets; hyphenated compounds with allowed model prefixes produce no findings only when their suffix contains no further gpt (case-insensitive). See the sprint plan.

What's Changed

Downloads

Installation

# macOS (Intel)
curl -L https://github.com/sunholo-data/ailang/releases/download/v0.54.18/darwin.x64.ailang.tar.gz | tar -xz
sudo mv ailang /usr/local/bin/

# macOS (Apple Silicon)
curl -L https://github.com/sunholo-data/ailang/releases/download/v0.54.18/darwin.arm64.ailang.tar.gz | tar -xz
sudo mv ailang /usr/local/bin/

# Linux (x86_64)
curl -L https://github.com/sunholo-data/ailang/releases/download/v0.54.18/linux.x64.ailang.tar.gz | tar -xz
sudo mv ailang /usr/local/bin/

# Linux (aarch64 / arm64)
curl -L https://github.com/sunholo-data/ailang/releases/download/v0.54.18/linux.arm64.ailang.tar.gz | tar -xz
sudo mv ailang /usr/local/bin/

Examples

Download code examples to use with ailang examples:

ailang examples download

WebAssembly

For embedding AILANG REPL in web applications:

curl -L https://github.com/sunholo-data/ailang/releases/download/v0.54.18/ailang-wasm.tar.gz | tar -xz
# Contains: ailang.wasm, wasm_exec.js, ailang-repl.js (all version-matched)

See web/README.md for integration guide.