Skip to content

Jiang 0.4.9

Latest

Choose a tag to compare

@jjcfun jjcfun released this 27 Jul 05:17

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 @region declarations 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 LifetimeShape model 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 Hashable to generic Hasher writes, added trait default method implementations,
    adopted WyHasher for compiler hash tables, and added primitive to_bits() APIs.
  • Stabilized overloaded function aliases, callable StableSymbolKey identities, 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 @region and complete field @life
    bindings.
  • Hashable implementations now write to a generic Hasher instead of returning a UInt64.

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