Jiang 0.4.9 redesigns lifetime regions, closure and Task syntax, hashing, and overload identity
while preserving a reproducible stable self-hosting chain.
Highlights
- Added explicit
@regiondeclarations and Shape-aware@life(target: source)contracts for
nominal fields, parameters, results, tuples, callable positions, traits, lambdas, async code,
generics, and cross-package artifacts. - Introduced the interned
LifetimeShapemodel and tightened implicit lifetime contracts to
Rust-like receiver and unique-input elision rules. - Replaced lambda syntax with brace closures, added a single trailing closure, and introduced
Task { ... }/new Task { ... }initializers with optional execution domains. - Added Kotlin-style non-trailing default parameters and named-argument skipping while keeping
positional matching deterministic. - Migrated
Hashableto genericHasherwrites, added trait default method implementations,
adoptedWyHasherfor compiler hash tables, and added primitiveto_bits()APIs. - Stabilized overloaded function aliases, callable
StableSymbolKeyidentities, interface
artifacts, warm-cache recovery, package identity, and cross-package source artifacts. - Improved borrow-check performance by freezing and bounding MovePath construction from nominal
lifetime schemas.
Breaking changes
- Old lifetime-flow syntax, positional tuple/callable lifetime paths, old lambda syntax, and
async { ... }Task construction are removed. - Lifetime-carrying nominal fields require explicit
@regionand complete field@life
bindings. Hashableimplementations now write to a genericHasherinstead of returning aUInt64.
Release validation
- All 1164 language check/fail/run tests passed.
- Slow compiler smoke and backend CLI smoke suites passed.
- Release package extraction and installation smoke passed.
- Full reproducible self-hosting chain passed:
Jiang 0.4.8 stable -> 0.4.9 bootstrap -> 0.4.9 bootstrap2 -> release next -> release stable. - Independently reproduced release next and stable binaries were byte-identical.
- Hosted compiler package: macOS arm64, with LLVM statically linked.
Package checksum
jiang-0.4.9-macos-arm64.zip
SHA-256: b293f0b1a7372cd0bd9ddbf85c9d83ce98e653a2d9fbd516259933af8af9b6d9