Skip to content

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 02 Aug 15:55
· 373 commits to main since this release

Features

  • perf: gate on instructions retired, because wall-clock cannot gate here

Fixes

  • editors: re-record the vscode test-workspace lock hash it had drifted from
  • perf: the tier-1 state probe must count OSR windows, or it reports native code as none
  • loader: say why the retry's path derivation cannot report anything
  • ext-abi: re-point the constraint-coverage anchors the lazy seams moved
  • perf: the declined-op list never reached the report
  • perf: name the fix that matches the cause when perf cannot count
  • loader: the walk-coverage gate has an opinion about the reflection node
  • host: a retry backoff has to reach the door that actually waits

Performance

  • gate: re-baseline after the list_len inline
  • value: list_len is inline(always) -- it is Op::Index's bounds check
  • tools: attribute a binary's load-time relocations to the crate that owns them
  • gate: re-baseline after region-scoped OSR compilation
  • db: the workspace package map is built once, not once per source
  • parser: one ${…} hole grammar per parse, not one per hole
  • jit: a prototype collects one OSR window per hot loop, not one per prototype
  • gate: re-baseline after the MCP corpus blob
  • mcp: the embedded corpus costs two relocations, not one per file
  • jit: a back-edge promotion compiles the loop's window, not the whole prototype
  • gate: re-baseline after the per-parse grammar build
  • gate: re-baseline after the clap fast path
  • parser: the grammar is built once per parse, not once per site
  • cli: the clap command tree is built once, and a flagless run never builds it
  • gate: re-baseline after outlining the cold opcode arms
  • vm: outline Op::CallMethod's four receiver-dispatching routes
  • vm: outline the cold opcode arms so the hot ones allocate registers better
  • gate: re-baseline after the lazy native-reflection seam
  • gate: re-baseline after the tier-1 and heap work, and move the map row's band with its engine
  • loader: a script no longer parses the neighbours it cannot name
  • value: the map hasher mixes a word per round, not a byte
  • check: a native type's built-in traits answer from the registry, on the question
  • reflection: a native declaration resolves on demand, not into every artifact
  • jit: the string/map loops sustain tier 1
  • heap: a leaf is never registered with the cycle collector
  • vm: set_reg inlines again — the dispatch loop outgrew LLVM's budget

Documentation

  • release: push the branch, wait for green, then tag
  • db: why workspace_editions is not memoized, and what would change that
  • jit: the forced sweep offers every loop header, not just the first
  • architecture: name the native-reflection seam in the crate map
  • ast,loader: the lazy native-reflection seam and the sibling-parse deferral
  • RELEASE.md — what the tag automates, and what it does not

Refactoring

  • reflect: tidy the collapsed dispatches, and record where it stopped
  • reflect: thirteen intrinsics become one node with a fieldless kind

Housekeeping

  • release: bump workspace version to 0.4.1
  • jit: a runtime ablation mask, so a regression can be attributed without a build per variant
  • perf: remove the temporary phase probes
  • vm: the two tier-1 fixtures that Stringify/LoadConst made stale
  • cli: the declined-loop fixture uses a list method, not a map loop
  • perf: drop a no-op type assertion left in the executable-bit test
  • perf: rustfmt the ratchet manifest test; complete the exit-2 list
  • os: the sandbox's model of try_write, held to the real host
  • reflect: the census that closes the class

Full changelog: v0.4.0...v0.4.1