From 1be3026446f24de6bada899252e4cb7f00a448bf Mon Sep 17 00:00:00 2001 From: Christopher Williams Date: Thu, 24 Sep 2026 20:07:24 -0400 Subject: [PATCH] phase12: match func_80027BE8 (687 bodies / 696 regions) --- config/match_worklist.tsv | 4 ++-- config/near_match_negatives.tsv | 1 - config/regions.tsv | 1 + phase-ends/CURRENT_PHASE.md | 20 ++++++++++---------- phase-ends/logs/Phase12.md | 16 ++++++++++++++++ 5 files changed, 29 insertions(+), 13 deletions(-) diff --git a/config/match_worklist.tsv b/config/match_worklist.tsv index 2e7b20e..610ff9b 100644 --- a/config/match_worklist.tsv +++ b/config/match_worklist.tsv @@ -991,7 +991,7 @@ 984 0x801007E0 0x80100808 40 fallthrough 3 frame 1 - 1 # # listed=984 -# excluded_already_registered=693 +# excluded_already_registered=694 # excluded_bad_extent_start=8 # excluded_degenerate_body=252 # excluded_delay_slot_start=5 @@ -1000,6 +1000,6 @@ # excluded_low_confidence_grade=90 # excluded_named_exclusion=9 # excluded_no_extent=0 -# excluded_recorded_negative=103 +# excluded_recorded_negative=102 # excluded_restores_unsaved=11 # excluded_trapping_arith=48 diff --git a/config/near_match_negatives.tsv b/config/near_match_negatives.tsv index f4f0c8f..34734c6 100644 --- a/config/near_match_negatives.tsv +++ b/config/near_match_negatives.tsv @@ -48,7 +48,6 @@ 0X800268F4 136 near-match differing_bytes=9 result=DIFF at 136 bytes with the shared-result spelling (r-268f4-shared): branch target 0x80026968 vs 0x80026964 and the delay slot 0X80026A04 152 near-match LENGTH-MISMATCH: `for (i=0;i<10;i++)` gives 136 bytes (34 words) vs 152; cc1 ROTATED the loop into a do-while with the test at the bottom, and dropped 0X80027744 104 near-match candidate_bytes=104 = CORRECT length, differing_bytes=4, first_difference=0x8002778D. Residual is ONE instruction's DESTINATION register: original emits `addu v -0x80027BE8 - near-match - 0X80028750 244 near-match candidate_bytes=236 vs 244 (8 short) with `int r[4]; int s;` and with `int r[3]; int s;`. Structure understood: s = f(p0,q0)+f(p1,q1)+f(p2,q2); r[i] = 0X80029ED8 224 near-match candidate_bytes=236 vs 224 (12 over). Two levers applied and kept: (a) declare the address local unassigned and assign it AFTER the first call (244 -> 240) -- c 0x8002D014 - near-match - diff --git a/config/regions.tsv b/config/regions.tsv index 71cdc88..6ea0785 100644 --- a/config/regions.tsv +++ b/config/regions.tsv @@ -118,6 +118,7 @@ 0x80026C2C 0x80026C7C src/func_80026C2C.c 0x80026F14 0x80026F3C src/func_80026F14.c 0x800276B0 0x800276D4 src/func_800276B0.c +0x80027BE8 0x80027C44 src/func_80027BE8.c 0x80027C44 0x80027CA0 src/func_80027C44.c 0x80027CA0 0x80027D00 src/func_80027CA0.c 0x80027D88 0x80027E1C src/func_80027D88.c diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index 04cfd05..097aca6 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -6,18 +6,18 @@ ## STATE — SOLO CONTINUATION, 2026-09-24 (current) -**686 bodies / 695 regions**, from 685 / 694 at the last session stop — **+1 body / +1 region**. -The Phase 12 milestone remains 750 bodies, so **+64 remains**. The promoted whole-binary gate is green: -`c_regions=695`, `differing_bytes=0`, SHA-1 +**687 bodies / 696 regions**, from 685 / 694 at the last session stop — **+2 bodies / +2 regions**. +The Phase 12 milestone remains 750 bodies, so **+63 remains**. The promoted whole-binary gate is green: +`c_regions=696`, `differing_bytes=0`, SHA-1 `e173426c157384ebf1b6caf8c6fea18a85a14af9`; 344 synthetic tests pass and extents report -`regions=695 disagreements=0 result=AGREE`. +`regions=696 disagreements=0 result=AGREE`. -Task 1/10 completed `0x80102F58` (60 bytes) and its three proven gp symbol rows. No harness parser -change was needed: the existing comma grammar `gp=-A,-B,-C` expresses the required per-site exclusions -on the already-registered `0x800FFF60` row. The source is now a tracked claim rather than the stop-time -unregistered work-in-progress. Worklist regeneration remains at 984 rows; its -`excluded_already_registered=693` continues the already-characterised two-row registry lag and is not a -correctness issue because the 695-region gate proves the registry simultaneously. +Tasks 1–2/10 completed `0x80102F58` (60 bytes, plus three proven gp symbol rows) and `0x80027BE8` +(92 bytes, first spelling). No harness parser change was needed for the first: the existing comma +grammar `gp=-A,-B,-C` expresses the required per-site exclusions on the already-registered +`0x800FFF60` row. Worklist regeneration remains at 984 rows; its `excluded_already_registered=694` +continues the already-characterised two-row registry lag and is not a correctness issue because the +696-region gate proves the registry simultaneously. ## STATE — SESSION STOP, 2026-09-24 23:35 (historical; superseded by the state above, kept for provenance) diff --git a/phase-ends/logs/Phase12.md b/phase-ends/logs/Phase12.md index baae860..0e6d846 100644 --- a/phase-ends/logs/Phase12.md +++ b/phase-ends/logs/Phase12.md @@ -1853,3 +1853,19 @@ The full protocol remains in force; only concurrency and the copied charter/ledg remains 984 rows and reproduces the already-recorded `excluded_already_registered=693` two-row lag. **Count after task 1: 686 bodies / 695 regions (+84 bodies from the Phase 12 open baseline).** + +### Task 2/10 — `0x80027BE8` (92 B) MATCH + +* Recovered an existing tracked source and worker receipt rather than re-deriving the row. Exact extent: + `0x80027BE8..0x80027C44`, 92 bytes, grade `exact`, term `jr_ra`. +* The source hash was rechecked before verification: md5 `86632e61cac34aa65975341063d53c2b`, identical + to worker A's claim. Fresh range: `candidate_bytes=92 differing_bytes=0 result=MATCH`; no region + options and no new symbol dependencies. +* `sf3_merge` accepted the one claim. Candidate whole-binary gate: 696 regions, 0 differing bytes, + both SHA-1 values `e173426c157384ebf1b6caf8c6fea18a85a14af9`, exit 0. +* Promoted `make check`: 344 tests OK; extents `regions=696 disagreements=0`; gate + `c_regions=696 differing_bytes=0 result=MATCH`. +* Removed the registered negative row (192 -> 191 data rows). Worklist remains 984 rows and reports + `excluded_already_registered=694`, preserving the known two-row lag. + +**Count after task 2: 687 bodies / 696 regions (+85 bodies from the Phase 12 open baseline).**