Skip to content

release: prepare 0.8.0 - #271

Draft
unbalancedparentheses wants to merge 5 commits into
feat/otp-exit-signalsfrom
release/v0.8.0
Draft

unbalancedparentheses wants to merge 5 commits into
feat/otp-exit-signalsfrom
release/v0.8.0

Conversation

@unbalancedparentheses

Copy link
Copy Markdown
Contributor

Prepares all five published crates for 0.8.0, including spawned-test and spawned-sim-libc, with workspace/path requirements and both lockfiles aligned. Updates installation snippets and moves Unreleased to the dated 0.8.0 changelog section.

Stacked on #240; this PR contains only release metadata/docs. Retarget to main after #240 merges. Keep draft until the final-candidate performance, soak, model and client gates are recorded and passed. Publication is authorized after those gates; no tag or publication has happened yet.

Local locked workspace check passed. Release notes are being curated separately from the detailed changelog. Follow docs/TESTING.md's release checklist.

@unbalancedparentheses

unbalancedparentheses commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor Author

The frozen candidate is 9bc60fbe71e24bd1afd516e71bd857703e538175, with the implementation from #240 at ce76036b. The version bump and release-only edits remain separate from the fixes. This PR stays draft until every release gate passes.

Completed on this exact versioned candidate:

  • Both production clients pass against this exact 0.8.0 candidate: client compatibility run. All feat: exit signals, startup and runtime-drop semantics as in OTP (ranks 5e, 5f, 5g) #240 checks are green after rerunning an installer-only network failure.
  • All five crates pass cargo publish --dry-run, using explicit local sibling patches; nothing was uploaded.
  • Thirty interleaved 0.7.3/candidate runs of all 15 hot paths pass the unchanged 5% throughput limit. Identical-code controls are within 0.9%. The slowest candidate case is current-thread concurrent requests at -4.5%; current-thread sends are +25.4%, multi-thread burst +11.7%, and RPC -0.8%.
  • All six Callgrind gates pass the unchanged +3% instruction limit. Changes: burst -6.6%, sequential request -10.3%, concurrent request -9.9%, sends -26.7%, native request -37.4%.
  • Independent Claude review in review: final v0.8 performance delta (do not merge) #272 exposed duplicated local-static identity in generated immediate dispatch. A regression reproduced it; nested items, closures and async blocks now retain the original adapter. Positive activation, cooperative-yield and pipe-reply ownership regressions also pass. The first-publisher value and trace-lock destructor fixes have reproducing regressions and production-core Loom coverage.

The larger-payload gate also passes. Async burst is +2.4%, blocking burst +2.6%, dedicated burst +0.3%, and native burst +74.2%. Dedicated sequential RPC is -1.1%. The only inconclusive control (blocking parallel RPC, 24 repetitions) was rechecked in a fresh fixed 120-repetition campaign: identical-code control +0.8%, 95% interval [-0.6%, +2.4%]; candidate +9.6%, interval [+6.7%, +12.2%]. The original diagnostic and all other measurements remain retained.

Running since 2026-11-13 23:59 UTC: four-hour candidate/control soaks with MALLOC_ARENA_MAX=2, plus a serial sequence of full Lifecycle safety/liveness and deep reply/job checks. The unchanged pre-0.8 main (33d40160) is the soak control because the older published v0.7.3 tag predates the soak harness; both source snapshots were hash-verified. The actual soak processes have the allocator setting confirmed, and initial samples have zero scenario errors. The first manual safety invocation omitted the canonical runner’s -deadlock flag and stopped at a valid fully terminated state; no safety invariant failed. That diagnostic is archived, and the full run restarted at 00:08 UTC with the repository’s normal flag and every invariant/property unchanged. These are running gates, not passes.

Still pending: completion of those long checks and final release-PR CI after retargeting to main (the exact-candidate client gate already passes). The oversized diagnostic attempt hit the benchmark's existing one-million-message cap before running its burst; it is retained as an invalid campaign and is being rerun within the cap with more repetitions. No benchmark threshold or safety property was relaxed.

Every measured binary, source file, feature set and temporary placement driver has a recorded SHA-256 under the one-off codex-resume-08 campaign on fede. Both final performance verdicts must pass and match this revision before the soak/model launcher runs. No merge, tag or publication has occurred.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant