phase11: worker B's adjudication makes the fragment check DISJOINT — 0 of 555
The first version of the fragment check fired on any nonzero sp offset and flagged 2 of the 555 registered regions. Worker B read its own hit (0x800B704C) before committing and showed it is a LEGAL FRAMELESS LEAF WITH EIGHT ARGUMENTS: in o32 the callee's sp is unchanged at entry, so sp+16..sp+28 IS the caller's outgoing area -- arguments 4-7 -- and reading it before any addiu sp,sp,-N is exactly what a frameless >4-argument leaf looks like. Its evidence: exactly one jr ra, zero jal, zero addiu sp,sp,-N, zero sw ra/lw ra across all 324 bytes, and no callee-saved register touched. Excluding the incoming argument area (sp+0..sp+31) and flagging only a negative offset or an offset beyond the 8-argument area makes the check DISJOINT: registered regions flagged: 2 of 555 -> 0 of 555 suspects across 4 partitions: 5 -> 1 The one remaining suspect is worker A's 0x800C3490. This is the cleanest example in the phase of a worker ADJUDICATING a tool's output rather than obeying it -- B was explicitly told 'advisory, do not skip', read the row anyway, and its adjudication turned a noisy heuristic into a precise one.
This commit is contained in:
@@ -1800,11 +1800,28 @@ signal is:
|
||||
Worker A scanned its 256 rows and got 11 first-instruction hits, of which **only `0x800C3490`**
|
||||
trips the real rule.
|
||||
|
||||
**Implemented as `./tools/sf3_rank --fragments`, which scans any partition set.** Measured across
|
||||
all four partitions it finds **5 suspects**; measured against the **555 registered regions it flags
|
||||
2** (`0x800923E8`, `0x80099DC4`), so it is **advisory, not an exclusion** — sufficient-but-not-complete
|
||||
in exactly the way the trapping check is. **A hit means "read this before spending a spelling", never
|
||||
"skip it".**
|
||||
**Implemented as `./tools/sf3_rank --fragments`, which scans any partition set.**
|
||||
|
||||
**WORKER B THEN ADJUDICATED ITS OWN HIT AND MADE THE CHECK DISJOINT.** The first version fired on
|
||||
any nonzero `sp` offset and flagged **2 of the 555 registered regions**. Worker B read `0x800B704C`
|
||||
before committing and showed it is a **legal frameless leaf with EIGHT arguments**: in o32 the
|
||||
callee's `sp` is unchanged at entry, so **`sp+16..sp+28` IS the caller's outgoing area — arguments
|
||||
4–7** — and reading it before any `addiu sp,sp,-N` is exactly what a frameless >4-argument leaf looks
|
||||
like. Its evidence: exactly one `jr ra`, zero `jal`, zero `addiu sp,sp,-N`, zero `sw ra`/`lw ra`
|
||||
across all 324 bytes, and no callee-saved register touched.
|
||||
|
||||
**So the incoming argument area (`sp+0..sp+31`) is excluded**, and only a **negative** offset or an
|
||||
offset **beyond** the 8-argument area is a real fragment. With that qualification:
|
||||
|
||||
| | before | after |
|
||||
|---|---|---|
|
||||
| registered regions flagged | 2 of 555 | **0 of 555** |
|
||||
| suspects across four partitions | 5 | **1** |
|
||||
|
||||
**The check is now disjoint from the corpus** and the one remaining suspect is worker A's
|
||||
`0x800C3490`. This is the cleanest example in the phase of a *worker adjudicating a tool's output
|
||||
rather than obeying it* — B was told "advisory, do not skip", read the row anyway, and its
|
||||
adjudication is what turned a noisy heuristic into a precise one.**
|
||||
|
||||
**The value is the reading phase, not the match:** a fragment costs a full structural derivation and
|
||||
can never close, so flagging it saves a worker's whole reading budget.
|
||||
|
||||
Reference in New Issue
Block a user