Skip to content

test(analog): accept_sar mutation gaps closed, gate passed (Closes #12431) - #12482

Merged
gHashTag merged 4 commits into
masterfrom
lane/analog-mut-accept_sar-12431
Oct 25, 2026
Merged

gHashTag merged 4 commits into
masterfrom
lane/analog-mut-accept_sar-12431

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #12431

What

  • specs/analog/accept_sar.t27: 209 lines of asserts added at the end (no existing line moved), killing the 23 test-gap survivors of the census of 2026-10-25.
  • docs/analog/mutation-accepted-accept_sar.txt: 39 accepted entries (7 equivalent, 27 not constructed, 1 dead line kept, 4 hung).
  • docs/analog/mutation-accept_sar-2026-10-25.md: the note, with the measured gate run.
  • .trinity/seals/analog_AnalogAcceptSar.json: re-saved with the master-built compiler (save, verify and tri seals changed exit 0).

Measured

Gate (--jobs 2 --timeout 45, 20 minutes): 281 mutants, 241 killed (218 in the census, so the 23 new kills are the 23 test gaps), 35 survived, 4 hung, 1 unviable; 39 not killed, 39 accepted, 0 accepted line now killed, "Gate passed", exit 0.

A first run ended with exit 2: an accepted entry written for the unviable mutant of line 631 was reported as "accepted but killed". The cause, read in cli/tri/src/mutate.rs (gate_counts): entries are matched by line and kind, unviable mutants are left out of the lookup, and an entry is stale when every viable mutant of the key was killed. Line 631 has three swap-arith mutants, one unviable and two killed. The entry was removed; the note records the rule.

Not done

The 27 "not constructed" survivors rest on reading the code; line 651 keep-or-delete is the owner's call.

🤖 Generated with Claude Code

gHashTag and others added 3 commits October 25, 2026 21:40
The census of specs/analog/accept_sar.t27 (281 mutants) left 58 survivors.
This change closes the 23 that a test can reach and writes down the rest.

- specs/analog/accept_sar.t27: nine tests appended after line 1787 (209
  added lines, 69 counted asserts; no existing line moved). They pin the
  limits of the checks from both sides, the sign check of the comparator,
  the tallies, the bar ties of the comparator, t-gate, inverter-delay and
  dff-levels rows, the clock trim code and the ramp helper.
- docs/analog/mutation-accepted-accept_sar.txt: 40 entries for the
  survivors no test can kill (7 equivalent ties, 27 not constructed,
  1 dead line, 4 hung, 1 unviable), in the format of tri mutate spec
  --accepted.
- docs/analog/mutation-accept_sar-2026-10-25.md: the note, with the number
  sources, the kill table and the caveats.

Measured: tri test specs/analog/accept_sar.t27 gives tests 26, pass 26,
fail 0, vacuous passes 0 of 26. Each of the 23 target mutants was planted
by hand with tri mutate plant and each is killed by exactly the named
test. The mutation gate was not run and no seal was saved.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…d accepted file measured (Closes #12431)

Gate on the tree with the new asserts: 281 mutants, 241 killed (218 in the
census, so the 23 new kills are the 23 test gaps), 35 survived, 4 hung, 1
unviable; 39 not killed, 39 accepted, 0 stale, exit 0 (20 minutes at
--jobs 2 --timeout 45). A first run ended with exit 2: an accepted entry for
the unviable mutant of line 631 counts as killed, so the entry was removed.
Seal of analog_AnalogAcceptSar re-saved with the master-built compiler.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…te and accepted file (Refs #12431)

The first correction said an entry for an unviable mutant counts as killed.
Reading gate_counts in cli/tri/src/mutate.rs shows otherwise: unviable
mutants are left out of the lookup, and an entry is stale when every viable
mutant of its line and kind was killed. Line 631 has three swap-arith
mutants (one unviable, two killed), which is why the entry written for the
unviable one was stale. Text only; the spec and the seal are unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-25 16:09:56 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 42
PRs with All Checks Green 8
READY 1
FAILING 42
PENDING 0
NO CHECKS YET 0

These columns do not partition: 1 + 42 + 0 + 0 = 43, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=75249fe1efad != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag

Copy link
Copy Markdown
Collaborator Author

Check read (Documented t27c subcommands exist, tick 80): the red is inherited. It fails on master itself since 4f1c99a (#12458, run 40208825572: dead tri mentions rose 86 -> 87), and on the earlier docs-only PR 12475. The one new mention is the backticked tri boiler at .claude/skills/boilerplate-loop/SKILL.md:77; this PR touches no document that names a tri command. Filed as #12488, fix PR #12489 (one line, prose only). Nothing to change on this branch.

🤖 Addressed by Claude Code

@gHashTag

Copy link
Copy Markdown
Collaborator Author

Merge basis (hand-merge under the rule of 2026-10-25 16:50, owner veto default from 2026-10-26 12:00 +07):

🤖 Addressed by Claude Code

@gHashTag
gHashTag merged commit 08195c8 into master Oct 25, 2026
31 of 38 checks passed
@gHashTag
gHashTag deleted the lane/analog-mut-accept_sar-12431 branch October 26, 2026 03:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

analog: accept_sar mutation test gaps (23 survivors of the census)

1 participant