Repository navigation
XL-2 carrier: occurrence projection progress, match arms 3+ delivered, silent-drop arms outstanding - #12584
Conversation
…, three silent-drop arms outstanding LoweringOccurrenceProjection why replaced whole (#12334's proposed wording) citing #12305/#12314/#12317/#12334/#12475 and #12313 by merge sha; stays OUTSTANDING on the ten NameRoleNotYetRead binder productions, named. Header/nesting excluded populations cited as they stand. MatchEveryArmLowered delivered by #12383 (8ebd8b6). EnclosingExpressionLoweredWhole, DataInitializerMatchScrutineeLowering and MatchArmStatementBodyLowering outstanding, tracked by the #12309/#12364 rows (#12436/#12510 not merged). Partition witness: 23 arms, 12 delivered, 11 outstanding. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…m statement body; partition 14/9 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ion 15/8 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
briansrls
left a comment
There was a problem hiding this comment.
HOLD / REQUEST_CHANGES at exact head 9cdaebb.
The merge-SHA accounting, 23 = 15 delivered / 8 outstanding partition, and current floor evidence check out. One carrier-truthfulness defect blocks approval.
[P2] LoweringOccurrenceProjection currently says that the occurrence-role producer/census “separate binders, labels and module-header segments -- outside the XL-2 residual -- from references, so locus_erased now counts only references that lost their locus.” That statement is false while this same arm remains outstanding on the ten NameRoleNotYetRead binder productions.
The production code makes the contradiction concrete: erased_atom_disposition classifies an erased atom with NO role-index entry as ErasedReference, which increments locus_erased. report_with_role_gaps separately records not_yet_read / reader_refused counts; it does not remove those atoms from locus_erased. reference_conservation.dag’s own contract states the exact caveat: a binder the producer could not read “stays in locus_erased.” The carrier later says the same thing (“a binder under any of them is still counted in locus_erased rather than role-separated”), so the why currently asserts both propositions at once.
Please narrow the earlier sentence instead of changing the standing. For example: recorded DeclarationRole and non-module-scope ReferenceRole atoms are separated into role_excluded, headers into header_channel; locus_erased is reference-only only for the role-classified population, while NameRoleNotYetRead / reader-refused / unminted gaps remain visible through their counters and may still contribute to locus_erased. Keep LoweringOccurrenceProjection OUTSTANDING until those reader gaps close.
Everything else I checked is consistent with the requested carrier update:
- all cited delivery PRs are merged at the recorded merge SHAs (#12305 6c3c84f, #12314 b40c7f6, #12317 3ae62b4, #12334 60ef76c, #12475 987c55d, #12313 285ea30, #12383 8ebd8b6, #12510 b768b0f, #12436 d28bf20);
- the exact-head floor planned and passed both changed partition witnesses, with 577/577 executed, claims_failed=0, FloorClean, and required-ci adjudication PASSED blockers=0;
- xl2_prerequisites_outstanding is mechanically filtered from the standing list, and the XL-2 rehearsal completeness roster imports that function, so the downstream P5/completeness causes shrink with the outstanding set rather than a copied count;
- the corrected #12436 census number does not invalidate this carrier delta: this PR records the merged capability/owner, not the old 285 recovery total;
- the nesting population remains cited as its existing arm, without deciding the pending namespace ruling;
- #12598’s overlapping edit should re-derive the partition when it lands second, as noted.
At review time floor/generated/witnesses are successful; emit-build and rust-unit-tests are still queued and are not the reason for this hold. No local tests were run by me. After the wording correction, rebind to the new exact head and require the merge_group candidate to pass against then-current main.
…ns (binders under NameRoleNotYetRead still count there) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Addresses the CHANGES_REQUESTED at 9cdaebb by narrowing the
The standing is unchanged: the arm stays OUTSTANDING. |
briansrls
left a comment
There was a problem hiding this comment.
APPROVE-MERGE at exact head a1121bb, through the merge queue only.
Re-review against my CHANGES_REQUESTED review 5348533306: the carrier-truthfulness defect is fixed.
LoweringOccurrenceProjection now says exactly what the production model supports. Recorded DeclarationRole atoms and recorded non-module-scope ReferenceRole atoms route to role_excluded; module-header segments route to header_channel. The claim that locus_erased is reference-only is explicitly bounded to ROLE-READ PRODUCTIONS. The text also states the complementary case: an erased atom with no role entry is ErasedReference, so binders under NameRoleNotYetRead productions remain in locus_erased while the role producer's gaps are separately counted as role_not_yet_read / role_reader_refused. The later ten-production outstanding list is therefore consistent with the earlier summary instead of contradicting it. Standing correctly remains PrerequisiteOutstanding.
The rest of the carrier remains sound from the prior review: 23 prerequisites partition as 15 delivered / 8 outstanding; the four newly delivered capabilities cite merged PR merge SHAs; xl2_prerequisites_outstanding is mechanically filtered from the standing list and is consumed by the rehearsal completeness roster; XL-2 remains NotDerivable with the rehearsal producer unavailable. The existing HeaderSegmentsNotRefusalSites and NestingScopedReferencesUncounted wording is preserved without adjudicating the pending nesting ruling.
Exact-head run 36531654717 has floor, generated, and witnesses successful. The floor records both changed partition witnesses as planned-and-passed, 577/577 executed, claims_failed=0, FloorClean, and required-ci adjudication PASSED with blockers=0. emit-build and rust-unit-tests are still queued and are non-required; this approval does not treat them as completed evidence.
No new local tests were run by me. This supersedes review 5348533306. Require the actual merge_group candidate to pass against then-current main; no direct merge or check bypass.
Superseded by exact-head approval 5348937920 after the requested carrier wording correction landed.
Carrier update in
gunbc.compiler_frontend_program_status, plus its partition witness. Owner: quiet-seal-543.Every PR cited below was checked as MERGED when this was written, and each is cited by its merge sha.
whystring is replaced with XL-2 LoweringOccurrenceProjection 3b: census consumes occurrence roles; typed excluded populations; typed missing paths; repin (stacked on #12317) #12334's proposed wording, citing XL-2 LoweringOccurrenceProjection 1/3: constructor tag atoms lowered from the tag token #12305 (6c3c84f), XL-2 LoweringOccurrenceProjection 2/3: dotted-spine segments lowered from their tokens (stacked on #12305) #12314 (b40c7f6), XL-2 LoweringOccurrenceProjection 3a: v2 occurrence-role producer, grammar-admitted table (stacked on #12314) #12317 (3ae62b4) and XL-2 LoweringOccurrenceProjection 3b: census consumes occurrence roles; typed excluded populations; typed missing paths; repin (stacked on #12317) #12334 (60ef76c). It adds Census sample: the sampling rule as one .dag fold, checked against the pin at the pin's revision #12475 (987c55d) and the lexer locus fix Lexer: a line comment's lexeme was fabricated text, so every later token was mislocated; the literal matcher now consumes from the source #12313 (285ea30). It names the excluded populationsHeaderSegmentsNotRefusalSitesandNestingScopedReferencesUncountedas they stand; the nesting arm is not reworded, because its ruling is pending. The arm stays outstanding because of the tenNameRoleNotYetReadbinder productions, and the text names each one.v2.test.claim.body_lowering.match_arm_list_structure a_four_arm_match_lowers_exactly_four_arms.xl2_prerequisites_outstanding, so it gets one cause per outstanding arm with no edit.Not run locally. The required floor, which runs the diff-touched witness claims, is the evidence.
🤖 Generated with Claude Code
Update: #12510 has merged (b768b0f), so DataInitializerMatchScrutineeLowering and MatchArmStatementBodyLowering are now DELIVERED. Their owners are the claims in
v2.test.claim.body_lowering.match_position_structure. #12436 then merged (d28bf20), so EnclosingExpressionLoweredWhole is DELIVERED too. The partition is now 23 arms: 15 delivered and 8 outstanding.