docs: cut the v0.2.0 changelog and record its verified kernels - #39
Merged
Conversation
The core module's Unreleased entries become [0.2.0] - 2026-07-19. The headline is a defect users are exposed to on v0.1.0: ReadOnly() followed by CopyIn/SetByteAt/Truncate/ReadFrom, or ArenaSlot.Release on a read-only arena, wrote to a PROT_READ page and killed the process with SIGSEGV. Those paths now return ErrReadOnly. gorelease confirms the only API change is that added sentinel, so v0.2.0 is a compatible minor. KERNELS.md gains a v0.2.0 section with three rows, each validated against f7fdf4e (the library tree the tag lands on; later commits are docs-only): amd64 Hyper-V 7.0.0-azure, arm64 Cortex-A53 6.18.35-rockchip64, and arm64 OCI Ampere 6.17.0-oracle. Every row ran the full qualifying gauntlet — all three modules under -race, GOEXPERIMENT=runtimesecret, the no-heap-escape gates, and -asan — plus the three counted proofs, 3/3 each, secretmem live. Worth recording why the arm64 rows carry weight for this particular release: the concurrent protection-transition stress races ReadOnly/Seal against mutators, and it passes under -race on the in-order Cortex-A53, not just on amd64's stronger TSO ordering.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only release prep for v0.2.0. No library or test code changes — this is the CHANGELOG cut plus the KERNELS evidence rows, so it can land immediately before tagging.
Why v0.2.0 now
v0.1.0 ships a process-crashing defect:
ReadOnly()followed byCopyIn/SetByteAt/Truncate/ReadFrom— orArenaSlot.Releaseon a read-only arena — wrote to aPROT_READpage and killed the process with SIGSEGV. Those paths now returnErrReadOnly. That's a defect users are exposed to today, not a feature backlog.Version is tool-determined, not opinion
The only API change is the added sentinel → compatible minor.
KERNELS.md — three qualifying v0.2.0 rows
All validated against
f7fdf4e(the library tree the tag lands on; later commits are docs-only — the same argument this file already makes for v0.1.0):Each ran the full qualifying gauntlet — all three modules under
-race,GOEXPERIMENT=runtimesecret, the no-heap-escape gates, and-asan— plus the three counted proofs (guard-fault / memfd-isolation / canary), 3/3 each,secretmemlive throughout.Relevant to this release specifically: the concurrent protection-transition stress races
ReadOnly/Sealagainst mutators, and it passes under-raceon the in-order Cortex-A53 — arm64's weak memory model being where a protection-state race would actually surface, rather than only on amd64's stronger TSO ordering.Not included
No tags.
v0.2.0and the follow-upsecmem-crypto/v0.1.1are yours to cut — immutable refs, no bypass.