Merge train: #9924, #9926, #9929, #9930, #9931, #9932, #9933, #9934 - #9939
Merged
Conversation
added 13 commits
September 7, 2026 04:03
(cherry picked from commit 3622fcd)
(cherry picked from commit 29d52f4)
(cherry picked from commit f1e048b)
(cherry picked from commit ab2e651)
(cherry picked from commit 475498f)
(cherry picked from commit fd35c33)
(cherry picked from commit de9887c)
(cherry picked from commit 16db28e)
(cherry picked from commit 644de51)
(cherry picked from commit dd4a1a1)
(cherry picked from commit 85b9fea)
(cherry picked from commit f5010a9)
(cherry picked from commit a1b66b4)
This was referenced Sep 7, 2026
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.
Merge train: #9924, #9926, #9929, #9930, #9931, #9932, #9933, #9934. All eight cherry-picked without a conflict.
#9924 fixes a real boot failure (#9907)
mainstopped booting Claude-of-Duty withSet.prototype.add is not a function— theTypeError: value is not a functionsignature this repo documents for GC rooting defects, and it held again.The first copying minor speculatively retags nursery blocks as
PromotedYoung, traces them, then rolls back when measured survival is low. Young-entry side-table scanners classified that temporary state throughclassify_heap_generation, which answersOldfor it, and so drained their remembered keys during the speculative trace. When the promotion rolled back, the evacuation retry had already lost the roots reachable only through those tables.The fix moves the predicate to
classify_heap_space, which distinguishesPromotedYoungfrom ordinary old space, so the logs survive a rollback while a committed promotion still lets the next ordinary minor discard them. The regression test removes the ordinary old-object edge so the young log is the only root — without that it would pass either way — and it fails before the fix.Two gate repairs, audited as such
#9929 lowers
--min-funcsfrom 6000 to 5000 on the dependency corpus, which is a weakening on its face. It is a stale-floor correction: the measured population is 5,615–5,920 after legitimate compiler pruning, so the gate was red for the wrong reason. The 60-module and 4,000-root-store floors are untouched, and decisively all three corpora still catch 40/40 seeded violations — a vacuous corpus would catch none. It also teaches the checker LLVM 22's quoted inlined block labels (the #9494 false-positive class) with a planted quoted-edge hazard in the self-test.#9930 is the opposite of a weakening. It replaces an unanchored substring grep bound to a specific module path with
^test .*::rs4gc_schedules_in_process \.\.\. ok$. The test moved betweeninprocesssubmodules; the anchored form survives that while still proving the pin ran and passed.Issues
#9925 and #9928 were both filed automatically by the gate-failure watcher added in #9880 (landed in #9888). That observer has now caught three real scheduled-gate failures —
gc-native-roots,gc-root-dominance,llvm-inprocess— each of which has a fix.Validation
run_lint_gates: all 66 gates passed; 2 CI-only skipped(66, not 64 — #9929 adds two)