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
4 changes: 2 additions & 2 deletions .trinity/seals/GF16.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"conformance_hash": null,
"gen_hash_c": "sha256:55d2b44f985fbd1be8ec09860670dac3cdd063a1820f051bfbc3bb06f22c0e74",
"gen_hash_c": "sha256:54ee54e614f675e28b0f377dfac3bc7c43d4cb721b1f5f5ed19da303d4e6b546",
"gen_hash_rust": "sha256:1cf53ef31359cc59054b4d9901fb855b6803d61129e35f021f6411d320817f92",
"gen_hash_verilog": "sha256:b375909814c58781db08e9113bf93da4b331d45e8955f04af92309e134436b64",
"gen_hash_zig": "sha256:fa7ce3a6674834a2e6c9a6c86297b05393a66eed9c4709b0252f0daffa43bf53",
"module": "GF16",
"ring": 26,
"sealed_at": "2026-09-08T01:03:29Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:1b204a1ef4013b32da4d2c0053a89ef417770d751fb61d89e391517e4fff9974",
"spec_path": "specs/numeric/gf16.t27",
"tests": {
Expand Down
4 changes: 2 additions & 2 deletions .trinity/seals/HSLM.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:700c64e5be00db51ac30b9da47466b94a31dc394f14918954a94df1ed91be8f6",
"gen_hash_c": "sha256:0273f119a74cb3b77d972925aa64e6340a2f84f6b1605b13bd9ab8cba31b3782",
"gen_hash_rust": "sha256:77c0564db10be29afcc6dda0eab695afdb56acf295b08700ee82bbf58b457772",
"gen_hash_verilog": "sha256:f8a956019cea253548cd3f3eee38d2405cea113b8ee5e66e3d387be41810c697",
"gen_hash_zig": "sha256:51d88b507c315ec746ec177be352377540d8989ae03666f57d9db787201c57b9",
"module": "HSLM",
"ring": 12,
"sealed_at": "2026-09-08T01:34:16Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:8ea0766984db7775c474eab25dfb14965fa835ce0a56b33173df319fad342182",
"spec_path": "specs/nn/hslm.t27"
}
6 changes: 3 additions & 3 deletions .trinity/seals/PropertyTestTemplate.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:d530fca4a0eb3f9abeba48d030aae73ee647956eabede18d744ef1eaef0de4f9",
"gen_hash_c": "sha256:884ce0da6d12cb6805e570f1a99dbeeffada5f92ace29e969646e38bf97fa25f",
"gen_hash_rust": "sha256:33aaed851aeafeb8f31da838c2e072debd64328d1c465ac7c0ec62e459632174",
"gen_hash_verilog": "sha256:d0d9df245c4a74c12cdb34fc00370554fe93cc899817b67eebfb8fdc4f3c86a3",
"gen_hash_zig": "sha256:8d4f14e78a932b8b762312d2c683ae7fade682f7b9e08b6cbdc12e33d7789ba8",
"module": "PropertyTestTemplate",
"ring": 12,
"sealed_at": "2026-08-28T21:20:51Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:2dae7f68a5651636623154005f92a6e43432b46d72b3bdd45c164df2a38b961c",
"spec_path": "specs/math/property_test_template.t27"
}
}
4 changes: 2 additions & 2 deletions .trinity/seals/cli_gen_commands.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:dd4db6dff0df04da9fbb36636078a2fc5083b33f34c6e1f1a7ec14fb574b8c41",
"gen_hash_c": "sha256:5f95b4c07011f9ca9ea2707084160966f10f52a3d645f83cc3cffb36f3245165",
"gen_hash_rust": "sha256:4d096f082adf390017c25b642874563896b645747042e098301d213212539f58",
"gen_hash_verilog": "sha256:9438160852d64b29290d043b8901105bae4848dd9275bd4e34f558e06d70c985",
"gen_hash_zig": "sha256:7b6328077fae13ac3d8cdd17bc883c31b8e9ba99cd56daf86957f330338db7f2",
"module": "gen_commands",
"ring": 12,
"sealed_at": "2026-09-07T21:07:03Z",
"sealed_at": "2026-09-08T02:02:02Z",
"sealed_by": "t27c-bootstrap@0.2.0",
"spec_hash": "sha256:4dd1bf05316f1a0ed952457e8fbbe7e03c51d51b2891c1dfe603db0425b4f2a3",
"spec_path": "compiler/cli/gen.t27"
Expand Down
6 changes: 3 additions & 3 deletions .trinity/seals/gen_commands.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:dd4db6dff0df04da9fbb36636078a2fc5083b33f34c6e1f1a7ec14fb574b8c41",
"gen_hash_c": "sha256:5f95b4c07011f9ca9ea2707084160966f10f52a3d645f83cc3cffb36f3245165",
"gen_hash_rust": "sha256:4d096f082adf390017c25b642874563896b645747042e098301d213212539f58",
"gen_hash_verilog": "sha256:9438160852d64b29290d043b8901105bae4848dd9275bd4e34f558e06d70c985",
"gen_hash_zig": "sha256:7b6328077fae13ac3d8cdd17bc883c31b8e9ba99cd56daf86957f330338db7f2",
"module": "gen_commands",
"ring": 12,
"sealed_at": "2026-08-28T20:32:32Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:4dd1bf05316f1a0ed952457e8fbbe7e03c51d51b2891c1dfe603db0425b4f2a3",
"spec_path": "compiler/cli/gen.t27"
}
}
4 changes: 2 additions & 2 deletions .trinity/seals/math_PropertyTestTemplate.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:d530fca4a0eb3f9abeba48d030aae73ee647956eabede18d744ef1eaef0de4f9",
"gen_hash_c": "sha256:884ce0da6d12cb6805e570f1a99dbeeffada5f92ace29e969646e38bf97fa25f",
"gen_hash_rust": "sha256:33aaed851aeafeb8f31da838c2e072debd64328d1c465ac7c0ec62e459632174",
"gen_hash_verilog": "sha256:d0d9df245c4a74c12cdb34fc00370554fe93cc899817b67eebfb8fdc4f3c86a3",
"gen_hash_zig": "sha256:8d4f14e78a932b8b762312d2c683ae7fade682f7b9e08b6cbdc12e33d7789ba8",
"module": "PropertyTestTemplate",
"ring": 12,
"sealed_at": "2026-09-05T10:40:48Z",
"sealed_at": "2026-09-08T02:02:02Z",
"sealed_by": "t27c-bootstrap@0.2.0",
"spec_hash": "sha256:2dae7f68a5651636623154005f92a6e43432b46d72b3bdd45c164df2a38b961c",
"spec_path": "specs/math/property_test_template.t27"
Expand Down
4 changes: 2 additions & 2 deletions .trinity/seals/nn_HSLM.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:700c64e5be00db51ac30b9da47466b94a31dc394f14918954a94df1ed91be8f6",
"gen_hash_c": "sha256:0273f119a74cb3b77d972925aa64e6340a2f84f6b1605b13bd9ab8cba31b3782",
"gen_hash_rust": "sha256:77c0564db10be29afcc6dda0eab695afdb56acf295b08700ee82bbf58b457772",
"gen_hash_verilog": "sha256:f8a956019cea253548cd3f3eee38d2405cea113b8ee5e66e3d387be41810c697",
"gen_hash_zig": "sha256:51d88b507c315ec746ec177be352377540d8989ae03666f57d9db787201c57b9",
"module": "HSLM",
"ring": 12,
"sealed_at": "2026-09-08T01:34:16Z",
"sealed_at": "2026-09-08T02:02:02Z",
"sealed_by": "t27c-bootstrap@0.2.0",
"spec_hash": "sha256:8ea0766984db7775c474eab25dfb14965fa835ce0a56b33173df319fad342182",
"spec_path": "specs/nn/hslm.t27"
Expand Down
4 changes: 2 additions & 2 deletions .trinity/seals/numeric_triformat-gf16.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:55d2b44f985fbd1be8ec09860670dac3cdd063a1820f051bfbc3bb06f22c0e74",
"gen_hash_c": "sha256:54ee54e614f675e28b0f377dfac3bc7c43d4cb721b1f5f5ed19da303d4e6b546",
"gen_hash_rust": "sha256:1cf53ef31359cc59054b4d9901fb855b6803d61129e35f021f6411d320817f92",
"gen_hash_verilog": "sha256:b375909814c58781db08e9113bf93da4b331d45e8955f04af92309e134436b64",
"gen_hash_zig": "sha256:fa7ce3a6674834a2e6c9a6c86297b05393a66eed9c4709b0252f0daffa43bf53",
"module": "triformat-gf16",
"ring": 12,
"sealed_at": "2026-09-08T01:03:29Z",
"sealed_at": "2026-09-08T02:02:02Z",
"sealed_by": "t27c-bootstrap@0.2.0",
"spec_hash": "sha256:1b204a1ef4013b32da4d2c0053a89ef417770d751fb61d89e391517e4fff9974",
"spec_path": "specs/numeric/gf16.t27"
Expand Down
6 changes: 3 additions & 3 deletions .trinity/seals/property_test_template.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:d530fca4a0eb3f9abeba48d030aae73ee647956eabede18d744ef1eaef0de4f9",
"gen_hash_c": "sha256:884ce0da6d12cb6805e570f1a99dbeeffada5f92ace29e969646e38bf97fa25f",
"gen_hash_rust": "sha256:33aaed851aeafeb8f31da838c2e072debd64328d1c465ac7c0ec62e459632174",
"gen_hash_verilog": "sha256:d0d9df245c4a74c12cdb34fc00370554fe93cc899817b67eebfb8fdc4f3c86a3",
"gen_hash_zig": "sha256:8d4f14e78a932b8b762312d2c683ae7fade682f7b9e08b6cbdc12e33d7789ba8",
"module": "property_test_template",
"ring": 12,
"sealed_at": "2026-08-28T21:20:51Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:2dae7f68a5651636623154005f92a6e43432b46d72b3bdd45c164df2a38b961c",
"spec_path": "specs/math/property_test_template.t27"
}
}
4 changes: 2 additions & 2 deletions .trinity/seals/triformat-gf16.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:55d2b44f985fbd1be8ec09860670dac3cdd063a1820f051bfbc3bb06f22c0e74",
"gen_hash_c": "sha256:54ee54e614f675e28b0f377dfac3bc7c43d4cb721b1f5f5ed19da303d4e6b546",
"gen_hash_rust": "sha256:1cf53ef31359cc59054b4d9901fb855b6803d61129e35f021f6411d320817f92",
"gen_hash_verilog": "sha256:b375909814c58781db08e9113bf93da4b331d45e8955f04af92309e134436b64",
"gen_hash_zig": "sha256:fa7ce3a6674834a2e6c9a6c86297b05393a66eed9c4709b0252f0daffa43bf53",
"module": "triformat-gf16",
"ring": 12,
"sealed_at": "2026-09-08T01:03:29Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:1b204a1ef4013b32da4d2c0053a89ef417770d751fb61d89e391517e4fff9974",
"spec_path": "specs/numeric/gf16.t27"
}
4 changes: 2 additions & 2 deletions .trinity/seals/verilog_codegen.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:bf1aa7bf56c4135885e1c34df0496f040b85354d3203c0c6fa037092530851e2",
"gen_hash_c": "sha256:9bdf9414115dc5e8fd0cb611c2ca21db13acbf41170e6f61e5f34381afa428cd",
"gen_hash_rust": "sha256:493dfdbbe8fb6c20833938752f1d38e6269276295091fa4cdfc1081b179690e5",
"gen_hash_verilog": "sha256:6f8f90892c3ec1ff69ee038babea3258d40eb05f102c10ef280a70e37aa29199",
"gen_hash_zig": "sha256:3ca02254ff52c1f2af6b72737baa0668ac3b0b9ba09e423b3ede762d77006153",
"module": "verilog_codegen",
"ring": 12,
"sealed_at": "2026-09-07T22:05:57Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:7454245beb5d71c1fff9e450cc1f8a5883c47243aaaac38bac1c7a894287e8db",
"spec_path": "compiler/codegen/verilog/codegen.t27"
}
4 changes: 2 additions & 2 deletions .trinity/seals/verilog_verilog_codegen.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:bf1aa7bf56c4135885e1c34df0496f040b85354d3203c0c6fa037092530851e2",
"gen_hash_c": "sha256:9bdf9414115dc5e8fd0cb611c2ca21db13acbf41170e6f61e5f34381afa428cd",
"gen_hash_rust": "sha256:493dfdbbe8fb6c20833938752f1d38e6269276295091fa4cdfc1081b179690e5",
"gen_hash_verilog": "sha256:6f8f90892c3ec1ff69ee038babea3258d40eb05f102c10ef280a70e37aa29199",
"gen_hash_zig": "sha256:3ca02254ff52c1f2af6b72737baa0668ac3b0b9ba09e423b3ede762d77006153",
"module": "verilog_codegen",
"ring": 12,
"sealed_at": "2026-09-07T22:05:57Z",
"sealed_at": "2026-09-08T02:02:02Z",
"sealed_by": "t27c-bootstrap@0.2.0",
"spec_hash": "sha256:7454245beb5d71c1fff9e450cc1f8a5883c47243aaaac38bac1c7a894287e8db",
"spec_path": "compiler/codegen/verilog/codegen.t27"
Expand Down
6 changes: 3 additions & 3 deletions .trinity/seals/zig_codegen.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:be1cb9a8eb5bb8c80f63aa8db98b7ed69273a0c4e3e09a62d0fc7efec4bd11b5",
"gen_hash_c": "sha256:b0c5a061c88d43df6dca22b0fd0033b58680ebeed138925f7c7158e0f393a341",
"gen_hash_rust": "sha256:2d422d58b346eb22364a64839b0c48fdef43c9f1a57abd9931e324fe06efdfc2",
"gen_hash_verilog": "sha256:281e5bf4b4bf860712ca54c2b0d173ba6ee0fc6f96043e8c243e9f3e1291a8f1",
"gen_hash_zig": "sha256:e0de552c5b497d45d640bb9ac9664b1ba515a9d44a2bb280921ffdab5b9fd0f6",
"module": "zig_codegen",
"ring": 12,
"sealed_at": "2026-08-28T20:32:32Z",
"sealed_at": "2026-09-08T02:02:02Z",
"spec_hash": "sha256:face91b2c4dda278c97006286cdbd18e00e2a2d01e9288eeb0d6520aa47f7fce",
"spec_path": "compiler/codegen/zig/codegen.t27"
}
}
4 changes: 2 additions & 2 deletions .trinity/seals/zig_zig_codegen.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"gen_hash_c": "sha256:be1cb9a8eb5bb8c80f63aa8db98b7ed69273a0c4e3e09a62d0fc7efec4bd11b5",
"gen_hash_c": "sha256:b0c5a061c88d43df6dca22b0fd0033b58680ebeed138925f7c7158e0f393a341",
"gen_hash_rust": "sha256:2d422d58b346eb22364a64839b0c48fdef43c9f1a57abd9931e324fe06efdfc2",
"gen_hash_verilog": "sha256:281e5bf4b4bf860712ca54c2b0d173ba6ee0fc6f96043e8c243e9f3e1291a8f1",
"gen_hash_zig": "sha256:e0de552c5b497d45d640bb9ac9664b1ba515a9d44a2bb280921ffdab5b9fd0f6",
"module": "zig_codegen",
"ring": 12,
"sealed_at": "2026-09-06T07:17:01Z",
"sealed_at": "2026-09-08T02:02:02Z",
"sealed_by": "t27c-bootstrap@0.2.0",
"spec_hash": "sha256:face91b2c4dda278c97006286cdbd18e00e2a2d01e9288eeb0d6520aa47f7fce",
"spec_path": "compiler/codegen/zig/codegen.t27"
Expand Down
49 changes: 44 additions & 5 deletions bootstrap/src/compiler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19810,12 +19810,51 @@ impl CCodegen {
if let Some(bracket_end) = raw_type.find(']') {
let size = &raw_type[1..bracket_end];
let elem = &raw_type[bracket_end + 1..];
let c_elem = if Self::is_primitive(elem) {
Self::type_to_c(elem).to_string()
} else {
elem.to_string()
// W583, again and in the other position. That note is
// 200 lines below, on `param_type_to_c`: the gate used
// to be `is_primitive`, "which lists only the integer
// scalars -- so `f32`, `f64`, `str`, `string` and
// `gf16` took the pass-through arm and reached C
// unmapped even after `type_to_c` learned them." The
// repair did not travel here, so a LOCAL array kept the
// pass-through and C received
//
// GF16 x[4]; error: use of undeclared identifier 'GF16'
//
// while the same element is `uint16_t` in both a
// parameter (`uint16_t a[static 4]`) and a struct field
// (`uint16_t f[4];`). `type_to_c` passes a genuinely
// custom type through unchanged, so the gate only ever
// suppressed correct mappings -- the same sentence that
// retired it downstairs.
// `[]const u8` carries the qualifier INSIDE the
// element, so the element text is the literal
// "const u8" and C received `const u8* x` --
// "unknown type name 'u8'". `param_type_to_c` strips
// it for a slice parameter; the same strip is needed
// here.
let elem = elem.trim();
let (qual, elem) = match elem.strip_prefix("const ") {
Some(rest) => ("const ", rest.trim()),
None => ("", elem),
};
self.write(&format!("{} {}[{}]", c_elem, node.name, size));
let c_elem = format!("{}{}", qual, Self::type_to_c(elem));
if size.is_empty() && node.children.is_empty() {
// A slice `[]T` has no compile-time length, and
// `uint8_t x[];` is not a definition -- clang says
// "definition of variable with array type needs an
// explicit size or an initializer".
//
// ONLY when there is no initialiser. `T x[] = {…}`
// is legal C and takes its size from the list, and
// rewriting that to `T* x = {…}` made the one
// corpus file carrying the shape WORSE -- measured,
// +5 errors and nothing better, which is how this
// condition got here.
self.write(&format!("{}* {}", c_elem, node.name));
} else {
self.write(&format!("{} {}[{}]", c_elem, node.name, size));
}
} else {
self.write(&format!("int {}", node.name));
}
Expand Down
2 changes: 1 addition & 1 deletion bootstrap/stage0/FROZEN_HASH
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7ca9bc868124840670ac04c1173056ef70c5a6f4850fae5c533039c31534e974 bootstrap/src/compiler.rs
911a664330ef073a4a89924d1d8c2838f400ce978c735258c3a1dfbb91b1fede bootstrap/src/compiler.rs
Loading
Loading