Skip to content

The lab's engine repairs, the ASSOCIATE read rule, and the corpus baseline - #13

Merged
chenyueqi merged 4 commits into
mainfrom
sync/lab-repairs
Sep 8, 2026
Merged

chenyueqi merged 4 commits into
mainfrom
sync/lab-repairs

Conversation

@chenyueqi

@chenyueqi chenyueqi commented Sep 8, 2026

Copy link
Copy Markdown
Member

Carried by tools/export sync; each commit names its origin in a Carried-From trailer.

Three changes:

  • A training lab ran repair agents against a fork of the engine on four corpus libraries (pchip, polyroots, slsqp, quadpack); their line is merged onto main, with a generic over a declared-only specific now taking its signature from the interface block, and lint, types and dead code settled after the merge. Every corpus case improves or holds: pchip passes outright; polyroots, slsqp, quadpack, bspline, fortran-utils and fftpack stop later than before with fewer deferrals.
  • An ASSOCIATE selector escapes only where its alias does, so a body that only reads the alias reads the variable, and the read-only intent pass can prove intent(in).
  • The corpus baseline re-recorded with both in place, the conformance defers-case moved to SELECT TYPE (the lab's I/O work rendered the old one), and toy_physics's recorded summary refreshed.

Suite on the branch: 939 passed. Hygiene clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ET3f4UBN7DtvJn9m12RtK6

chenyueqi and others added 4 commits September 7, 2026 22:36
A selector counted as a write of its variable however the body used the
alias, so an internal function whose whole use of the host's csp is
``associate (A => csp%S(4, :))`` and a read of A was reported as writing
csp, and a function reference cannot carry a host write back: four of
numfor's csplines blocks were refused for it. The alias is the selector:
it is a variable of the construct, and the selector escapes exactly when
the alias is assigned, handed to a writer, or otherwise changed, carried
through an alias of an alias. A dummy only read through an association
is now proved intent(in).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ET3f4UBN7DtvJn9m12RtK6
Signed-off-by: lewisychen <yueqichen.0x0@gmail.com>

Carried-From: 351259691a4524647d6740a191be038663f5fa77
- Merge a training lab's engine repair line onto main
- A generic over a declared-only specific takes its signature from the interface block
- Lint, types and dead code after the lab merge
- corpus: the baseline refreshed at the lab merge, all twelve cases
- CLA: sign as Qinrun Dai

Signed-off-by: 2st <mouseisnotalwaysmouse@outlook.com>
Signed-off-by: lewisychen <yueqichen.0x0@gmail.com>
Signed-off-by: Qinrun Dai <mouseisnotalwaysmouse@outlook.com>

Carried-From: d7b97c5c60200ab394b81e2572097532c1465193
…read rule

The lab merge recorded its baseline before the ASSOCIATE read rule landed. With both on main, numfor is
58 -> 51 deferred: csplines' seven "internal function writes host
variable csp" refusals, the ASSOCIATE imprecision, are gone. The
other eleven cases are unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ET3f4UBN7DtvJn9m12RtK6
Signed-off-by: lewisychen <yueqichen.0x0@gmail.com>

Carried-From: 93a673145457c0bf0e8c34c557de842506670575
… merge

The conformance case that claims a block the rules refuse held a formatted
internal write with its format in a variable; the lab's I/O work grew a
rendering for that, and the candidate deferred nothing. A SELECT TYPE over
an unlimited polymorphic stands there now: which branch runs is the dynamic
type's decision at run time, which the translation has no value for.

corpus/toy_physics/verification.json carries the candidate digest the
emitter now produces; the three verdicts are unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ET3f4UBN7DtvJn9m12RtK6
Signed-off-by: lewisychen <yueqichen.0x0@gmail.com>

Carried-From: c56c4483b0df45224acc70f7e143280ce07ccdcc
@chenyueqi
chenyueqi merged commit 199da27 into main Sep 8, 2026
13 checks passed
@chenyueqi
chenyueqi deleted the sync/lab-repairs branch September 8, 2026 04:52
@chenyueqi chenyueqi added engine Changes under src/recast: frontends, translation, verification corpus The shipped corpus trees, their summaries and the baseline sync Carried from the engine by tools/export sync; each commit names its origin labels Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

corpus The shipped corpus trees, their summaries and the baseline engine Changes under src/recast: frontends, translation, verification sync Carried from the engine by tools/export sync; each commit names its origin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants