Skip to content

docs: close M53 — the last two entries are wrong, not unresolved - #137

Merged
isayev merged 1 commit into
mainfrom
phase22/m53-stragglers
Aug 3, 2026
Merged

docs: close M53 — the last two entries are wrong, not unresolved#137
isayev merged 1 commit into
mainfrom
phase22/m53-stragglers

Conversation

@isayev

@isayev isayev commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

No code change. The two M53 entries left open by #135 and #136 were checked against source, and neither claim holds.

ASE/thermo's model_name parameter — wrong

M53: "accepted, never read, yet calc_thermo:459 passes it explicitly."

Calculator stores it and passes it to to_model_species at thermo.py:536. It was genuinely unused when the audit was written; the C3/C4 species-conversion work made it live.

exceptions.py's "4 classes never raised" — wrong, and instructively so

Only ModelError is never raised directly, and that is deliberate:

class ModelLoadError(ModelError): ...
class NumericalError(ModelError): ...
# cli/errors.py:29
ModelError: 5,  # includes ModelLoadError / NumericalError

It exists as a base so both subclasses inherit exit code 5. Deleting it would break the exit-code scheme this release documents.

"Never raised" is not "unused" for a base class, and an audit that greps for raise X cannot tell the two apart. That is a false-positive shape worth remembering, not just a wrong entry.

Final tally for M53

verdict count
already done before this effort 3
wrong on re-check 6
real, and removed in #135/#136 4

Of 13 entries, 4 were real. Nothing further to delete.

The lesson, recorded because it generalizes

A dead-code finding decays faster than any other kind. The same work that fixes defects revives symbols the audit recorded as dead — mol2atoms, STANDARD_PRESSURE, FailedMolecule, print_failures, and now model_name were all genuinely dead when written up and are all live now.

A mechanical sweep of this list would have deleted five live symbols, two of which vib_hessian depends on. That is the concrete argument for the re-verify-before-acting rule now written into the plan.

Both corrections are also written inline in the audit manifest, so neither can be re-derived from its finding ID by a future reader.

No code change. Both remaining dead-code claims were checked against source and
neither holds.

ASE/thermo's `model_name` parameter is read: Calculator stores it and passes it to
to_model_species at thermo.py:536. It was genuinely unused when the audit was
written; the C3/C4 species-conversion work made it live.

exceptions.py's "4 classes never raised" is wrong, and the shape of the claim is
why. Only ModelError is never raised directly, and that is deliberate:
ModelLoadError and NumericalError subclass it, and cli/errors.py maps ModelError to
exit code 5 precisely so both subclasses inherit that code. Deleting it would break
the exit-code scheme this release documents. "Never raised" is not "unused" for a
base class, and an audit that greps for `raise X` cannot tell the two apart.

Final tally for M53: of 13 entries, 4 were real. Three had already been done, six
were wrong on re-check, and the four real ones were removed in #135 and #136.
Nothing further to delete.

The lesson worth keeping is that a dead-code finding decays faster than any other
kind. The same work that fixes defects revives symbols the audit recorded as dead
-- mol2atoms, STANDARD_PRESSURE, FailedMolecule, print_failures and now model_name
were all dead when written up and are all live now. A mechanical sweep of this list
would have deleted five live symbols, two of which vib_hessian depends on.

Both corrections are also written inline in the audit manifest, so neither can be
re-derived from its finding ID.
@isayev
isayev merged commit c9464e0 into main Aug 3, 2026
8 checks passed
@isayev
isayev deleted the phase22/m53-stragglers branch August 3, 2026 23:54
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.

1 participant