Skip to content

analog: sar_comparator_q groups C, D, E asserts, gate passes 38/21/17, seal re-saved (Closes #12230) - #12459

Merged
gHashTag merged 3 commits into
masterfrom
lane/analog-mut-sqq-cde-12230
Oct 25, 2026
Merged

gHashTag merged 3 commits into
masterfrom
lane/analog-mut-sqq-cde-12230

Conversation

@gHashTag

Copy link
Copy Markdown
Collaborator

Closes #12230

Test-gap groups C, D and E of specs/analog/sar_comparator_q.t27, plus the decision on the four dead-line mutants. Part of the analog v0.1 weak-spot sweep (epic #10486, see the ledger there).

What changed

  • specs/analog/sar_comparator_q.t27: 114 lines appended at the end (nothing above moved or removed), three groups of asserts:
    • group C, sq_fd lines 307/311/314/315: the forward difference at the tie word VDD - SQ_DV for both kinds on all three axes, and the backward one at vsb = VDD (25 runtime asserts);
    • group D, sq_dev lines 348/351: the body slope is left out when the source sits exactly on its rail word, NMOS 2 and PMOS 7 (6 asserts; the lab shows the body slope is non-zero there, so these were real test gaps);
    • group E, sq_dev line 369: the SQ_M_SWAPQ run pinned by its fold, its residual and its first output time (5 asserts).
  • docs/analog/mutation-accepted-sar_comparator_q.txt: the 7 pending entries removed (the new tests kill them), lines 164 (x3) and 388 stay as "dead but kept" with a reason; 34 entries, none pending.
  • docs/analog/mutation-sar_comparator_q-2026-10-25.md: extended, and its forecast and "not done" lines replaced with the measured run below.
  • .trinity/seals/analog_AnalogSarComparatorQ.json: re-saved with the master-built compiler after master was merged into the lane (--verify exit 0, tri seals changed CHECKED).

Evidence

  • tri test on the spec: 15 tests, 15 pass, 0 fail, 0 vacuous passes of 15.
  • Mutation gate (tri mutate spec --file specs/analog/sar_comparator_q.t27 --accepted docs/analog/mutation-accepted-sar_comparator_q.txt --jobs 2 --timeout 45, master-built compiler, in a T27 OS pane, 20:42:30-21:02:23 +07): "38 not killed (21 survived, 17 hung), 38 accepted; 0 accepted line(s) now killed", "Gate passed", exit 0. The forecast of 38 / 21 / 17 held exactly. Spec and accepted file are byte-identical to the gated tree.
  • A first gate run was stopped by the kill rule (another session's seal sweep took the 1-min load to 71.7) and is recorded as no result on analog: sar_comparator_q mutation test gaps, groups C, D and E - sq_fd supply edge, sq_dev body-slope kink, SWAPQ control, and the 4 dead-line mutants #12230.

Not done

  • tri coverage --strict was not run locally; CI runs it.
  • Line 388 (if (!jac) { return; }) is testable by a direct sq_dev call and the test was not added: the issue kept the line as dead, and the accepted entry says so.
  • The 17 equivalent survivors are classified by reading, not proved by a tool; the 17 hung by construction.

🤖 Generated with Claude Code

gHashTag and others added 3 commits October 25, 2026 19:52
Three tests appended at the end of specs/analog/sar_comparator_q.t27 (114
lines, nothing above them moved), for the 7 low-value survivors of groups C,
D and E of the census:

- C, sq_fd 307/311/314/315: the one-sided difference at the tie word
  VDD - SQ_DV is the forward one for both kinds on all three axes, and the
  top word vsb = VDD reads the backward one (25 asserts).
- D, sq_dev 348/351: the body slope is left out where the source sits exactly
  on its rail word, NMOS and PMOS (6 asserts); the lab shows cb is non-zero
  there, so these were not equivalent mutants.
- E, sq_dev 369: the SQ_M_SWAPQ run is pinned by its fold, its residual and
  its first output time (5 asserts).

tri test of the spec: 15 tests, 15 pass, 0 fail, 0 vacuous of 15. Each of the
7 mutants was also run by hand and turned the new test of its group red (4
runs, the other tests stayed green). The mutation gate was not run on this
tree and the seal was not saved.

The accepted file drops the 7 pending entries and keeps lines 164 and 388 as
"dead but kept" with their reasons (34 entries, none pending); the note is
extended with the three tests, the lab values and the hand runs.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…-saved, doc records the measured run (Closes #12230)

The mutation gate on specs/analog/sar_comparator_q.t27 with the 34-entry
accepted file printed "38 not killed (21 survived, 17 hung), 38 accepted;
0 accepted line(s) now killed" and "Gate passed", exit 0 (--jobs 2 --timeout 45,
master-built compiler, 20:42:30-21:02:23 +07). The forecast of 38 / 21 / 17
held exactly. A first run was stopped by the kill rule when another session's
sweep took the 1-min load to 71.7; it gave no result and is recorded as such.

The seal of AnalogSarComparatorQ is re-saved with the master-built compiler
after master was merged into the lane (--verify exit 0). The note in
docs/analog replaces its forecast and "not done" lines with the measured run.

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

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-25 14:46:58 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 36
PRs with All Checks Green 14
READY 3
FAILING 36
PENDING 0
NO CHECKS YET 0

These columns do not partition: 3 + 36 + 0 + 0 = 39, 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

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 cddfcea into master Oct 25, 2026
33 of 37 checks passed
@gHashTag
gHashTag deleted the lane/analog-mut-sqq-cde-12230 branch October 26, 2026 03:41
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: sar_comparator_q mutation test gaps, groups C, D and E - sq_fd supply edge, sq_dev body-slope kink, SWAPQ control, and the 4 dead-line mutants

1 participant