|
77 | 77 |
|
78 | 78 | --- |
79 | 79 |
|
| 80 | +## 2026-07-23 — Wave Loop 768 (module-scope `[355][2]^6 Pt` non-power-of-two outer-dimension AoS variable) |
| 81 | + |
| 82 | +### What worked |
| 83 | +- Variant A extended the module-scope packed AoS odd outer-dimension ladder to 355. |
| 84 | + The `[355][2]^6 Pt` witness is 727,040 bits (~0.694 MiBit), still well under the 4-MiBit |
| 85 | + cliff, and required no compiler changes. |
| 86 | +- A module-level `pub var dst : [355][2]^6 Pt` can be initialized from a function |
| 87 | + call and exercised with indexed signed field writes, with zero compiler changes. |
| 88 | +- The cocotb/Python reference model correctly mirrored the row-major flattening |
| 89 | + with outer stride 355, confirming the layout is preserved end-to-end. |
| 90 | +- Reused the corrected W632 element-index formula for mid-row expected values: |
| 91 | + `[r][a5][a4][a3][a2][a1][a0]` is element `r*64 + a5*32 + a4*16 + a3*8 + a2*4 + a1*2 + a0`. |
| 92 | +- For `OUTER = 355`, `MID_IDX = 177`; the frame-condition element is |
| 93 | + `[177][1][0][0][0][0][0]`, element number `177*64 + 32 = 11,360`. |
| 94 | +- Updated weak-point audit: 42 of 51 30-day commits include `Closes #N` (≈82%). |
| 95 | + Clean non-worktree scan: 53 of 895 `.t27` specs lack `test`/`invariant`/`bench` |
| 96 | + (≈5.9%). 19 `scripts/*.sh` remain under `scripts/`. |
| 97 | +- Fresh 2025-2026 literature scan surfaced BitNet training/inference extensions, |
| 98 | + spintronic/MTJ ternary logic-in-memory, skyrmion multi-value probabilistic |
| 99 | + computing, and superconducting ternary output data links. |
| 100 | + |
| 101 | +### What changed behavior |
| 102 | +- No changes to `bootstrap/src/compiler.rs`. |
| 103 | +- No changes to `bootstrap/stage0/FROZEN_HASH`. |
| 104 | +- No changes to `scripts/cocotb_ref_model.py`. |
| 105 | +- Added `specs/scratch/w768_bench_module_355x2p6_aos_var_call_write.t27` (~1,554 KB / |
| 106 | + ~67,511 lines) with seal and Icarus baseline. |
| 107 | +- Added integration test `accepts_w768_bench_module_355x2p6_aos_var_call_write`. |
| 108 | +- Added generator script `scripts/gen_w768.py`. |
| 109 | + |
| 110 | +### Validation |
| 111 | +- `cargo build --release -p t27c`: OK. |
| 112 | +- `cargo test -p t27c --bin t27c`: 1494 passed; 0 failed; 2 ignored. |
| 113 | +- `cargo test -p tri`: 78 passed; 0 failed. |
| 114 | +- `cargo test -p t27c --test icarus_lowerable`: 228 passed; 0 failed. |
| 115 | +- Direct `t27c parse` W768: PASS. |
| 116 | +- Direct `t27c icarus-lowerable` W768: PASS (`lowerable`). |
| 117 | +- Direct `t27c icarus-simulate` W768: PASS (17 cycles, PASSED). |
| 118 | +- Direct `t27c icarus-cocotb` W768: PASS (`reference-model OK`). |
| 119 | + |
| 120 | +### Scientific / engineering background |
| 121 | +- IEEE 1800-2017 7.4.1/7.4.3 define packed-array total width as the product of |
| 122 | + packed dimensions, with no power-of-two restriction. Variant A emits a single |
| 123 | + 727,040-bit packed vector, which is legal SystemVerilog. |
| 124 | +- Lutsig verified array lowering and CIRCT `HWLegalizeModules` show that |
| 125 | + flattening nested arrays to wide packed vectors is a well-founded compiler |
| 126 | + discipline, even when outer dimensions are non-power-of-two. |
| 127 | +- Icarus issue #1134 documents assertion failures for unpacked arrays of packed |
| 128 | + structs; t27 scalar flattening avoids that construct entirely. |
| 129 | +- Yosys issue #2677 / #4653 confirm that arrays of packed structs remain |
| 130 | + unsupported in the native frontend; t27 packed-vector lowering avoids the |
| 131 | + gap. |
| 132 | +- 2025-2026 ternary/MVL literature scan found: |
| 133 | + - BitNet b1.58 foundational ternary LLM and JMLR 2025 training recipe. |
| 134 | + - BitNet b1.58 2B4T — first open-source native 1-bit 2B LLM (4T tokens). |
| 135 | + - Bitnet.cpp — edge CPU inference with TL/I2_S kernels up to 6.25× vs FP16. |
| 136 | + - Sparse-BitNet — natural compatibility with N:M semi-structured sparsity. |
| 137 | + - Skyrmion multi-value probabilistic computing with current-controlled |
| 138 | + diffusion and MTJ-compatible readout (arXiv 2025). |
| 139 | + - MTJ+FinFET ternary logic-in-memory array with full ternary operator set |
| 140 | + (Results in Engineering 2025). |
| 141 | + - Reconfigurable skyrmion multi-port logic device with VCMA gating |
| 142 | + (Chinese Phys. Lett. 2026). |
| 143 | + - Cascading VCMA skyrmion AND/OR/NAND/NOR gates (Nanotechnology 2026). |
| 144 | + - Ternary RSFQ output data link, 3-bit→2-trit encoder, MIT Lincoln Lab |
| 145 | + SFQ5ee process (IEEE Trans. Appl. Supercond. 2025). |
| 146 | + - Verilog/SDF modeling framework for synchronous/asynchronous SFQ/RSFQ/ASFQ |
| 147 | + pulse-based logic (arXiv 2026). |
| 148 | + - OpenXC7 / nextpnr-xilinx / Project X-Ray — fully open-source Xilinx |
| 149 | + 7-series toolchain, used for QMTech XC7A100T ternary projects without Vivado. |
| 150 | + |
| 151 | +--- |
| 152 | + |
80 | 153 | ## 2026-07-23 — Wave Loop 767 (module-scope `[353][2]^6 Pt` non-power-of-two outer-dimension AoS variable) |
81 | 154 |
|
82 | 155 | ### What worked |
|
0 commit comments