diff --git a/.trinity/seals/AdamW.json b/.trinity/seals/AdamW.json index ad28e3094..6253f2280 100644 --- a/.trinity/seals/AdamW.json +++ b/.trinity/seals/AdamW.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:fc6d86aa2ccabe51ad5b4b41f7dced697a747d5bc0b6568f8170a1473e67b38e", + "gen_hash_c": "sha256:c79fd12f5b95994db62f3e42e7d8f898c4793f2cb5172f9ab2e4471893c57d5e", "gen_hash_rust": "sha256:20969877473efdd38111fb8dba59cd02c5f11dfcdec7bccca52357d51e6474f5", "gen_hash_verilog": "sha256:b4c627e61a5f93624f5901ceb1386f761e68bb8ad1756fd90be8c727871f667c", "gen_hash_zig": "sha256:eaaca634bf317cb126fa1f126fa9c5171c9951cb2831d4a8a0cde5496c7c1a41", "module": "AdamW", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:a5dbcb7030b094474aaaa271acb30a8e360843416a8ce98070bfee8cc66ae80b", "spec_path": "specs/ml/optimizer/adamw.t27" } \ No newline at end of file diff --git a/.trinity/seals/HSLM.json b/.trinity/seals/HSLM.json index 46cf76e01..2b5f880c1 100644 --- a/.trinity/seals/HSLM.json +++ b/.trinity/seals/HSLM.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:0273f119a74cb3b77d972925aa64e6340a2f84f6b1605b13bd9ab8cba31b3782", + "gen_hash_c": "sha256:94ec1ab2d1eb93f81ca0f8a16625af4197bf13271ec9f104e766bc8db94b50ee", "gen_hash_rust": "sha256:77c0564db10be29afcc6dda0eab695afdb56acf295b08700ee82bbf58b457772", "gen_hash_verilog": "sha256:f8a956019cea253548cd3f3eee38d2405cea113b8ee5e66e3d387be41810c697", "gen_hash_zig": "sha256:51d88b507c315ec746ec177be352377540d8989ae03666f57d9db787201c57b9", "module": "HSLM", "ring": 12, - "sealed_at": "2026-09-08T02:02:02Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:8ea0766984db7775c474eab25dfb14965fa835ce0a56b33173df319fad342182", "spec_path": "specs/nn/hslm.t27" } \ No newline at end of file diff --git a/.trinity/seals/MHABlock.json b/.trinity/seals/MHABlock.json index 7da68298d..9eb52445c 100644 --- a/.trinity/seals/MHABlock.json +++ b/.trinity/seals/MHABlock.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:c15c9df572b3c9f2ed1ae50c5e0e7e9fabaabacc0601a3f622458e6c5cd253e0", + "gen_hash_c": "sha256:cd6fac94540b21220dab8d9e546424b8ea108b85af42b22cb70a088bef2fe47d", "gen_hash_rust": "sha256:abf31ba7aca1f23691667bb4a95c68d2c33d2b54e56a683f80919390dc57523b", "gen_hash_verilog": "sha256:5e40302bc932bf1958aaf468de44545d3105d8922178eabdb85efc4009dea22d", "gen_hash_zig": "sha256:385ab9c0d68a4a70d9a633ba587ed4f11b71bc8ebd08f97310d8eb49b47179e5", "module": "MHABlock", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:45fd78626ad9ca71910d750669bd10a6f519d3eef067f24338c8b30e2681d067", "spec_path": "specs/ml/transformer/mha_block.t27" } \ No newline at end of file diff --git a/.trinity/seals/PhiUniversalAttractor.json b/.trinity/seals/PhiUniversalAttractor.json index d0ccb3e43..de892eb64 100644 --- a/.trinity/seals/PhiUniversalAttractor.json +++ b/.trinity/seals/PhiUniversalAttractor.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:f87af83c0ff6c847d32612b230569d4c0035683bb05e56f51a180d2f11570eed", + "gen_hash_c": "sha256:57b80ac2b407ab14d7b880eb3b2fe16408b567e1d72273bec09315900067c336", "gen_hash_rust": "sha256:5476481bd0fc33ccfcc057fa54361627381fcd7a1f00850c8f5383c551472338", "gen_hash_verilog": "sha256:57cc672e29d6b8b23a4b66343155520fe6d890ffb46c38ec621e66ca6d857a5b", "gen_hash_zig": "sha256:dbba7f928af7d8a9672028e095e782314e7bccd0a5cee09290c602384d3ee036", "module": "PhiUniversalAttractor", "ring": 12, - "sealed_at": "2026-08-28T18:19:55Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:3a5a1d0bf24c0a354559c859ce379e3fa65b8aad313da8627e341daa273d4adf", "spec_path": "specs/math/phi_universal_attractor.t27" -} +} \ No newline at end of file diff --git a/.trinity/seals/PositionalEncoding.json b/.trinity/seals/PositionalEncoding.json index 7a9719fac..5de81d1fb 100644 --- a/.trinity/seals/PositionalEncoding.json +++ b/.trinity/seals/PositionalEncoding.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:49ad2ff6a4d34f6d4f17e93623d9c086d46c67ccdd8610a0afd67e4d8ae8502a", + "gen_hash_c": "sha256:eaaa7e5b78280b7ba9662d666ffa9de3429dd78cbae703d11c41b2cc7ade7d81", "gen_hash_rust": "sha256:124b14e78bcbbd07e38a30bb0c428892871feb95945f330bae1ab9f4dd31ba9b", "gen_hash_verilog": "sha256:633093105b3880a9365a9de6d25007e45fcc018412f39492e6575f5c581014cf", "gen_hash_zig": "sha256:e0595ec599aa750f6c1ef97d8031bc1365383141df876731b8a3dc25ddf72244", "module": "PositionalEncoding", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:22b7fd16cc3e23432ab550205a19de7e72f9f80efb73a000a1c9ce56b3c136b6", "spec_path": "specs/ml/transformer/positional_enc.t27" } \ No newline at end of file diff --git a/.trinity/seals/RTL.json b/.trinity/seals/RTL.json index 69173db32..c6293908c 100644 --- a/.trinity/seals/RTL.json +++ b/.trinity/seals/RTL.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:7dc7e4bdb04ae4bb06fda2f90eca3b4905ae2d02f8c80452b67594a0da600e17", + "gen_hash_c": "sha256:fea3f17445eca057c936c73c6c4991956302f38a53472351ec39d5d0b8ca2af4", "gen_hash_rust": "sha256:14e1c5cb3348b9e90558bce97218b8c5564af998d487148f0bebbc7366a86727", "gen_hash_verilog": "sha256:7247ec4c47b23b1e60b82ed743d2c03150a6ffc13d341b3c81fd25bc187cbc3e", "gen_hash_zig": "sha256:37b548cd1674b1938348d414f1858c5ff0615c8dc5d1c2ab751781293e2838be", "module": "RTL", "ring": 32, - "sealed_at": "2026-08-28T18:19:55Z", + "sealed_at": "2026-09-08T04:10:24Z", "spec_hash": "sha256:3ff776981a381a17cdd0b9ca87aecf18dbe50589013cf2291443ece1a597034d", "spec_path": "specs/igla/race/rtl.t27" -} +} \ No newline at end of file diff --git a/.trinity/seals/SacredAttention.json b/.trinity/seals/SacredAttention.json index 2a9921d57..51c48e5ea 100644 --- a/.trinity/seals/SacredAttention.json +++ b/.trinity/seals/SacredAttention.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:a82a6b2b5da331b625e8b81a335d1cc7741fb56d3a3b1c8bf58eab2d65e2ad08", + "gen_hash_c": "sha256:503a1168ff7d287b208e19b589abbf4b94bc0631262f3e8fe0d6a960886c192a", "gen_hash_rust": "sha256:0a4064c4d5ae45dda501198128042849e7b9f0b1b598012ddf8ff34367df1b72", "gen_hash_verilog": "sha256:495b48a5c98b7c1fccab460f017fcc48da428a1789ba23eaa7691edc1d0d9e13", "gen_hash_zig": "sha256:187bc0b9346fcc3d35ae53a9bad1be0fab2cfe59ddedbf8f61fe4a2856f4cd36", "module": "SacredAttention", "ring": 12, - "sealed_at": "2026-09-08T01:34:16Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:be83d2a916a15957502d6afa4d6eff7ab07d0373e81555704ee842500db47187", "spec_path": "specs/nn/attention.t27" } \ No newline at end of file diff --git a/.trinity/seals/SacredVerification.json b/.trinity/seals/SacredVerification.json index 713f15997..bc7a973d9 100644 --- a/.trinity/seals/SacredVerification.json +++ b/.trinity/seals/SacredVerification.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:1dd3cd09cc16a6c8d64c93958fc7de9c418c2ae95285ec14e1912bfcc49603eb", + "gen_hash_c": "sha256:dac00ae376d62c784eb8c613d1dfcffefc210ec1fdf451577aa3e2e8564aea17", "gen_hash_rust": "sha256:cd01259b3081abf9024cf3f53b4690090c96446db7f3108c95026daf0a7424d8", "gen_hash_verilog": "sha256:1817097113f09289d7a347bb8b743faa39a9c6b82ab0c158a2058b0ac03e82ec", "gen_hash_zig": "sha256:e366439ab8d4fe966acf421937ab0091f28785ea3406b523dc3a56976e54c79c", "module": "SacredVerification", "ring": 12, - "sealed_at": "2026-09-08T01:34:16Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:fe6ff2cc8fb17534f6cbd181a4af31750729533339cbf99889aff1a06bd09151", "spec_path": "specs/physics/sacred_verification.t27" } \ No newline at end of file diff --git a/.trinity/seals/SgdMomentum.json b/.trinity/seals/SgdMomentum.json index 07e6a94b0..c4b6622e9 100644 --- a/.trinity/seals/SgdMomentum.json +++ b/.trinity/seals/SgdMomentum.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:8a75d10a5ab331591d17e069a6ce9b846a704f84ad7170f46b22cb9efb287395", + "gen_hash_c": "sha256:8ece0ef5238850fe98eb78d7e73090be3cfb2a6a194fa51eac8635f61b34d339", "gen_hash_rust": "sha256:83d3c0a55ad8cb46923796f0b9441f467b8fe2bda86181873b0b722daa0ae78a", "gen_hash_verilog": "sha256:c2943fb3f229af3c139c76220c1763f884aba8049c1d5f478a97dd0e7cdba6ce", "gen_hash_zig": "sha256:8c7536f7a8d0c7d685d71d63135eb7a5186213f72662f457240341418e49b9ca", "module": "SgdMomentum", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:e713662a43888a4304da49a3fa56934423615caec6edf983e2260fbb0123de3b", "spec_path": "specs/ml/optimizer/sgd_momentum.t27" } \ No newline at end of file diff --git a/.trinity/seals/VcdConformanceCompare.json b/.trinity/seals/VcdConformanceCompare.json index 7c83e2f27..a4bc78e06 100644 --- a/.trinity/seals/VcdConformanceCompare.json +++ b/.trinity/seals/VcdConformanceCompare.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:bebe4293236c12fcb05617b1046fe7669bbf697fdcb4088e2fa1ff3b9086d389", + "gen_hash_c": "sha256:9dfc1cf1ac4666678a60a03aa5314d272102e99b1eef2da16bc7c924836b0168", "gen_hash_rust": "sha256:22abdfabfa3d5f9e9c58b9616ace0673862d8f6adcbaee237b4f9b0547d9e02c", "gen_hash_verilog": "sha256:80938ff974db8c15abfd968ee837482063894ee01947eeed90a43d37415e7515", "gen_hash_zig": "sha256:694c791d243ca858524d94f91fc59b26bcf839ba2a3455cce96548d841a6721f", "module": "VcdConformanceCompare", "ring": 12, - "sealed_at": "2026-09-07T22:05:57Z", + "sealed_at": "2026-09-08T04:10:23Z", "spec_hash": "sha256:59c9aed7248324467e2d13b458a60137da5b8b07f5116a484580f0dadc808cd8", "spec_path": "specs/fpga/vcd_conformance_compare.t27" } \ No newline at end of file diff --git a/.trinity/seals/ZamolodchikovE8.json b/.trinity/seals/ZamolodchikovE8.json index 375b69569..b085db62a 100644 --- a/.trinity/seals/ZamolodchikovE8.json +++ b/.trinity/seals/ZamolodchikovE8.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:90ded7a04082515012a0f7a7c677376e05add9bc77e7f0fed6b0158e8056a5b7", + "gen_hash_c": "sha256:70a497babee04cd2b8d916e5ae7da57b46994675c1bef82b756fb46a8e5c935c", "gen_hash_rust": "sha256:d003e959b7082edd148cd37cac1ae7163944369b2b6076899280eb34bb2bda16", "gen_hash_verilog": "sha256:369bee32cfb4db68f44ed278e79c349c787baf0c962fff2dddf7cdb8cbf13a82", "gen_hash_zig": "sha256:0558f3d34ebaab561c1bbad8b1a46a50f8dbabcc118068e7ab9c27d03d8bd72d", "module": "ZamolodchikovE8", "ring": 12, - "sealed_at": "2026-08-28T18:19:55Z", + "sealed_at": "2026-09-08T04:10:25Z", "spec_hash": "sha256:01aeef2f32ca6f6294e444026fff8d82b8a0f9dfc7bc39abb42c7894650a3d66", "spec_path": "specs/math/zamolodchikov_e8.t27" -} +} \ No newline at end of file diff --git a/.trinity/seals/ZeroDSP_MAC.json b/.trinity/seals/ZeroDSP_MAC.json index 516cee67e..97ceab895 100644 --- a/.trinity/seals/ZeroDSP_MAC.json +++ b/.trinity/seals/ZeroDSP_MAC.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:1a30177afec7e09784cef503b14aea5c9c2a53b4bd36cfe859a070f86641e090", + "gen_hash_c": "sha256:0401ec65d13cafad059c81ccddea8113fbf0b64ac50eb393b1f9d726c4428aeb", "gen_hash_rust": "sha256:98f12ac7a6a7097ecc77fc7cb33283f2546b0077abb7934310c5eddae119fc86", "gen_hash_verilog": "sha256:1ddfc27a4ffbe035c37bb460f4232580acddd604abc55cbb99a36db69ba5b067", "gen_hash_zig": "sha256:6e303ec74ccaa3888d38ceea9bfdbaeff494170af22e0617ea130c30a3638ff7", "module": "ZeroDSP_MAC", "ring": 12, - "sealed_at": "2026-09-08T03:43:38Z", + "sealed_at": "2026-09-08T04:10:22Z", "spec_hash": "sha256:8de13250bacc6dfcbea6f0793bed435605fdbfdcb75e094df82ab0993de0c350", "spec_path": "specs/fpga/mac.t27" } \ No newline at end of file diff --git a/.trinity/seals/coder_igla-coder-arch.json b/.trinity/seals/coder_igla-coder-arch.json index 4f2ddbd84..c068f9fab 100644 --- a/.trinity/seals/coder_igla-coder-arch.json +++ b/.trinity/seals/coder_igla-coder-arch.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:4ecb7dc6ef2662ab66f024cb8590fc523ea046a2031724c1a2962d9172da8106", + "gen_hash_c": "sha256:361285c3818e2380c42ebf51474b427b8232fec64764c6e32e61f101e50d882d", "gen_hash_rust": "sha256:d3e936ed770a65525ceb4be8fff81a1e7381f6915aa4b500f4b7626cc84c3606", "gen_hash_verilog": "sha256:68ee411594d2a8d1b0df9214fa06102bc4297f3d597e12fef90d8986b86670aa", "gen_hash_zig": "sha256:825537b84cf902a2b6ba0e18ce53cb4af39d117aefac808e3ecf8bae4cc09931", "module": "igla-coder-arch", "ring": 12, - "sealed_at": "2026-09-08T03:43:38Z", + "sealed_at": "2026-09-08T04:10:23Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:baafdfb69f57527162bec359e9439edb7e0049f421019912200889abf9386707", "spec_path": "specs/igla/coder/arch.t27" diff --git a/.trinity/seals/coder_igla-coder-bench-proxy.json b/.trinity/seals/coder_igla-coder-bench-proxy.json index 7c3806321..bc1f4e3a6 100644 --- a/.trinity/seals/coder_igla-coder-bench-proxy.json +++ b/.trinity/seals/coder_igla-coder-bench-proxy.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:78847d8fafe31f024977a69193fd8070fdea32ce34d11ec7e25b0dd6284a9299", + "gen_hash_c": "sha256:614716d434be2183b064cb3e63fb267d75744bfa63f25099c012817b96f883fa", "gen_hash_rust": "sha256:e9d666e31bb8a1d76846dfcdf3afcabba4d7119efed0f1b5f627277368e823af", "gen_hash_verilog": "sha256:1db729375b8a59f5e5abb2d657c7ca159423c02b501ad0b953b9fb7ca46bffb8", "gen_hash_zig": "sha256:506fc81ff04dc1c21f147dc026aefedf05e58d712c884361ee37c382ea64eb95", "module": "igla-coder-bench-proxy", "ring": 12, - "sealed_at": "2026-09-08T03:43:38Z", + "sealed_at": "2026-09-08T04:10:23Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:340aeb11e95050b8aab5c127f136ccb0d04be9e650f664c5a13db07feba0d70d", "spec_path": "specs/igla/coder/bench_proxy.t27" diff --git a/.trinity/seals/coder_igla-coder-benchmark.json b/.trinity/seals/coder_igla-coder-benchmark.json index 78426f853..a6d256e95 100644 --- a/.trinity/seals/coder_igla-coder-benchmark.json +++ b/.trinity/seals/coder_igla-coder-benchmark.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:369615df46999744965797d115722fd602c56e5f015f0efec3be7cd264c84a01", + "gen_hash_c": "sha256:75baf4a4552e49ed8a118ead405e821b804e3599e4b5ad572a07b720892d3b13", "gen_hash_rust": "sha256:97b21ecd83ea15564c7976d865213f0dd17a5a521b6061efb9b77aed77d389a6", "gen_hash_verilog": "sha256:c39a2fe88cbbd3e877c7818e32c3a498c919102b395b35b35bda8835b4efa120", "gen_hash_zig": "sha256:c5737ad94fa6ae7cea4f66ee0c80746a56a2d2787b8c661e01309735df96047e", "module": "igla-coder-benchmark", "ring": 12, - "sealed_at": "2026-09-08T03:43:39Z", + "sealed_at": "2026-09-08T04:10:23Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:364fcad4e84a7bc2b862ef2c3845af3877da670806960f9fe845b47bffa7f641", "spec_path": "specs/igla/coder/benchmark.t27" diff --git a/.trinity/seals/coder_igla-coder-dataset.json b/.trinity/seals/coder_igla-coder-dataset.json index cd2c4ebe3..410e2ded7 100644 --- a/.trinity/seals/coder_igla-coder-dataset.json +++ b/.trinity/seals/coder_igla-coder-dataset.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:ac244df8f654ca72993152c4ea934de206444670e7df7b8388439d6afb2726bf", + "gen_hash_c": "sha256:b335ffc4ccc38bd8be7e1c0a37ab35a8b0d0eefe02f258f5596a229949cd60cb", "gen_hash_rust": "sha256:f528082591180a649a0ebb8f1e4a7b7801c41558a6c127f07ffdc6a5545d33fb", "gen_hash_verilog": "sha256:ac0750fc8f311f3d34bc9582664ff16799f372d6997e7d4f4a34c56b468ae9fc", "gen_hash_zig": "sha256:8555a411d49010bb10a4a1520dde2175dbac43f04000c973054881eaa1829159", "module": "igla-coder-dataset", "ring": 12, - "sealed_at": "2026-09-08T03:43:39Z", + "sealed_at": "2026-09-08T04:10:23Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:ea96b62813533b36a3742b1587b381e4ec1566e5e8e2a9a6a8cd0a4edf716c6c", "spec_path": "specs/igla/coder/dataset.t27" diff --git a/.trinity/seals/coder_igla-coder-eval.json b/.trinity/seals/coder_igla-coder-eval.json index 775c85860..83ea050ab 100644 --- a/.trinity/seals/coder_igla-coder-eval.json +++ b/.trinity/seals/coder_igla-coder-eval.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:5468da0080f6af71012fec02b33da3c4b3c3c9bdceef22b756eb847ec75c35f3", + "gen_hash_c": "sha256:2d7aa7d81a5c98d8443bbd4c04ced55855a63482018cd4d71e1d063273c67199", "gen_hash_rust": "sha256:d9897ffea08685af7c1f7278356d9c8b9818ef051bdb46a699d6f911fd798776", "gen_hash_verilog": "sha256:26e15c2e2e2a89bc9fbb19be86dd960c950518c4b1a57385d5ca00c5531ebd31", "gen_hash_zig": "sha256:cc88c2b3a66f72b4491ffd56e413105f1ad979ef04bf170c5cf202e46a863d6e", "module": "igla-coder-eval", "ring": 12, - "sealed_at": "2026-09-08T03:43:39Z", + "sealed_at": "2026-09-08T04:10:23Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:665636a59b59cca6f3255f7271f7507e4c49135f2c7c0d08310f3ef1e1ac708b", "spec_path": "specs/igla/coder/eval.t27" diff --git a/.trinity/seals/coder_igla-coder-pipeline.json b/.trinity/seals/coder_igla-coder-pipeline.json index c4d194a2e..45232478c 100644 --- a/.trinity/seals/coder_igla-coder-pipeline.json +++ b/.trinity/seals/coder_igla-coder-pipeline.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:05c241be8371faaa71256d816ec9fb614294367626811958d625b4de29c866d8", + "gen_hash_c": "sha256:7d1e0886fbdac99b384952edb840e208c0d45bab3a0e26d580411f87b93e38d8", "gen_hash_rust": "sha256:4a2fdde88384921ce6b7a29fbbbec98f3b5d4219f925dc761da9e5e14e146a8a", "gen_hash_verilog": "sha256:bb9ad9011f231784af5067aa70cd17ed4e0784000ef43d1d7381a5ce489c5982", "gen_hash_zig": "sha256:3e2a4690e81c39423645f96deb48beee2712ad92105e10e3585f2c5c76c7df08", "module": "igla-coder-pipeline", "ring": 12, - "sealed_at": "2026-09-08T03:43:39Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:304354cec12b7541a1cb98377c1f9e0f6e466d5a4d9e858e883039888957d206", "spec_path": "specs/igla/coder/pipeline.t27" diff --git a/.trinity/seals/coder_igla-coder-prm.json b/.trinity/seals/coder_igla-coder-prm.json index 3dfadf495..2c84e9c83 100644 --- a/.trinity/seals/coder_igla-coder-prm.json +++ b/.trinity/seals/coder_igla-coder-prm.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:1ffe193b8d52777cc6eaf94142cccdf6632ee01c7abf8f777d778e54f53d7807", + "gen_hash_c": "sha256:59f878b1fa70536b32f0b3eaa6ed870b2c2c8e480889559621590288c6842d63", "gen_hash_rust": "sha256:e8c862761c5453ef13c243f61144a277da40004a90a980e46a9bfbc8a6d5d85c", "gen_hash_verilog": "sha256:680483a85d48fd7c85e55bd4cc124c243b151e70082aa9a84cf098e0d2bff60e", "gen_hash_zig": "sha256:30dca41f3aca3c26b1c41187b18650f57271007bfcc314c0567ce04378832e26", "module": "igla-coder-prm", "ring": 12, - "sealed_at": "2026-09-08T03:43:39Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:ced5a24a09d61d2024c46b8b0e3a97140f471be1a8123e904a1016365dbcc9e6", "spec_path": "specs/igla/coder/prm.t27" diff --git a/.trinity/seals/coder_igla-coder-tokenizer.json b/.trinity/seals/coder_igla-coder-tokenizer.json index bab5de620..9e3b7bf7c 100644 --- a/.trinity/seals/coder_igla-coder-tokenizer.json +++ b/.trinity/seals/coder_igla-coder-tokenizer.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:9378b321aa71678ada586893b4400bb8d07a0afb92aa96b027de45757fef459e", + "gen_hash_c": "sha256:1b18f703b1916af13bb27d7269bf40bde7d65918cdde1d41a8375060f5d5bcaa", "gen_hash_rust": "sha256:3a36615aec0781f5532bf7fee077186dc0e63847ada80a0b938d8ead9152ea3f", "gen_hash_verilog": "sha256:38666d3626e908227181bbaa29ebbcecc2d98f739c75229d8a3cc460b27477c3", "gen_hash_zig": "sha256:9d639a3601232366f843a640a397238b405a27625790c37fda4a252de5f71074", "module": "igla-coder-tokenizer", "ring": 12, - "sealed_at": "2026-09-06T04:36:43Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:7647d8e3c93c634aeac4875d61712fcacff2f3a31b3b778a0cc1167d1e31ae8a", "spec_path": "specs/igla/coder/tokenizer.t27" diff --git a/.trinity/seals/coder_igla-coder-training.json b/.trinity/seals/coder_igla-coder-training.json index d045de07f..dbff463fb 100644 --- a/.trinity/seals/coder_igla-coder-training.json +++ b/.trinity/seals/coder_igla-coder-training.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:541adecf6164d0bfd9424494475e33c53cf9ea63f8de0822c33f5f4ccc415e93", + "gen_hash_c": "sha256:cd3191ec43899099cd4de3c98b8279318efabdfc5f76e3a0a406c7f5b8ca05e9", "gen_hash_rust": "sha256:614fcbe702bb6e5b4bb71bbb28aa5e7eaecff74729465657a986fbee2da54017", "gen_hash_verilog": "sha256:e737f6217dbd2a32472d00abbd0c4e3e7bea50b376f7b37e7e3cab5b15bf3a2c", "gen_hash_zig": "sha256:be3547659a40c3c5dca614be1e805ab76ce1633e6634ccd6e606665dcd9b0007", "module": "igla-coder-training", "ring": 12, - "sealed_at": "2026-09-08T03:43:39Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:8b561b77ec3526a52a396aee849be735d3bb3584ba9440a3b0b18f1ccf265f3c", "spec_path": "specs/igla/coder/training.t27" diff --git a/.trinity/seals/coder_igla-coder-weights.json b/.trinity/seals/coder_igla-coder-weights.json index 92a6d5369..e682021e6 100644 --- a/.trinity/seals/coder_igla-coder-weights.json +++ b/.trinity/seals/coder_igla-coder-weights.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:15059287110ba7a80fdd2c4dbbdc398b21822d1b37bbbb0f3677cb9e9b8f5ed1", + "gen_hash_c": "sha256:574cd1dc9b338b3b21bbda31d94fbe605da46f9c379bcff061316bd843411dd7", "gen_hash_rust": "sha256:33028fe7950ecf94098c0b646afee6d324de45d530abee909a89d273cae5e575", "gen_hash_verilog": "sha256:ccc961fff14fad2aa0ab657787fbc8ba97deacf803244f5c641daa16dc40cb99", "gen_hash_zig": "sha256:86ac85e41d346513903952c15bc89ea9cb18764e14106bc6fa4a19050ebbf132", "module": "igla-coder-weights", "ring": 12, - "sealed_at": "2026-09-08T03:43:40Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:d01f671df7e6cd43c5337cec36c44cc3f074a3a6c8b9a3010806111197cc378d", "spec_path": "specs/igla/coder/weights.t27" diff --git a/.trinity/seals/depin_depin.prove.json b/.trinity/seals/depin_depin.prove.json index c10b143f5..356b0316b 100644 --- a/.trinity/seals/depin_depin.prove.json +++ b/.trinity/seals/depin_depin.prove.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:9a8f3d1c8d145418c7c418e01d7b06de48c001d94d44a7b976d09becfdc4dfd8", + "gen_hash_c": "sha256:6f1ac43d006eba40de05afef5393c90f68ddaeffcb9763aaff87ac9137201619", "gen_hash_rust": "sha256:f36ae947eefd9018ea6a06f8ee1b6677b842f8192751acad2861de292a2f94af", "gen_hash_verilog": "sha256:350fd746ad1edd96862dc7c7a3aca83760b1d50d941282908cb1ba401ca37d40", "gen_hash_zig": "sha256:96c32f8d59e6198df043c2beba4ed9a5bdf6ca983b8745a69d0b3ee21ed3e90c", "module": "depin.prove", "ring": 12, - "sealed_at": "2026-09-06T04:36:42Z", + "sealed_at": "2026-09-08T04:10:22Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:b705492899feafbf3edaeec380ca7c5f3fc252230d57b3450f792954d97eeff6", "spec_path": "specs/depin/prove.t27" diff --git a/.trinity/seals/fpga_VcdConformanceCompare.json b/.trinity/seals/fpga_VcdConformanceCompare.json index 7b1c286b0..6bcf0534b 100644 --- a/.trinity/seals/fpga_VcdConformanceCompare.json +++ b/.trinity/seals/fpga_VcdConformanceCompare.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:bebe4293236c12fcb05617b1046fe7669bbf697fdcb4088e2fa1ff3b9086d389", + "gen_hash_c": "sha256:9dfc1cf1ac4666678a60a03aa5314d272102e99b1eef2da16bc7c924836b0168", "gen_hash_rust": "sha256:22abdfabfa3d5f9e9c58b9616ace0673862d8f6adcbaee237b4f9b0547d9e02c", "gen_hash_verilog": "sha256:80938ff974db8c15abfd968ee837482063894ee01947eeed90a43d37415e7515", "gen_hash_zig": "sha256:694c791d243ca858524d94f91fc59b26bcf839ba2a3455cce96548d841a6721f", "module": "VcdConformanceCompare", "ring": 12, - "sealed_at": "2026-09-07T22:05:57Z", + "sealed_at": "2026-09-08T04:10:23Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:59c9aed7248324467e2d13b458a60137da5b8b07f5116a484580f0dadc808cd8", "spec_path": "specs/fpga/vcd_conformance_compare.t27" diff --git a/.trinity/seals/fpga_ZeroDSP_MAC.json b/.trinity/seals/fpga_ZeroDSP_MAC.json index b27c4a6fb..feee66714 100644 --- a/.trinity/seals/fpga_ZeroDSP_MAC.json +++ b/.trinity/seals/fpga_ZeroDSP_MAC.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:1a30177afec7e09784cef503b14aea5c9c2a53b4bd36cfe859a070f86641e090", + "gen_hash_c": "sha256:0401ec65d13cafad059c81ccddea8113fbf0b64ac50eb393b1f9d726c4428aeb", "gen_hash_rust": "sha256:98f12ac7a6a7097ecc77fc7cb33283f2546b0077abb7934310c5eddae119fc86", "gen_hash_verilog": "sha256:1ddfc27a4ffbe035c37bb460f4232580acddd604abc55cbb99a36db69ba5b067", "gen_hash_zig": "sha256:6e303ec74ccaa3888d38ceea9bfdbaeff494170af22e0617ea130c30a3638ff7", "module": "ZeroDSP_MAC", "ring": 12, - "sealed_at": "2026-09-08T03:43:38Z", + "sealed_at": "2026-09-08T04:10:22Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:8de13250bacc6dfcbea6f0793bed435605fdbfdcb75e094df82ab0993de0c350", "spec_path": "specs/fpga/mac.t27" diff --git a/.trinity/seals/math_PhiUniversalAttractor.json b/.trinity/seals/math_PhiUniversalAttractor.json index 36ac4e6a5..bc374bb9a 100644 --- a/.trinity/seals/math_PhiUniversalAttractor.json +++ b/.trinity/seals/math_PhiUniversalAttractor.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:f87af83c0ff6c847d32612b230569d4c0035683bb05e56f51a180d2f11570eed", + "gen_hash_c": "sha256:57b80ac2b407ab14d7b880eb3b2fe16408b567e1d72273bec09315900067c336", "gen_hash_rust": "sha256:5476481bd0fc33ccfcc057fa54361627381fcd7a1f00850c8f5383c551472338", "gen_hash_verilog": "sha256:57cc672e29d6b8b23a4b66343155520fe6d890ffb46c38ec621e66ca6d857a5b", "gen_hash_zig": "sha256:dbba7f928af7d8a9672028e095e782314e7bccd0a5cee09290c602384d3ee036", "module": "PhiUniversalAttractor", "ring": 12, - "sealed_at": "2026-09-07T21:07:03Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:3a5a1d0bf24c0a354559c859ce379e3fa65b8aad313da8627e341daa273d4adf", "spec_path": "specs/math/phi_universal_attractor.t27" diff --git a/.trinity/seals/math_ZamolodchikovE8.json b/.trinity/seals/math_ZamolodchikovE8.json index cab474aed..053a5f21b 100644 --- a/.trinity/seals/math_ZamolodchikovE8.json +++ b/.trinity/seals/math_ZamolodchikovE8.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:90ded7a04082515012a0f7a7c677376e05add9bc77e7f0fed6b0158e8056a5b7", + "gen_hash_c": "sha256:70a497babee04cd2b8d916e5ae7da57b46994675c1bef82b756fb46a8e5c935c", "gen_hash_rust": "sha256:d003e959b7082edd148cd37cac1ae7163944369b2b6076899280eb34bb2bda16", "gen_hash_verilog": "sha256:369bee32cfb4db68f44ed278e79c349c787baf0c962fff2dddf7cdb8cbf13a82", "gen_hash_zig": "sha256:0558f3d34ebaab561c1bbad8b1a46a50f8dbabcc118068e7ab9c27d03d8bd72d", "module": "ZamolodchikovE8", "ring": 12, - "sealed_at": "2026-09-06T04:36:44Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:01aeef2f32ca6f6294e444026fff8d82b8a0f9dfc7bc39abb42c7894650a3d66", "spec_path": "specs/math/zamolodchikov_e8.t27" diff --git a/.trinity/seals/nn_GatedLinearAttention.json b/.trinity/seals/nn_GatedLinearAttention.json index 07aacf99a..998f99b22 100644 --- a/.trinity/seals/nn_GatedLinearAttention.json +++ b/.trinity/seals/nn_GatedLinearAttention.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:f2b8abe37edeb699fb0de21cefaef92830b1e7d7dcc60c24ec44cd7b372f7fb1", + "gen_hash_c": "sha256:0344af2516fd752043d9a5b4ab46cadb8aa26f92fd17468d1002f56ec8001c5a", "gen_hash_rust": "sha256:d1757f40cd640b9bf9972c98be121986bea2e7b091186e875520e556f3217e14", "gen_hash_verilog": "sha256:112cbe0bb8e1936e213bbacb14d084dfd3730661dde5b43b12870b2ad2092c1f", "gen_hash_zig": "sha256:f4769fec50bf2bf0bca08e4d8d2080dffafa73ec7ab29f80c8c95b83d6ecdaa9", "module": "GatedLinearAttention", "ring": 12, - "sealed_at": "2026-09-08T01:34:16Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:004529e85abd9c48919785e32e065358c561574356ddff82ef9bdf5c387fa195", "spec_path": "specs/nn/gla.t27" diff --git a/.trinity/seals/nn_HSLM.json b/.trinity/seals/nn_HSLM.json index 234a11bbf..ea7eed8dc 100644 --- a/.trinity/seals/nn_HSLM.json +++ b/.trinity/seals/nn_HSLM.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:0273f119a74cb3b77d972925aa64e6340a2f84f6b1605b13bd9ab8cba31b3782", + "gen_hash_c": "sha256:94ec1ab2d1eb93f81ca0f8a16625af4197bf13271ec9f104e766bc8db94b50ee", "gen_hash_rust": "sha256:77c0564db10be29afcc6dda0eab695afdb56acf295b08700ee82bbf58b457772", "gen_hash_verilog": "sha256:f8a956019cea253548cd3f3eee38d2405cea113b8ee5e66e3d387be41810c697", "gen_hash_zig": "sha256:51d88b507c315ec746ec177be352377540d8989ae03666f57d9db787201c57b9", "module": "HSLM", "ring": 12, - "sealed_at": "2026-09-08T02:02:02Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:8ea0766984db7775c474eab25dfb14965fa835ce0a56b33173df319fad342182", "spec_path": "specs/nn/hslm.t27" diff --git a/.trinity/seals/nn_SacredAttention.json b/.trinity/seals/nn_SacredAttention.json index c17dd1ee6..01a485806 100644 --- a/.trinity/seals/nn_SacredAttention.json +++ b/.trinity/seals/nn_SacredAttention.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:a82a6b2b5da331b625e8b81a335d1cc7741fb56d3a3b1c8bf58eab2d65e2ad08", + "gen_hash_c": "sha256:503a1168ff7d287b208e19b589abbf4b94bc0631262f3e8fe0d6a960886c192a", "gen_hash_rust": "sha256:0a4064c4d5ae45dda501198128042849e7b9f0b1b598012ddf8ff34367df1b72", "gen_hash_verilog": "sha256:495b48a5c98b7c1fccab460f017fcc48da428a1789ba23eaa7691edc1d0d9e13", "gen_hash_zig": "sha256:187bc0b9346fcc3d35ae53a9bad1be0fab2cfe59ddedbf8f61fe4a2856f4cd36", "module": "SacredAttention", "ring": 12, - "sealed_at": "2026-09-08T01:34:16Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:be83d2a916a15957502d6afa4d6eff7ab07d0373e81555704ee842500db47187", "spec_path": "specs/nn/attention.t27" diff --git a/.trinity/seals/optimizer_AdamW.json b/.trinity/seals/optimizer_AdamW.json index 51ca3530b..4a6d81057 100644 --- a/.trinity/seals/optimizer_AdamW.json +++ b/.trinity/seals/optimizer_AdamW.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:fc6d86aa2ccabe51ad5b4b41f7dced697a747d5bc0b6568f8170a1473e67b38e", + "gen_hash_c": "sha256:c79fd12f5b95994db62f3e42e7d8f898c4793f2cb5172f9ab2e4471893c57d5e", "gen_hash_rust": "sha256:20969877473efdd38111fb8dba59cd02c5f11dfcdec7bccca52357d51e6474f5", "gen_hash_verilog": "sha256:b4c627e61a5f93624f5901ceb1386f761e68bb8ad1756fd90be8c727871f667c", "gen_hash_zig": "sha256:eaaca634bf317cb126fa1f126fa9c5171c9951cb2831d4a8a0cde5496c7c1a41", "module": "AdamW", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:a5dbcb7030b094474aaaa271acb30a8e360843416a8ce98070bfee8cc66ae80b", "spec_path": "specs/ml/optimizer/adamw.t27" diff --git a/.trinity/seals/optimizer_SgdMomentum.json b/.trinity/seals/optimizer_SgdMomentum.json index f9bbc8771..4700d7847 100644 --- a/.trinity/seals/optimizer_SgdMomentum.json +++ b/.trinity/seals/optimizer_SgdMomentum.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:8a75d10a5ab331591d17e069a6ce9b846a704f84ad7170f46b22cb9efb287395", + "gen_hash_c": "sha256:8ece0ef5238850fe98eb78d7e73090be3cfb2a6a194fa51eac8635f61b34d339", "gen_hash_rust": "sha256:83d3c0a55ad8cb46923796f0b9441f467b8fe2bda86181873b0b722daa0ae78a", "gen_hash_verilog": "sha256:c2943fb3f229af3c139c76220c1763f884aba8049c1d5f478a97dd0e7cdba6ce", "gen_hash_zig": "sha256:8c7536f7a8d0c7d685d71d63135eb7a5186213f72662f457240341418e49b9ca", "module": "SgdMomentum", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:e713662a43888a4304da49a3fa56934423615caec6edf983e2260fbb0123de3b", "spec_path": "specs/ml/optimizer/sgd_momentum.t27" diff --git a/.trinity/seals/physics_SacredVerification.json b/.trinity/seals/physics_SacredVerification.json index fded9b559..a5e0e392a 100644 --- a/.trinity/seals/physics_SacredVerification.json +++ b/.trinity/seals/physics_SacredVerification.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:1dd3cd09cc16a6c8d64c93958fc7de9c418c2ae95285ec14e1912bfcc49603eb", + "gen_hash_c": "sha256:dac00ae376d62c784eb8c613d1dfcffefc210ec1fdf451577aa3e2e8564aea17", "gen_hash_rust": "sha256:cd01259b3081abf9024cf3f53b4690090c96446db7f3108c95026daf0a7424d8", "gen_hash_verilog": "sha256:1817097113f09289d7a347bb8b743faa39a9c6b82ab0c158a2058b0ac03e82ec", "gen_hash_zig": "sha256:e366439ab8d4fe966acf421937ab0091f28785ea3406b523dc3a56976e54c79c", "module": "SacredVerification", "ring": 12, - "sealed_at": "2026-09-08T01:34:16Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:fe6ff2cc8fb17534f6cbd181a4af31750729533339cbf99889aff1a06bd09151", "spec_path": "specs/physics/sacred_verification.t27" diff --git a/.trinity/seals/prove.json b/.trinity/seals/prove.json index 432255c77..7cf74c7af 100644 --- a/.trinity/seals/prove.json +++ b/.trinity/seals/prove.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:9a8f3d1c8d145418c7c418e01d7b06de48c001d94d44a7b976d09becfdc4dfd8", + "gen_hash_c": "sha256:6f1ac43d006eba40de05afef5393c90f68ddaeffcb9763aaff87ac9137201619", "gen_hash_rust": "sha256:f36ae947eefd9018ea6a06f8ee1b6677b842f8192751acad2861de292a2f94af", "gen_hash_verilog": "sha256:350fd746ad1edd96862dc7c7a3aca83760b1d50d941282908cb1ba401ca37d40", "gen_hash_zig": "sha256:96c32f8d59e6198df043c2beba4ed9a5bdf6ca983b8745a69d0b3ee21ed3e90c", "module": "depin.prove", "ring": 0, - "sealed_at": "2026-08-28T20:32:32Z", + "sealed_at": "2026-09-08T04:10:22Z", "spec_hash": "sha256:b705492899feafbf3edaeec380ca7c5f3fc252230d57b3450f792954d97eeff6", "spec_path": "specs/depin/prove.t27" -} +} \ No newline at end of file diff --git a/.trinity/seals/race_igla-race-adder-tree.json b/.trinity/seals/race_igla-race-adder-tree.json index 95ef294fd..c53678544 100644 --- a/.trinity/seals/race_igla-race-adder-tree.json +++ b/.trinity/seals/race_igla-race-adder-tree.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:685d9120e1e0228b14e9112d9db8aba13aa02a0a92ce06924959fa9d4765f3d8", + "gen_hash_c": "sha256:50f1316897546c2bde6a1406f52160b818d9c611a51eb40d504cb1f81eafc4f5", "gen_hash_rust": "sha256:4f4a6a63ffe1dc9c8008d36107c4978e944efaf2da5bdf68de779f7fe26cb9d3", "gen_hash_verilog": "sha256:bed19904b15648c859e600c5314b2484ff00cc32da5111859496adc7664240f3", "gen_hash_zig": "sha256:09c6dd92630a9b4f973a2fda314c25d80dbfa4c1f26e92491ec771fceba0f464", "module": "igla-race-adder-tree", "ring": 12, - "sealed_at": "2026-09-06T04:36:43Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:52b53299681e5062dfd14981fd211ff3c826cd9d50cddab71d6920ea66c64c2d", "spec_path": "specs/igla/race/adder_tree.t27" diff --git a/.trinity/seals/race_igla-race-bram-weights.json b/.trinity/seals/race_igla-race-bram-weights.json index ea3b2e17a..2fd78e24d 100644 --- a/.trinity/seals/race_igla-race-bram-weights.json +++ b/.trinity/seals/race_igla-race-bram-weights.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:8de65692e498dfd4eda3f3b09780ef5c4a0d967f311376474e0b527ebee430a8", + "gen_hash_c": "sha256:e331fc299e21653e4e25fe996aa9944ea380b195fcc1b6fb458480ee95b66d6f", "gen_hash_rust": "sha256:f63fd7d8db65f01d0f2488f59eff739db46ccd30bf5ac07f8c92959180e8f62e", "gen_hash_verilog": "sha256:c8244a6bc32c81b542d5739c4e03cced0f0e0e50e3267c217e4283d66f0dc941", "gen_hash_zig": "sha256:0eb407b316000867cd5b3d45da1d26b9d86198a1b3cb7b6df0b9525370120afa", "module": "igla-race-bram-weights", "ring": 12, - "sealed_at": "2026-09-06T04:36:43Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:d004effd79bb25726237a52ec4b3edb1ff89373b35f73d1b7aecd002afb33432", "spec_path": "specs/igla/race/bram_weights.t27" diff --git a/.trinity/seals/race_igla-race-cordic-top.json b/.trinity/seals/race_igla-race-cordic-top.json index 8873df69c..bc1683cd3 100644 --- a/.trinity/seals/race_igla-race-cordic-top.json +++ b/.trinity/seals/race_igla-race-cordic-top.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:dabc754ac0708c8f9a3e29ea070b70558d80ae5da0a8dd01a08a3ee88c35ad02", + "gen_hash_c": "sha256:88a8dcd169c639c7a0a20a03bf2542c713bc638b42c394d23089fa11e46fac6d", "gen_hash_rust": "sha256:b876f8b4ecc224ee66bf46d2c1e2086eb495213585ad0fc9cae7b91d15163a2a", "gen_hash_verilog": "sha256:71e302e9cd7c97dc75ce1efb99eb99d151af660091b71d8656ea3c7dd618227e", "gen_hash_zig": "sha256:bbb8624c7b7bcc7e26cc3e96548573ef6c1b04c0bb6cb7b1a2e2eee7f0ea9e8b", "module": "igla-race-cordic-top", "ring": 12, - "sealed_at": "2026-09-05T11:22:00Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:ef4e2d3e90d9a3b29abb9254cd70e3dd011a566eb73155b4efb7fa340a7db6b8", "spec_path": "specs/igla/race/cordic_top.t27" diff --git a/.trinity/seals/race_igla-race-rtl.json b/.trinity/seals/race_igla-race-rtl.json index caf70e720..dc8238543 100644 --- a/.trinity/seals/race_igla-race-rtl.json +++ b/.trinity/seals/race_igla-race-rtl.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:7dc7e4bdb04ae4bb06fda2f90eca3b4905ae2d02f8c80452b67594a0da600e17", + "gen_hash_c": "sha256:fea3f17445eca057c936c73c6c4991956302f38a53472351ec39d5d0b8ca2af4", "gen_hash_rust": "sha256:14e1c5cb3348b9e90558bce97218b8c5564af998d487148f0bebbc7366a86727", "gen_hash_verilog": "sha256:7247ec4c47b23b1e60b82ed743d2c03150a6ffc13d341b3c81fd25bc187cbc3e", "gen_hash_zig": "sha256:37b548cd1674b1938348d414f1858c5ff0615c8dc5d1c2ab751781293e2838be", "module": "igla-race-rtl", "ring": 12, - "sealed_at": "2026-09-06T04:36:44Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:3ff776981a381a17cdd0b9ca87aecf18dbe50589013cf2291443ece1a597034d", "spec_path": "specs/igla/race/rtl.t27" diff --git a/.trinity/seals/race_igla-race-systolic-array.json b/.trinity/seals/race_igla-race-systolic-array.json index da73fbf52..ec848e033 100644 --- a/.trinity/seals/race_igla-race-systolic-array.json +++ b/.trinity/seals/race_igla-race-systolic-array.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:bc006f4d3a6fdf83b8b4ca0dc005e69e2125a0a3b244f6d91a7b79f8bd3bc347", + "gen_hash_c": "sha256:ea443f13c389b7c0f200846d9acb70e5d9d2739e73077277eda1d6dd057c5206", "gen_hash_rust": "sha256:ba9b38992dc76c7de06ae90928a0e67cfdb98649848a77de51aa1e380ecf2aba", "gen_hash_verilog": "sha256:6bda0a419da1aa120f7afd4e6e355753829e6b4a97a975451678b4d39de71061", "gen_hash_zig": "sha256:a90a3069d7289bbb47c45d82a5e91a6a45f46c8ac1dd4dba5a9d2efa94a1408b", "module": "igla-race-systolic-array", "ring": 12, - "sealed_at": "2026-09-08T03:43:40Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:55ef8dde9d116d74e0c6e6e911893ba51116745d541532de44768b18cc3a188e", "spec_path": "specs/igla/race/systolic_array.t27" diff --git a/.trinity/seals/race_igla-race-systolic-ternary.json b/.trinity/seals/race_igla-race-systolic-ternary.json index 2327fae81..9ebe7a3e7 100644 --- a/.trinity/seals/race_igla-race-systolic-ternary.json +++ b/.trinity/seals/race_igla-race-systolic-ternary.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:05b88d4b6e0bf7b33177bc0146877249cf131787b95d6ed5e3f35ebfd3c72237", + "gen_hash_c": "sha256:4fbb5bdf305e8a345c78fdcbca89a45d2e952716a273d50cf6d097361e82cd3c", "gen_hash_rust": "sha256:dbc34c6545d36d0c1aa284398f8c87a22d27f9f67ca1ff1190d2083351f422cb", "gen_hash_verilog": "sha256:29244ceb3b49d238c23d8cf1f3283599058ca8953158e58b7f3d1a58692dc8b5", "gen_hash_zig": "sha256:e74bb53517a9458208fbafb2b0a3e9af0a1b67992869d2033eddd122ad34301b", "module": "igla-race-systolic-ternary", "ring": 12, - "sealed_at": "2026-09-08T03:43:40Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:968bea4fd52e44b99e900e9ae7b6e1642783a98413791edae61f450d59ead18f", "spec_path": "specs/igla/race/systolic_ternary.t27" diff --git a/.trinity/seals/race_igla-race-ternary-dot-sw.json b/.trinity/seals/race_igla-race-ternary-dot-sw.json index 32ddc6703..719451ec1 100644 --- a/.trinity/seals/race_igla-race-ternary-dot-sw.json +++ b/.trinity/seals/race_igla-race-ternary-dot-sw.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:5e27f2f234aa846cf25ab0e04a77a298c3989fd900b4e0a96bf9cbb50186acfd", + "gen_hash_c": "sha256:ccf5594abff6eeb3c2910adde924106c289ed8a9b557f5938dd4313fd5dbc10b", "gen_hash_rust": "sha256:1df4da3d70d612e7cfa8445dfbc8eeafbc8cb5f6c482a0055fbfc2a583745d26", "gen_hash_verilog": "sha256:67020e89dacb3b31e5b17fdf79d8b032131a1d74964886c2e51700e05677bd9a", "gen_hash_zig": "sha256:9ccb3f4be33392ab07fe1caf6e614a147ade4b7829e6db5e00eae9f81a8a1627", "module": "igla-race-ternary-dot-sw", "ring": 12, - "sealed_at": "2026-09-08T03:43:40Z", + "sealed_at": "2026-09-08T04:10:24Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:5bf4a9567cd56ec9b8862707948c207bba85498d272b73b0fc53e20aa548cbb7", "spec_path": "specs/igla/race/ternary_dot_sw.t27" diff --git a/.trinity/seals/race_igla-race-ternary-gemm.json b/.trinity/seals/race_igla-race-ternary-gemm.json index d74ade3c1..c6bd5a887 100644 --- a/.trinity/seals/race_igla-race-ternary-gemm.json +++ b/.trinity/seals/race_igla-race-ternary-gemm.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:127e68e52d227e2c6fde1dab070dea58577893d6711863ac03a55f103bebc652", + "gen_hash_c": "sha256:7ba1e0fe60704ef0f052b28f498b120ea3e41561f05ca56d114d6d6f72a5b022", "gen_hash_rust": "sha256:e21acf29d54c8453043438495d6416747fece0299271fe66a734d2b58e181786", "gen_hash_verilog": "sha256:5b75c2bfeea653bf96764b4709b5d0f6dbaf317c1d22352b67bb29c32da2304c", "gen_hash_zig": "sha256:edafb992971106619c0a55daa802154b4fbc2f24691078d7a5c35a7c976c9bfe", "module": "igla-race-ternary-gemm", "ring": 12, - "sealed_at": "2026-09-08T03:43:40Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:78a24a2432a4f2b0d6d042140db3ad42e9f7cc795beb5959c7acee807d83e2f4", "spec_path": "specs/igla/race/ternary_gemm.t27" diff --git a/.trinity/seals/race_igla-race-ternary-mac.json b/.trinity/seals/race_igla-race-ternary-mac.json index f4b74055b..3abbf6af5 100644 --- a/.trinity/seals/race_igla-race-ternary-mac.json +++ b/.trinity/seals/race_igla-race-ternary-mac.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:1c1b0654534764472f57877c625a38fca57db4534658245be21ed554e026a721", + "gen_hash_c": "sha256:4c1bcde2480a4c5cc72d842c76fad7d775276fbc3a070b94958b3fd6bc151c8d", "gen_hash_rust": "sha256:90ff69f87239df32cfc8605b00f86c36274fe57f800f410e9f67bba6b6a69534", "gen_hash_verilog": "sha256:b7a02eb7d7dadcd739254a928c1c0b9debfa911792abfe61ec77cf9a276da22f", "gen_hash_zig": "sha256:8b1897fdf2be962713d1be10f8ac0c9e2d63e234fc659ac92ad110df3d39db0b", "module": "igla-race-ternary-mac", "ring": 12, - "sealed_at": "2026-09-08T03:43:40Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:da088b364da904b38f48394a0c471089133d86e7035315c7dc9bae189f05d4dd", "spec_path": "specs/igla/race/ternary_mac.t27" diff --git a/.trinity/seals/transformer_FeedForwardLayer.json b/.trinity/seals/transformer_FeedForwardLayer.json index aa18b2d7f..08ac49df3 100644 --- a/.trinity/seals/transformer_FeedForwardLayer.json +++ b/.trinity/seals/transformer_FeedForwardLayer.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:9714ac33945a868966dbe267dc235dbcda1db285b69e83ff8411681ec8c50451", + "gen_hash_c": "sha256:4ebe578ffa0114dd5142268740758c5a4e7969e41090c3c4907a0411880511e2", "gen_hash_rust": "sha256:6e7187cd295605dee30881293a3ba9e4c4e920db786c2175e4dc5b4845eb91be", "gen_hash_verilog": "sha256:488d9229eb261516ea750278b4a7e4cca502f1c0a7194fa56c965fbea1b17196", "gen_hash_zig": "sha256:057a554e88ae94dc5ce06758b088c6c62c6a9bf7c82590f382e12074365f7bd6", "module": "FeedForwardLayer", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:0774668f000b9f30569b5640ba0a091dba5107d3b8f591bc69a6daf196915ae6", "spec_path": "specs/ml/transformer/feed_forward.t27" diff --git a/.trinity/seals/transformer_LayerNorm.json b/.trinity/seals/transformer_LayerNorm.json index c38a26c11..041fbe442 100644 --- a/.trinity/seals/transformer_LayerNorm.json +++ b/.trinity/seals/transformer_LayerNorm.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:edb9537672227b2bcdef6b7b0461d8b9820f696569ee0811451243d95ca83170", + "gen_hash_c": "sha256:62235df146d17f6aeef74e73d26a5aeecca882e8aa899895aafb55196a7f8712", "gen_hash_rust": "sha256:d0666115aa3d4861b6ed60575cdff740bbc55a060cc04f402e133276d628eca4", "gen_hash_verilog": "sha256:6e983dba608354ee1f347069e8ca5d3d5feea30b123c6a3122227d4e15e6fd0f", "gen_hash_zig": "sha256:172841c92bd81713a6802ccec98f681b440ae76201e1ef3eef62661c16114658", "module": "LayerNorm", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:094222aaee6baf1f769008f2adc84ef15355ff58c9313e44285f16cdda26ae18", "spec_path": "specs/ml/transformer/norm.t27" diff --git a/.trinity/seals/transformer_MHABlock.json b/.trinity/seals/transformer_MHABlock.json index edfcf78c4..fbd1d38d0 100644 --- a/.trinity/seals/transformer_MHABlock.json +++ b/.trinity/seals/transformer_MHABlock.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:c15c9df572b3c9f2ed1ae50c5e0e7e9fabaabacc0601a3f622458e6c5cd253e0", + "gen_hash_c": "sha256:cd6fac94540b21220dab8d9e546424b8ea108b85af42b22cb70a088bef2fe47d", "gen_hash_rust": "sha256:abf31ba7aca1f23691667bb4a95c68d2c33d2b54e56a683f80919390dc57523b", "gen_hash_verilog": "sha256:5e40302bc932bf1958aaf468de44545d3105d8922178eabdb85efc4009dea22d", "gen_hash_zig": "sha256:385ab9c0d68a4a70d9a633ba587ed4f11b71bc8ebd08f97310d8eb49b47179e5", "module": "MHABlock", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:45fd78626ad9ca71910d750669bd10a6f519d3eef067f24338c8b30e2681d067", "spec_path": "specs/ml/transformer/mha_block.t27" diff --git a/.trinity/seals/transformer_PositionalEncoding.json b/.trinity/seals/transformer_PositionalEncoding.json index 290cd102f..19e96d827 100644 --- a/.trinity/seals/transformer_PositionalEncoding.json +++ b/.trinity/seals/transformer_PositionalEncoding.json @@ -1,11 +1,11 @@ { - "gen_hash_c": "sha256:49ad2ff6a4d34f6d4f17e93623d9c086d46c67ccdd8610a0afd67e4d8ae8502a", + "gen_hash_c": "sha256:eaaa7e5b78280b7ba9662d666ffa9de3429dd78cbae703d11c41b2cc7ade7d81", "gen_hash_rust": "sha256:124b14e78bcbbd07e38a30bb0c428892871feb95945f330bae1ab9f4dd31ba9b", "gen_hash_verilog": "sha256:633093105b3880a9365a9de6d25007e45fcc018412f39492e6575f5c581014cf", "gen_hash_zig": "sha256:e0595ec599aa750f6c1ef97d8031bc1365383141df876731b8a3dc25ddf72244", "module": "PositionalEncoding", "ring": 12, - "sealed_at": "2026-09-08T01:03:29Z", + "sealed_at": "2026-09-08T04:10:25Z", "sealed_by": "t27c-bootstrap@0.2.0", "spec_hash": "sha256:22b7fd16cc3e23432ab550205a19de7e72f9f80efb73a000a1c9ce56b3c136b6", "spec_path": "specs/ml/transformer/positional_enc.t27" diff --git a/bootstrap/src/compiler.rs b/bootstrap/src/compiler.rs index 94f59f25d..4d0cceeac 100644 --- a/bootstrap/src/compiler.rs +++ b/bootstrap/src/compiler.rs @@ -19326,6 +19326,74 @@ impl CCodegen { Some(format!("{}{} {}[]", qual, Self::type_to_c(elem), name)) } + /// The element type of an array literal whose elements are all numeric + /// literals, or None. + /// + /// The last shape of the `__auto_type x = { ... }` class: `[1, 2, 3]` and + /// `[1.0, 2.0]` carry a type NOWHERE -- not on the array, not on a child -- + /// and C has no inference for a brace list, so it must be named. Rust + /// writes `let mut x = [1, 2, 3]` and Zig `var x = .{ 1, 2, 3 }`; only C + /// needs this. + /// + /// The choice matches what a SCALAR literal already gets, so the two agree: + /// `var x = 1` emits `uint32_t x = 1` here and `var x: u32 = 1` in Zig. Any + /// fractional element makes the whole list `f64`, which is C's own + /// promotion. + /// + /// Returns None for an empty list and for any element that is not a plain + /// numeric literal -- a call such as `cast_i8(1)` has a return type this + /// does not read, and guessing one would be worse than `__auto_type`. + fn c_literal_list_elem(lit: &Node) -> Option { + // A ONE-element literal is NOT handled and the reason is written down + // rather than guessed at: `[7]` arrives as an `ExprArrayLiteral` with + // ZERO children -- confirmed by instrumenting this branch -- while the + // emitted C still reads `{ 7 }`, so the element is kept somewhere this + // does not read. `lit.value` was the obvious candidate and is empty + // too; that was tried and reverted. 334 of the remaining class are + // `{ 0 }` and every one takes that path. Filed rather than guessed. + if lit.kind != NodeKind::ExprArrayLiteral || lit.children.is_empty() { + return None; + } + let mut any_float = false; + for e in &lit.children { + // SUBSUMED TODAY, and kept deliberately. A mutant deleting this + // survives every test: an identifier, a call and a binary + // expression all reach the checks below with an empty or + // non-numeric `value`, so they are refused anyway -- probed, all + // three still emit `__auto_type`. Unlike the `has_init` parameter + // removed in the const path, this guard IS reachable; dropping it + // would make correctness depend on the accident that non-literal + // nodes carry no numeric text. + if e.kind != NodeKind::ExprLiteral { + return None; + } + // A STRING literal is an ExprLiteral whose `value` is the text + // WITHOUT its quotes, so `["12", "34"]` passed the digit test and + // the list was typed `uint32_t` -- "incompatible pointer to + // integer conversion initializing 'uint32_t' with an expression of + // type 'char *'", four of them in one file. The tag lives on the + // node, exactly as the `#define` path upstream already knows. + if e.extra_kind == "string" { + return None; + } + let v = e.value.trim(); + if v.is_empty() { + return None; + } + let body = v.strip_prefix('-').unwrap_or(v); + if body.contains('.') || body.contains('e') || body.contains('E') { + if body.chars().any(|c| c == '.') { + any_float = true; + } else { + return None; + } + } else if !body.chars().all(|c| c.is_ascii_digit() || c == '_') { + return None; + } + } + Some(if any_float { "f64" } else { "u32" }.to_string()) + } + fn c_array_field(ty: &str, fname: &str) -> Option { let t = ty.trim(); // The `;` test is REDUNDANT today and kept as intent: a mutant deleting @@ -19955,7 +20023,15 @@ impl CCodegen { && (!c.extra_type.is_empty() || c.children.first().is_some_and(|e| { e.kind == NodeKind::ExprStructLit && !e.name.is_empty() - })) + }) + // A bare list of NUMERIC LITERALS carries + // its type nowhere -- not on the array, not + // on a child -- and it is what remained of + // the largest error class: 1401 of + // `__auto_type x = { 1, 2, 3 }`. Rust and + // Zig infer it; C cannot, so it has to be + // named. See `c_literal_list_elem`. + || Self::c_literal_list_elem(c).is_some()) }) { // W699 rung 3: `const vals = [_]i32{...}` has no annotation, @@ -19966,6 +20042,8 @@ impl CCodegen { let lit = node.children.first().unwrap(); let elem: String = if !lit.extra_type.is_empty() { lit.extra_type.clone() + } else if let Some(t) = Self::c_literal_list_elem(lit) { + t } else { // Recovered from the first element; the condition above // established it is a named struct literal. diff --git a/bootstrap/stage0/FROZEN_HASH b/bootstrap/stage0/FROZEN_HASH index 9b192ce8a..fb3c9db66 100644 --- a/bootstrap/stage0/FROZEN_HASH +++ b/bootstrap/stage0/FROZEN_HASH @@ -1 +1 @@ -cc0a3676c563d3f8e5efcacff69564fa87769c2776a016b355ad69d5912e27f1 bootstrap/src/compiler.rs +1515e2cbfd015d433e618ed6efb0539ea5de76d5579b0d65af1681ea109b2055 bootstrap/src/compiler.rs diff --git a/bootstrap/tests/c_literal_list_type.rs b/bootstrap/tests/c_literal_list_type.rs new file mode 100644 index 000000000..6fcf906a0 --- /dev/null +++ b/bootstrap/tests/c_literal_list_type.rs @@ -0,0 +1,113 @@ +//! A bare list of numeric literals must be given an element type in C. +//! +//! `var x = [1, 2, 3]` emitted `__auto_type x = { 1, 2, 3 }` -- +//! `cannot use '__auto_type' with initializer list in C`. Rust writes +//! `let mut x = [1, 2, 3]` and Zig `var x = .{ 1, 2, 3 }`; only C has no +//! inference for a brace list, so the type has to be named. +//! +//! The choice matches what a SCALAR literal already gets, so the two agree: +//! `var x = 1` emits `uint32_t x = 1` here and `var x: u32 = 1` in Zig. +//! +//! A STRING literal is an `ExprLiteral` whose `value` is the text without its +//! quotes, so `["12", "34"]` passed a digit test and was typed `uint32_t` -- +//! four "incompatible pointer to integer conversion" errors in one corpus file. +//! That is what `a_list_of_strings_is_refused` holds. + +use std::process::Command; +use std::sync::atomic::{AtomicUsize, Ordering}; + +static N: AtomicUsize = AtomicUsize::new(0); + +fn cc_present() -> bool { + Command::new("cc").arg("--version").output().map(|o| o.status.success()).unwrap_or(false) +} + +fn gen_c(body: &str, tag: &str) -> (String, std::path::PathBuf) { + let d = std::env::temp_dir().join(format!( + "t27c-clit-{tag}-{}-{}", + std::process::id(), + N.fetch_add(1, Ordering::Relaxed) + )); + let _ = std::fs::remove_dir_all(&d); + std::fs::create_dir_all(&d).expect("dir"); + let p = d.join("in.t27"); + std::fs::write(&p, format!("module P {{\n fn f(v: i32) -> i32 {{ {body} return 0; }}\n}}\n")) + .expect("write"); + let out = Command::new(env!("CARGO_BIN_EXE_t27c")) + .arg("gen-c") + .arg(&p) + .output() + .expect("t27c"); + assert!(out.status.success(), "gen-c failed: {}", String::from_utf8_lossy(&out.stderr)); + (String::from_utf8_lossy(&out.stdout).to_string(), d) +} + +fn errors(h: &str, d: &std::path::Path) -> String { + let p = d.join("h.h"); + std::fs::write(&p, h).expect("write"); + let out = Command::new("cc") + .args(["-std=c11", "-Wall", "-Wextra", "-Wno-unused-parameter", + "-ferror-limit=0", "-fsyntax-only", "-x", "c"]) + .arg(&p) + .output() + .expect("cc"); + String::from_utf8_lossy(&out.stderr).to_string() +} + +#[test] +fn an_integer_list_takes_the_same_type_a_scalar_would() { + let (h, d) = gen_c("var x = [1, 2, 3];", "ints"); + assert!(h.contains("uint32_t x[3] = { 1, 2, 3 };"), "got:\n{h}"); + assert!(!h.contains("__auto_type x"), "and no __auto_type:\n{h}"); + if cc_present() { + assert!(!errors(&h, &d).contains("error"), "and it compiles"); + } + // The agreement that makes `uint32_t` the right choice rather than an + // arbitrary one: a scalar literal already gets it. + let (s, _) = gen_c("var y = 1;", "scalar"); + assert!(s.contains("uint32_t y = 1;"), "the scalar precedent:\n{s}"); +} + +#[test] +fn a_fractional_element_makes_the_list_double() { + let (h, d) = gen_c("var x = [1.0, 2.0];", "floats"); + assert!(h.contains("double x[2] = { 1.0, 2.0 };"), "got:\n{h}"); + if cc_present() { + assert!(!errors(&h, &d).contains("error"), "and it compiles"); + } + // Mixed: C's own promotion says double, and so does this. + let (m, _) = gen_c("var x = [1, 2.5];", "mixed"); + assert!(m.contains("double x[2] ="), "a mixed list is double:\n{m}"); +} + +#[test] +fn a_list_of_strings_is_refused() { + // The negative control that a corpus measurement produced. A string + // literal's `value` is its text without quotes, so `["12", "34"]` looks + // like digits; typing it `uint32_t` gave "incompatible pointer to integer + // conversion" four times in one file. + let (h, _d) = gen_c(r#"var x = ["12", "34"];"#, "strings"); + assert!( + !h.contains("uint32_t x["), + "a list of strings must not be typed as integers:\n{h}" + ); +} + +#[test] +fn a_list_of_calls_is_refused() { + // A call has a return type this does not read, and guessing one would be + // worse than `__auto_type` -- which is at least type-correct when it works. + let (h, _d) = gen_c("var x = [f(1), f(2)];", "calls"); + assert!(!h.contains("uint32_t x["), "a list of calls must not be guessed at:\n{h}"); +} + +#[test] +fn an_annotated_list_is_unchanged() { + // The path that already worked. The inference is only consulted when there + // is no annotation and no type on any child. + let (h, d) = gen_c("var x : [2]u8 = [1, 2];", "annotated"); + assert!(h.contains("uint8_t x[2] = { 1, 2 };"), "got:\n{h}"); + if cc_present() { + assert!(!errors(&h, &d).contains("error"), "and it compiles"); + } +} diff --git a/docs/now/2026-09-08-the-string-that-looked-like-a-number.md b/docs/now/2026-09-08-the-string-that-looked-like-a-number.md new file mode 100644 index 000000000..6bbcad56f --- /dev/null +++ b/docs/now/2026-09-08-the-string-that-looked-like-a-number.md @@ -0,0 +1,10 @@ +# NOW -- The string that looked like a number (2026-09-08) + +## The string that looked like a number (Refs #3459) + +- The largest error class had 1401 left after the previous pass, all one shape: a bare list of numeric literals, carrying a type nowhere. Rust writes `let mut x = [1, 2, 3]` and Zig `var x = .{ 1, 2, 3 }`; only C has no inference for a brace list, so the type must be NAMED. The choice is not arbitrary -- it matches what a scalar literal already gets, `uint32_t x = 1` here and `var x: u32 = 1` in Zig -- and any fractional element makes the list `double`, which is C's own promotion. +- Measured: errors **14738 → 14276**, the class **1401 → 837**, **31 files better**. `igla/race/ternary_gemm` 437 → 348, `igla/race/rtl` 268 → 197. +- **The corpus refuted my first version.** A STRING literal is an `ExprLiteral` whose `value` is the text WITHOUT its quotes, so `["12", "34"]` passed a digit test and the list was typed `uint32_t`: four «incompatible pointer to integer conversion initializing 'uint32_t' … with an expression of type 'char *'» in one file. Excluding `extra_kind == "string"` fixed it, and the per-file check is the only reason it was seen -- the aggregate had improved either way. +- Two files still rise and both are unmasking, checked one at a time rather than generalised: an unnamed tuple struct losing `f0`, and `member reference base type 'int'`. A third, a `uint16_t` field initialised from a `uint32_t[4]`, was wrong before and had no type to be wrong against. +- **A speculation was reverted with its reason recorded.** A ONE-element literal `[7]` arrives as an `ExprArrayLiteral` with ZERO children -- confirmed by instrumenting the branch -- while the emitted C still reads `{ 7 }`, so the element is kept somewhere this code does not read. `lit.value` was the obvious candidate, was tried, and is empty too. 334 of the remaining 837 are `{ 0 }` and every one takes that path. Filed rather than guessed at. +- A mutant survived on a guard that is SUBSUMED rather than unreachable: deleting `kind != ExprLiteral` changes nothing, because an identifier, a call and a binary expression all reach the value checks with nothing numeric to offer -- probed, all three. It stays, and the difference from the `has_init` parameter deleted last pass is written down: that one no caller could reach; this one is reachable and dropping it would make correctness depend on an accident.