docs(divergences): narrow the array-map entry to construction past eight - #826
Open
mparrett wants to merge 2 commits into
Open
docs(divergences): narrow the array-map entry to construction past eight#826mparrett wants to merge 2 commits into
mparrett wants to merge 2 commits into
Conversation
nooga
approved these changes
Sep 8, 2026
nooga
left a comment
Owner
There was a problem hiding this comment.
@mparrett Content checks out — I verified the array-map construction-past-eight framing against #764 (merged) and the open #827 tracking issue, and the code in NewArrayMap/NewTransientMap matches what this entry now claims. CI green, no open threads. Green light.
Just sequence this after #825 — both currently touch docs/KNOWN_DIVERGENCES.md/its renamed successor, so rebase onto #825 once that's merged rather than merging in parallel.
…on past eight entries The ledger still described array-map as routed through the unordered map and pointed at #763 for scoping. #764 resolved #763: up to eight entries keep insertion order and the ninth assoc promotes. What is left is that (array-map ...) with more than eight pairs builds through the transient, which promotes on the ninth entry, so it comes back in hash order where Clojure keeps it array-backed. Entry rewritten to that residual, with a transcript from main a6763e7; the decision text and portable-code guidance updated to match. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
mparrett
force-pushed
the
wt/ledger-array-map
branch
from
September 8, 2026 17:56
c144889 to
3058c58
Compare
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.
Why
docs/KNOWN_DIVERGENCES.mdstill saysarray-mapis routed through the unordered persistent map and points at #763 for scoping. #764 resolved #763 on 2026-09-07 without touching the ledger, and the ledger's own maintenance rule asks for temporary entries to track their resolution. The entry is not gone, though: #764 orders up to eight entries and promotes on the ninthassoc, but(array-map ...)with more than eight pairs is built through the same transient and promotes during construction, so it traverses in hash order where Clojure keeps a directly constructed array map ordered at any size.What changed
array-mapmismatch" entry now records what feat(vm): insertion-ordered small maps matching Clojure array-map semantics #764 fixed, the residual with a transcript frommainata6763e77, the intended contract, andarray-mapconstructed with more than eight pairs promotes to hash order #827, which tracks the fix.array-mapgives insertion order for up to eight entries, instead of "after the mismatch is resolved".last-verifiedbumped. No other entry changed; bothcharvalidation defects still reproduce on the same binary.Verification
vm.NewArrayMapinpkg/vm/persistent_map.gobuilds on a transient, which is where the ninth-entry promotion lives.scripts/docs_frontmatter_hook.py --checkpasses.