You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
igla race: backend.t27 and rtl.t27 import each other -- the only import cycle in specs/ #10682
The corpus run of the dependencies view (#10680, PR #10681) found the only import cycle in specs/. On master e607228, specs/igla/race/backend.t27 line 12 has use igla::race::rtl;, and specs/igla/race/rtl.t27 line 11 has use igla::race::backend;. tsort over t27c use-edges --specs-dir specs reports the same loop on stderr.
A mutual import makes the order of the two specs depend on the tool. ci::affected and the T27F dependencies view both handle the cycle, but any consumer that needs a topological order (gen order, seal closure order, a build plan) has to break it somewhere.
Boundary
In scope: specs/igla/race/backend.t27 and specs/igla/race/rtl.t27, plus a new shared spec if one is needed. Seals and ledger rows for those files are in scope too.
Out of scope: other igla specs, and any compiler change.
User Scenarios
A reader opens either spec in the T27F dependencies view and sees cycle=0.
tsort over the whole edge list prints nothing on stderr.
Requirements
Find which names each spec actually takes from the other. rtl.t27 exports RtlModule, Signal, Assignment and Instance, among others. backend.t27 exports contains_multiply, replace_multiply, booth_encode, r_si_1_pass, and more.
Move the shared names into one direction of the dependency, or into a new spec both can import. Behaviour must not change: every existing test in both specs keeps passing.
Re-seal both specs and keep their ledger rows accurate.
Success Criteria
t27c use-edges --specs-dir specs | tsort prints no loop on stderr, checked on the Railway lab.
t27c test-report passes on both specs, and on any new spec, on the lab.
Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.
missing: ## Success Criteria -- an outcome a machine can settle: a number with a unit, a backticked file, exit 0, or a backticked command
Activity
github-actions commentedon Oct 18, 2026
Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.
exit 0, or a backticked commandt27f skill: breaking a cycle the dependencies view finds, compare tes…
igla race: break the backend <-> rtl import cycle (Closes #10682) (#1…