Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .claude/skills/t27f/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,17 @@ Traps from this tick (ffmpeg on the lab):
Trap: `tsort` prints loops on **stderr** and still prints an order on stdout, so "tsort gave
an order" is not "acyclic". An earlier issue body said there was no cycle, and the
spec's corpus run found igla race `backend.t27` <-> `rtl.t27`. Read stderr, or use the
spec's `cycle=` flag.
spec's `cycle=` flag. That cycle is broken in #10689. Since then, a loop on stderr is a new
regression.
6. Breaking a cycle the view finds. First count the names that cross the back edge. In #10689,
one invariant used one function, so the invariant moved to the side that already had the
import, and nothing was copied. Then compare `test-report` against **master**, not against
"passes". The igla race specs are BLOCKED at a zig error on master, so the right claim is
"the same verdict as before", not "the tests pass".
7. Before you open a PR that adds a spec, run `python3 tools/dupe_scan.py` on the lab. The
issue gate auto-merges non-draft PRs even when a check is red: #10681 merged with a copy of
`lit_len` that was red on `duplicate-bodies` until #10688. Reuse the existing body through
`use`, and do not `--bless` a copy you made by accident.

## Application: topic map (gHashTag/trinity#1677)

Expand Down
14 changes: 7 additions & 7 deletions .trinity/seals/Backend.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"gen_hash_c": "sha256:d44b86294e7fdcaa56dd16e77fc9c93b2308b213b1cc8e8d8f286fe93fe00957",
"gen_hash_rust": "sha256:952baf28a474b4e42df46629709567c37218e33d007fc2045b6cec1cb76ee1c1",
"gen_hash_verilog": "sha256:f365308297d87d4fa7268b80ec6d90ad91a2ca026d8ea6cf56716a75efcc3277",
"gen_hash_zig": "sha256:496461fe415cd94c7ed5310d251ab365d672e82df9d846e403007a54070b8bf4",
"gen_hash_c": "sha256:09758685b2bb5056bed4d6ddcf3650937da8197d5211b1af67cd74dc38d2ed93",
"gen_hash_rust": "sha256:03e4c010869cf315d4d1fdcd66a665275b07e902538781065c525eef17a97c6e",
"gen_hash_verilog": "sha256:8c40cd7b61efc90888c309bb04c9800aba62e9f85683d8661aa7e4d6a058969d",
"gen_hash_zig": "sha256:cc538cb2b28c20c7e489224f4e69f3a2a78c1a2c0d5b8622ae283fa0c15d2bd1",
"module": "Backend",
"ring": 32,
"sealed_at": "2026-10-06T13:02:21Z",
"spec_hash": "sha256:5751bad1c46c48b87b6dd75917a6b559282eb747ef2417d16a5cd574b3eb4914",
"sealed_at": "2026-10-18T22:17:32Z",
"spec_hash": "sha256:ce708cb5e7af22cab685c6ae4d638e52cc35ad5a92c4e8bbda052bb17a106612",
"spec_path": "specs/igla/race/backend.t27",
"tests": {
"blocked": "does not compile: /tmp/t27c-test-report-backend-3532593/spec.zig:107:47: error: use of undeclared identifier 'char'"
"blocked": "does not compile: spec.zig:107:47: error: use of undeclared identifier 'char'"
}
}
14 changes: 7 additions & 7 deletions .trinity/seals/RTL.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"gen_hash_c": "sha256:8a2aadca693825d47758c21f6d7f7a9be6e48cd1435561ac92e82af4ec2d006c",
"gen_hash_rust": "sha256:e3d471097e8b6cdab57094b32e1d990b63efbdfa8b4ce28681e34573edff5d88",
"gen_hash_verilog": "sha256:d211220b876e0ff3a84b44de3a618dc7a8eeb8e5b6e7a54294fadf371e12af6d",
"gen_hash_zig": "sha256:44f7ec4c0e8c6ff6478343e4108f2ed1574a494d6e5ffb42c759a81c8e4ca6b7",
"gen_hash_c": "sha256:c565444cad1ee91d30602bad455e4c0ea7cf5af1bf6b04c3cb6b7e94b9f6a5ae",
"gen_hash_rust": "sha256:5ec5945bf1dbfa1eed9a5fffd9d209df88bdbcfd06d8cfae198cb44155379036",
"gen_hash_verilog": "sha256:3ab3ddc5f1d2b1c9677fa9db578fbbd2c07138110e66f8630aa9effe5104a785",
"gen_hash_zig": "sha256:efa8924165a1f1ca0c63936810ba4ae18b0627606abddf7232e4a7d9c4e04e40",
"module": "RTL",
"ring": 32,
"sealed_at": "2026-10-11T10:43:15Z",
"spec_hash": "sha256:d062a67d5cea57f6533fdc506780b589c98ff079f673b59676d7062dc3ae2b56",
"sealed_at": "2026-10-18T22:17:35Z",
"spec_hash": "sha256:78d32ad792d742086ec6ec1a4c33bc2abb864f7fe2c6044868ebb2c6aaf81ee3",
"spec_path": "specs/igla/race/rtl.t27",
"tests": {
"blocked": "does not compile: spec.zig:188:21: error: use of undeclared identifier 'opcode_name'"
"blocked": "does not compile: spec.zig:187:21: error: use of undeclared identifier 'opcode_name'"
}
}
33 changes: 25 additions & 8 deletions .trinity/seals/race_igla-race-backend.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,32 @@
{
"gen_hash_c": "sha256:d44b86294e7fdcaa56dd16e77fc9c93b2308b213b1cc8e8d8f286fe93fe00957",
"gen_hash_rust": "sha256:952baf28a474b4e42df46629709567c37218e33d007fc2045b6cec1cb76ee1c1",
"gen_hash_verilog": "sha256:f365308297d87d4fa7268b80ec6d90ad91a2ca026d8ea6cf56716a75efcc3277",
"gen_hash_zig": "sha256:496461fe415cd94c7ed5310d251ab365d672e82df9d846e403007a54070b8bf4",
"built_by": "t27c-bootstrap@0.5.2+9448ab4be",
"closure": [
{
"spec": "specs/base/types.t27",
"spec_hash": "sha256:3c2fb2a2edf20e90bc76798fb5d12690b2f60fc0f5bbf2f6052936e22d6e62e2"
},
{
"spec": "specs/igla/race/rtl.t27",
"spec_hash": "sha256:78d32ad792d742086ec6ec1a4c33bc2abb864f7fe2c6044868ebb2c6aaf81ee3"
}
],
"config": "gen=c,rust,verilog,zig;tests=zig",
"gen_hash_c": "sha256:09758685b2bb5056bed4d6ddcf3650937da8197d5211b1af67cd74dc38d2ed93",
"gen_hash_rust": "sha256:03e4c010869cf315d4d1fdcd66a665275b07e902538781065c525eef17a97c6e",
"gen_hash_verilog": "sha256:8c40cd7b61efc90888c309bb04c9800aba62e9f85683d8661aa7e4d6a058969d",
"gen_hash_zig": "sha256:cc538cb2b28c20c7e489224f4e69f3a2a78c1a2c0d5b8622ae283fa0c15d2bd1",
"module": "igla-race-backend",
"ring": 12,
"sealed_at": "2026-10-06T13:02:21Z",
"sealed_by": "t27c-bootstrap@0.4.0",
"spec_hash": "sha256:5751bad1c46c48b87b6dd75917a6b559282eb747ef2417d16a5cd574b3eb4914",
"seal_schema": 2,
"sealed_at": "2026-10-18T22:17:32Z",
"sealed_by": "t27c-bootstrap@0.5.2",
"spec_hash": "sha256:ce708cb5e7af22cab685c6ae4d638e52cc35ad5a92c4e8bbda052bb17a106612",
"spec_path": "specs/igla/race/backend.t27",
"tests": {
"blocked": "does not compile: /tmp/t27c-test-report-backend-3532593/spec.zig:107:47: error: use of undeclared identifier 'char'"
"blocked": "does not compile: spec.zig:107:47: error: use of undeclared identifier 'char'"
},
"toolchain": {
"test_runner": "sha256:8512b80da533b79289110fca4a65f3336abd7a059ca4b72ea595d5e33ff8ad10",
"zig": "0.16.0"
}
}
23 changes: 20 additions & 3 deletions .trinity/seals/race_igla-race-eda.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,32 @@
{
"built_by": "t27c-bootstrap@0.5.2+9448ab4be",
"closure": [
{
"spec": "specs/base/types.t27",
"spec_hash": "sha256:3c2fb2a2edf20e90bc76798fb5d12690b2f60fc0f5bbf2f6052936e22d6e62e2"
},
{
"spec": "specs/igla/race/rtl.t27",
"spec_hash": "sha256:78d32ad792d742086ec6ec1a4c33bc2abb864f7fe2c6044868ebb2c6aaf81ee3"
}
],
"config": "gen=c,rust,verilog,zig;tests=zig",
"gen_hash_c": "sha256:354b227a1b2afa6eafd1796476f021b94ed931ff509686b45b7b0fbaa0518ab2",
"gen_hash_rust": "sha256:842b705e528cbd884afda84dac14a8dea9bd48ec8db503ba5532ac9507f559b3",
"gen_hash_verilog": "sha256:067413bf2da4752214c260dd88f7bb1421280afc2a936b6e5fd8c0c870294c6b",
"gen_hash_zig": "sha256:2ac1f6921da1b2313551f168791c707568aa8a1ba3038057280b53838bad2590",
"module": "igla-race-eda",
"ring": 12,
"sealed_at": "2026-10-06T13:02:22Z",
"sealed_by": "t27c-bootstrap@0.4.0",
"seal_schema": 2,
"sealed_at": "2026-10-18T22:17:37Z",
"sealed_by": "t27c-bootstrap@0.5.2",
"spec_hash": "sha256:d690f4e6293ffb745638b1a134bfddb550b6a4dd96f358abebb240e8c5190f27",
"spec_path": "specs/igla/race/eda.t27",
"tests": {
"blocked": "does not compile: /tmp/t27c-test-report-eda-3532650/spec.zig:381:5: error: use of undeclared identifier 'latency_ms'"
"blocked": "does not compile: spec.zig:381:5: error: use of undeclared identifier 'latency_ms'"
},
"toolchain": {
"test_runner": "sha256:8512b80da533b79289110fca4a65f3336abd7a059ca4b72ea595d5e33ff8ad10",
"zig": "0.16.0"
}
}
22 changes: 9 additions & 13 deletions .trinity/seals/race_igla-race-rtl.json
Original file line number Diff line number Diff line change
@@ -1,36 +1,32 @@
{
"built_by": "t27c-bootstrap@0.5.2+cc19d1fcd",
"built_by": "t27c-bootstrap@0.5.2+9448ab4be",
"closure": [
{
"spec": "specs/base/types.t27",
"spec_hash": "sha256:3c2fb2a2edf20e90bc76798fb5d12690b2f60fc0f5bbf2f6052936e22d6e62e2"
},
{
"spec": "specs/igla/race/backend.t27",
"spec_hash": "sha256:5751bad1c46c48b87b6dd75917a6b559282eb747ef2417d16a5cd574b3eb4914"
},
{
"spec": "specs/math/constants.t27",
"spec_hash": "sha256:57187e7afda1d88167b2af0382ad7f0623aa6b269ba020a78e3ffeebba1161bb"
}
],
"config": "gen=c,rust,verilog,zig;tests=zig",
"gen_hash_c": "sha256:8a2aadca693825d47758c21f6d7f7a9be6e48cd1435561ac92e82af4ec2d006c",
"gen_hash_rust": "sha256:e3d471097e8b6cdab57094b32e1d990b63efbdfa8b4ce28681e34573edff5d88",
"gen_hash_verilog": "sha256:d211220b876e0ff3a84b44de3a618dc7a8eeb8e5b6e7a54294fadf371e12af6d",
"gen_hash_zig": "sha256:44f7ec4c0e8c6ff6478343e4108f2ed1574a494d6e5ffb42c759a81c8e4ca6b7",
"gen_hash_c": "sha256:c565444cad1ee91d30602bad455e4c0ea7cf5af1bf6b04c3cb6b7e94b9f6a5ae",
"gen_hash_rust": "sha256:5ec5945bf1dbfa1eed9a5fffd9d209df88bdbcfd06d8cfae198cb44155379036",
"gen_hash_verilog": "sha256:3ab3ddc5f1d2b1c9677fa9db578fbbd2c07138110e66f8630aa9effe5104a785",
"gen_hash_zig": "sha256:efa8924165a1f1ca0c63936810ba4ae18b0627606abddf7232e4a7d9c4e04e40",
"module": "igla-race-rtl",
"ring": 12,
"seal_schema": 2,
"sealed_at": "2026-10-11T10:43:15Z",
"sealed_at": "2026-10-18T22:17:35Z",
"sealed_by": "t27c-bootstrap@0.5.2",
"spec_hash": "sha256:d062a67d5cea57f6533fdc506780b589c98ff079f673b59676d7062dc3ae2b56",
"spec_hash": "sha256:78d32ad792d742086ec6ec1a4c33bc2abb864f7fe2c6044868ebb2c6aaf81ee3",
"spec_path": "specs/igla/race/rtl.t27",
"tests": {
"blocked": "does not compile: spec.zig:188:21: error: use of undeclared identifier 'opcode_name'"
"blocked": "does not compile: spec.zig:187:21: error: use of undeclared identifier 'opcode_name'"
},
"toolchain": {
"test_runner": "sha256:1982ae948e24d00c5d221ccec12dfce1eb01204b53e37b0f857f93b16d64629d",
"test_runner": "sha256:8512b80da533b79289110fca4a65f3336abd7a059ca4b72ea595d5e33ff8ad10",
"zig": "0.16.0"
}
}
8 changes: 4 additions & 4 deletions .trinity/seals/race_igla-race-yosys.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"built_by": "t27c-bootstrap@0.5.2+cc19d1fcd",
"built_by": "t27c-bootstrap@0.5.2+9448ab4be",
"closure": [
{
"spec": "specs/base/types.t27",
Expand All @@ -11,7 +11,7 @@
},
{
"spec": "specs/igla/race/rtl.t27",
"spec_hash": "sha256:d062a67d5cea57f6533fdc506780b589c98ff079f673b59676d7062dc3ae2b56"
"spec_hash": "sha256:78d32ad792d742086ec6ec1a4c33bc2abb864f7fe2c6044868ebb2c6aaf81ee3"
}
],
"config": "gen=c,rust,verilog,zig;tests=zig",
Expand All @@ -22,15 +22,15 @@
"module": "igla-race-yosys",
"ring": 12,
"seal_schema": 2,
"sealed_at": "2026-10-11T10:43:16Z",
"sealed_at": "2026-10-18T22:17:36Z",
"sealed_by": "t27c-bootstrap@0.5.2",
"spec_hash": "sha256:1c2c4ed75fb636b5111a9da51fa55a1fa03fc689daab0159c3d2dfce66984c99",
"spec_path": "specs/igla/race/yosys.t27",
"tests": {
"blocked": "does not compile: spec.zig:241:11: error: use of undeclared identifier 'eval'"
},
"toolchain": {
"test_runner": "sha256:1982ae948e24d00c5d221ccec12dfce1eb01204b53e37b0f857f93b16d64629d",
"test_runner": "sha256:8512b80da533b79289110fca4a65f3336abd7a059ca4b72ea595d5e33ff8ad10",
"zig": "0.16.0"
}
}
7 changes: 7 additions & 0 deletions specs/igla/race/backend.t27
Original file line number Diff line number Diff line change
Expand Up @@ -2550,3 +2550,10 @@ test igla_race_backend_w392_batch_depth_invariant_2 {
}

invariant igla_race_backend_w392_depth: true

// Moved here from rtl.t27, which imported this spec only for contains_multiply in this invariant.
// rtl.t27 no longer imports backend, so the backend <-> rtl import cycle is gone (#10682).
invariant rtl_count_mul_ops_comment_ignored_inv:
forall s : string
contains_multiply(s) == false ==>
count_mul_ops(s) == 0
6 changes: 0 additions & 6 deletions specs/igla/race/rtl.t27
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
module igla-race-rtl;
use base::types;
use math::constants;
use igla::race::backend;

// ============================================================================
// 1. RTL Generation Constants
Expand Down Expand Up @@ -1008,11 +1007,6 @@ test rtl_count_mul_ops_comment_ignored
when n = count_mul_ops(expr)
then n == 0

invariant rtl_count_mul_ops_comment_ignored_inv:
forall s : string
contains_multiply(s) == false ==>
count_mul_ops(s) == 0

test rtl_emit_vhdl_empty_module_has_entity
given m = RtlModule { name: "test", inputs: []Signal{}, outputs: []Signal{}, wires: []Signal{}, assigns: []Assignment{}, instances: []Instance{}, sacred_chain: []u8{} }
when v = emit_vhdl(m)
Expand Down
Loading