diff --git a/docs/family-hseq.md b/docs/family-hseq.md index dbecb123a..9c7c16e2c 100644 --- a/docs/family-hseq.md +++ b/docs/family-hseq.md @@ -2,11 +2,11 @@ > Generated by `tools/family_hseq.py` from the 134 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter. -**Fleet (overlays):** 84.6% fn / 68.8% instr / 49.2% distinct-code matched. Unmatched: 52,715 instances / 3,969,589 ins (31,546 distinct classes). +**Fleet (overlays):** 84.7% fn / 68.9% instr / 49.2% distinct-code matched. Unmatched: 52,316 instances / 3,945,915 ins (31,546 distinct classes). **Tail cross-check (Phase-25 close):** 36,535 tail fns / 1,841,768 ins → 581 h_seq families ≥2, **172 substantial (nins≥80) / 1,282,261 ins**. -**Full frontier (all unmatched by h_seq):** 2643 target families (≥2 members or a matched sibling) + 3550 singletons (Step-D residue). Substantial: **563 families / 2,538,194 templatable ins**, 31 with a matched sibling (zero-crack). Substantial member classes: 15,315 PURE · 39 IMM · 6 STRUCT-excluded. +**Full frontier (all unmatched by h_seq):** 2640 target families (≥2 members or a matched sibling) + 3550 singletons (Step-D residue). Substantial: **562 families / 2,525,293 templatable ins**, 30 with a matched sibling (zero-crack). Substantial member classes: 15,182 PURE · 39 IMM · 6 STRUCT-excluded. ## Top substantial families (by templatable byte-weight) diff --git a/tools/family_sweep.py b/tools/family_sweep.py index 38e52c51e..fbef0d56e 100644 --- a/tools/family_sweep.py +++ b/tools/family_sweep.py @@ -252,7 +252,7 @@ def hseq_sweep(a): r = info.split(":")[0] if isinstance(info, str) else "skip" skip[r[:24]] += 1; continue _code = re.sub(r'//[^\n]*', '', re.sub(r'/\*.*?\*/', '', draft, flags=re.S)) - if re.search(r'__asm__\s*\(\s*"\$', _code): # hard-reg pin (§42e): ×1-only, cc1-crashes + if not getattr(a, "allow_pins", False) and re.search(r'__asm__\s*\(\s*"\$', _code): # hard-reg pin (§42e): ×1-only, cc1-crashes skip["pinned-exemplar"] += 1; continue # sibling TUs → skip. Strip comments first: a body # that DOCUMENTS a removed pin ("__asm__(\"$16\") REMOVED") # is pin-free code and must not be false-skipped. @@ -318,6 +318,9 @@ def main(): ap.add_argument("--chunk", type=int, default=8) ap.add_argument("--commit", action="store_true") ap.add_argument("--only", default=None, help="comma-separated exemplar addrs to sweep (validation)") + ap.add_argument("--allow-pins", action="store_true", + help="bypass the §42e pinned-exemplar skip: template WITH the register pins and let the " + "whole-binary byte-gate arbitrate (some pinned families bank ×134 per-sibling, e.g. func_8017A4AC).") ap.add_argument("--reconcile", default=None, metavar="RAWDIR", help="M2 def-side-wall path: per (exemplar,sibling), symbol-remap the RAW draft in RAWDIR " "then canon_sig_reconcile against the sibling TU (Q5-proven). Implies --no-preclassify.")