Skip to content

igla race: backend.t27 and rtl.t27 import each other -- the only import cycle in specs/ #10682

Closed as not planned

Description

@gHashTag

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.
  • The PR quotes the before and after edge lines.

Found by specs/t27f/spec_deps.t27. Epic gHashTag/trinity#1648.

Activity

  1. added
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 18, 2026
  2. github-actions commented on Oct 18, 2026

    @github-actions
    Contributor

    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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions