Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 22:21
· 22 commits to main since this release

⚠ Breaking changes

  • stdlib: count is cardinality everywhere; the popcount is count_true

Features

  • census: cover the name-dispatched surface, and the two defects it found
  • census: a width-door census, and the three defects it found on first run
  • check: warn when a u64's width is discarded into a dyn position (E0078)
  • iter: the eight terminals the eager list had and the lazy pipeline did not
  • http: request signing and verification (RFC 9421)
  • http: a per-client cookie jar
  • http: follow redirects above the seam, and let a client configure it
  • stdlib: declare the traits five native types already honor
  • traits: a standalone impl may implement any built-in trait, and a type's own compare orders it everywhere
  • collections: one declared ordering behind sorted, min and max
  • check: min/max order by Comparable, so a generic body can reach them
  • reflect: describe immutable closure-valued top-level bindings
  • stdlib: a vector kernel bundle does geometry at every width
  • types: range-checked narrowing conversions — checked_to_u8(): ?u8
  • fmt: the safety gate compares programs, not a rendering of them
  • host: a cancellation reaches work blocked outside the interpreter
  • cli: the three registry/add/publish doors that existed on one side only
  • lang: a field can leave the serialized shape
  • lang: a class decodes from JSON
  • lang: name every declared conversion after its source
  • lang: one From conversion per source type, resolved statically
  • lang: Self names the type in hand, in any type body
  • manifest: a registry scope takes what an identity's company half takes
  • manifest: [package] root declares the segment modules derive under
  • traits: a .noe trait declares type parameters, not associated types
  • modules: use _self_.x imports this package's own modules
  • init: cut the scaffolded SYNTAX.md 8.6x and rebalance AGENTS.md
  • cli: add noeta docs — search and read the embedded guide offline

Fixes

  • width: compute at the element width, not the erased word, on a boxed list
  • bulk: compare abs/clamp at the element width, not the erased word
  • stdlib: join a u64 under the render hint, on both engines
  • reductions: fold checked_sum at the element width, not the erased word
  • json: a Map<u64, _> serializes in its key order, not its storage order
  • iter: a lazy bool reduction gives the eager one's refusal, not a second wording
  • runtime: a native type that declares Comparable actually compares
  • check: an unknown type says what you meant, and stops rendering as a riddle
  • http: a stream carries the client's cookies and its signature
  • otel: cap each instrument's attribute-set map at the OTel cardinality limit
  • conformance: make the async corpus true on a real host, not only under the sandbox clock
  • check: a member binding on a synthesized built-in says to drop it
  • registry: resolve every stringly-typed cross-reference at assembly
  • check: a refused @derive names the routes that would work
  • conformance: find wasmtime where its installer puts it
  • hints: compose a render slot for an instantiation a generic body builds
  • playground: the smoke fixture propagates its ?, as its type says
  • conformance: every oracle sweeps the same corpus, in the same program
  • conformance: check every // expect: header on both engines
  • hints: resolve a render hint where there is no call frame
  • check: pin a generic call's type argument through a literal and a composite
  • check: a collection literal argument must not be typed against an erased parameter
  • stdlib: one message when a min/max cannot order its elements
  • check: refuse .as<iN>()/.as<f64>() — a width is not a narrowing target
  • bundle: pin the ordering-resolution op in the layout digest
  • hints: carry a u64's signedness through a type parameter
  • conformance: a --file that matches nothing is a typo, not a pass
  • compiler: a hoisted load must not drag its line entry out of the loop
  • ext-abi: refuse to assemble a malformed push_hint_args declaration
  • display: the REPL echoes a u64 past bit 63 unsigned
  • cli: the AOT compose tests are jit-shape tests, and now say so
  • json: a LiveView binding pushes its u64 unsigned, from the type it was bound under
  • cli: the Cranelift-free build compiles no AOT composition, and a lint now says so
  • rc: destroy an owned argument temporary after the call
  • display: render a @packed map key's u64 field unsigned, at every depth
  • bench: decide tier-1 coverage on instructions retired, never print an empty decline list
  • vm: stop -x and !x stranding a heap-boxed int
  • order: order a u64 past bit 63 unsigned at every door a program sees
  • json: write a u64 past bit 63 unsigned at every JSON door, and read it back
  • display: render a u64 past bit 63 unsigned at every display door
  • pm: name the dependency a publish refuses, and the scope member it lives in
  • ide: a resolved bare variant pattern is not a local binding
  • lexer: four infix operators that could not lead a continued line
  • pm: a tree may not declare a built-in scope as its own identity
  • lower: a native type named through its module resolves to its identity
  • reflect: fields_of reports what the call site could have read
  • cli: a directory walk stops at a nested package
  • conformance: link every case, and gate the wiki's toml blocks
  • test-temp: make the dead-address tests dead by construction
  • ide: gate guide retrieval on a relevance set, and fix what it caught

Performance

  • registry: keep the cross-reference sweep off the heap, and re-baseline startup
  • re-record the baseline — < on two ints no longer round-trips through f64
  • compiler: hold a top-level binding in the entry frame's registers
  • compiler: skip the argument drop for a provably destructor-free temporary
  • compiler: release the stale global read at an in-place self-update
  • re-baseline — noeta docs costs ~0.8% of startup, and buys back 300 KB
  • re-record the instructions-retired baseline on this machine

Documentation

  • backlog: close the bulk compare-vs-compute width row
  • backlog: close the two rows fixed today but left open
  • backlog: close the ignored-compare row — stale on every claim
  • backlog: close the unresolved-annotation cascade row
  • backlog: file the unresolved-annotation diagnostic cascade
  • edge: a redirect target is a host the allowlist has to name
  • backlog: close the HTTP client residuals row
  • agents: ablate every test, and commit before you do
  • traits: retire "derivable" where it meant "has a recipe"
  • plans: file the render-hint arc's one open position, refresh the perf frontier
  • agents: name the checks that exist only in CI
  • backlog: close the body-built composite row
  • hints: state what a u64 through a type parameter reads
  • reflect: point at construct's real heading
  • agents: two process-hygiene edges, and what three concurrent gates cost
  • agents: name the two linker failures that are really resource exhaustion
  • backlog: rank the performance list by measurement, not by hope
  • bench: re-measure the cross-language field at 57091de
  • backlog: strike the two rows that shipped in the para repos
  • backlog: re-point the CRDT row at para/p2p, where every CRDT lives
  • plans: every backlog row states what would start it, or is struck
  • fix: point the Self cross-reference at an anchor that exists
  • arc: the From gate had not fired the way this audit claimed
  • backlog: the From row describes the rule that shipped
  • codify the docs-style rule in AGENTS.md, and gate its mechanical half
  • describe what the language is, not what it was
  • cli: say that noeta serve expects TLS to be terminated upstream
  • agents: trim AGENTS.md to the non-derivable half; add CLAUDE.md

Refactoring

  • check: name the render-slot feed map and fold its owner into the edge
  • vm: land the render-hint runtime state in its own module
  • ext-abi: one ABI bump for the render-hint seam, not three
  • ext-abi: a kept render hint is a PushHint, and can only serialize
  • ext-abi: move the render hint beside the encoder, MapKey and value tree it describes
  • compiler: one worker reserves a type's method prototypes

CI & build

  • docs: run the docs style gate in CI, not only at the merge gate

Housekeeping

  • async: rendezvous with the isolate instead of gating it on a timer
  • release: bump workspace version to 0.7.0
  • upgrade: wait out the ETXTBSY window before exec'ing the copied binary
  • docs-gate: collapse the toolchain-pin condition into one if
  • docs: gate that a copied dependency snippet names this release
  • drop two scratch probe files swept in by git add -A
  • check: assert what E0078 must NOT say, and put its variant on the tail
  • docs: report the margin of every top-1 retrieval decision
  • check: pin the help that names count_true
  • http: drive both of the async descriptor's bodies, not only the fallback
  • otel: pin what the overflow bucket preserves, per instrument kind
  • conformance: make the unordered-Duration case actually discriminating
  • traits: pin that a via: derive's order reaches every observed door too
  • conformance: drive the identity-order case through the composed channel
  • fuzz: drop the reduction-element reason the census can no longer see
  • reflect: pin parameter attributes on a described value binding
  • gitignore: ignore gate run logs
  • drop a gate run log swept in by git add -A
  • oracle: catch a destructor that never ran

Other

  • audit the gates, and correct the arc's counts
  • open a burndown arc against the un-gated eleven
  • close five rows that had shipped, and delete three finished plans

Full changelog: v0.6.0...v0.7.0