Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
6d060fd
widgets: catalogue all 82 widget folders and the factory law -- 28 to…
claude Oct 19, 2026
9d714ff
widgets: gatle rules ported to .t27 -- 3 tests, 19 asserts; gen-js lo…
claude Oct 19, 2026
749e318
widgets: gallery rules as scalar .t27 -- 195 widgets, refusal verdict…
claude Oct 19, 2026
ddcabdf
widgets: the gallery reader as pure .t27 -- meta tags, entities, loca…
claude Oct 19, 2026
def022a
widgets: the logic stage runs through wasm -- gatle_rule built with g…
claude Oct 19, 2026
d4d8ccd
widgets: html_out -- the one HTML writer for native widget views, bou…
claude Oct 19, 2026
45af0f3
widgets: jtag-verdict is the first widget drawn natively -- words, ru…
claude Oct 19, 2026
b337706
widgets: json_scan reads data.json as bytes -- 284965 values of 143 w…
claude Oct 19, 2026
e83cc48
widgets: race-the-bee drawn natively from data.json -- 13014-byte was…
claude Oct 19, 2026
30e1744
widgets: lut-treemap logic ported to .t27 -- 9 tests, 14667449 compar…
claude Oct 19, 2026
f595a17
widgets: lut-explain logic ported to .t27 -- 9 tests, 1395124 compari…
claude Oct 19, 2026
e5117d0
widgets: rename the lut logic specs to underscores (Closes #10960)
claude Oct 19, 2026
f972b81
widgets: lut-depth logic ported to .t27 -- 7 tests, 12125 comparisons…
claude Oct 19, 2026
a8fe710
widgets: stat-card logic ported to .t27 -- 8 tests, 30827 comparisons…
claude Oct 19, 2026
76893bd
widgets: fasm-skyline logic ported to .t27 -- 7 tests, 384784 compari…
claude Oct 19, 2026
7fce749
widgets: catalog records five more logic files at PORT_LOGIC -- lut-d…
claude Oct 19, 2026
b85de66
Merge branch 'claude/t27-widgets-catalog-3e2d7f' into worktree-agent-…
claude Oct 19, 2026
fceb821
Merge remote-tracking branch 'origin/master' into claude/t27-widgets-…
claude Oct 19, 2026
dc6c5c9
widgets: js_num -- JavaScript's number text rules in .t27, 1256209 co…
claude Oct 19, 2026
c6757b6
widgets: bit-diff logic ported to .t27 -- 8 tests, 275620 comparisons…
claude Oct 19, 2026
9edd1ac
widgets: vcd-wrapped logic ported to .t27 -- 6 tests, 76076 compariso…
claude Oct 19, 2026
ab4dc8f
widgets: catalog records bit-diff and vcd-wrapped at PORT_LOGIC (Clos…
claude Oct 19, 2026
0607333
widgets: js_val -- String(), Number(), truthiness, fill() and JSON.pa…
claude Oct 19, 2026
bce2d42
widgets: t27-vs-nvfp4 drawn natively -- 28660-byte wasm, 1517 DOM com…
claude Oct 19, 2026
62d1f03
widgets: pin-map logic ported to .t27 -- 8 tests, 180587 comparisons …
claude Oct 19, 2026
0a8fb13
widgets: synth-smells logic ported to .t27 -- 9 tests, 87094 comparis…
claude Oct 19, 2026
a57396a
widgets: fsm-sketch logic ported to .t27 -- 10 tests, 91657 compariso…
claude Oct 19, 2026
183003f
widgets: bit-autopsy logic ported to .t27 -- 7 tests, 96007 compariso…
claude Oct 19, 2026
160796f
widgets: catalog records all 12 logic files at PORT_LOGIC -- pin-map,…
claude Oct 19, 2026
ae2ab4a
widgets: js_val reads Number(text) like JavaScript (white space, 0x/0…
claude Oct 19, 2026
6aa5565
widgets: t27-cell drawn natively -- 31401-byte wasm, 3098 DOM compari…
claude Oct 19, 2026
6a2fc5a
widgets: build-receipt drawn natively -- 32541-byte wasm, 951 DOM com…
claude Oct 19, 2026
9ec6328
widgets: js_val gains jv_fill_raw, the filler without escaping, for a…
claude Oct 19, 2026
55741ca
widgets: uart-bucket drawn natively -- 32562-byte wasm, 3288 DOM comp…
claude Oct 19, 2026
518a182
widgets: test-touch drawn natively -- 35775-byte wasm, V8's TimSort p…
claude Oct 19, 2026
e01aecf
Merge branch 'worktree-agent-a019d686a52279b4d' into claude/t27-widge…
claude Oct 19, 2026
4f99467
Merge remote-tracking branch 'origin/master' into claude/t27-widgets-…
claude Oct 19, 2026
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
1,150 changes: 1,150 additions & 0 deletions specs/widgets/bit_autopsy_logic.t27

Large diffs are not rendered by default.

1,761 changes: 1,761 additions & 0 deletions specs/widgets/bit_diff_logic.t27

Large diffs are not rendered by default.

1,388 changes: 1,388 additions & 0 deletions specs/widgets/build_receipt.t27

Large diffs are not rendered by default.

28 changes: 15 additions & 13 deletions specs/widgets/catalog.t27
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@
; Stages reached, each with a differential against the hand-written version on the trinity side.
; PORT_LOGIC (the pure logic file is .t27, built to wasm, 0 mismatches against the JavaScript):
; gatle 866178 comparisons, lut-depth 12125, stat-card 30827, fasm-skyline 384784, lut-treemap
; 14667449, lut-explain 1395124.
; 14667449, lut-explain 1395124, bit-diff 275620, vcd-wrapped 76076, pin-map 180587, synth-smells 87094, fsm-sketch 91657 (its Math.sin/cos/atan2 stay with the host: V8 differs from libm in the last bit), bit-autopsy 96007.
; With these, all 12 pure logic files of the census (2775 lines of JavaScript) exist as .t27.
; gatle is at PORT_LOGIC (specs/widgets/gatle_rule.t27: 866178 comparisons vs rule.js, 0 mismatches)
; and jtag-verdict and race-the-bee at PORT_DRAW (specs/widgets/jtag_verdict.t27: 3015 DOM
; and jtag-verdict, race-the-bee, t27-vs-nvfp4, t27-cell, build-receipt, uart-bucket and test-touch at PORT_DRAW (specs/widgets/jtag_verdict.t27: 3015 DOM
; comparisons vs tool.js, 0 mismatches; specs/widgets/race_the_bee.t27: 59, with 13 data variants, 0). Every other tool is at PORT_WORDS: its words live in its spec, its logic and drawing
; still live in JavaScript. A stage is reached on the t27 side first; the page in trinity keeps
; loading the hand-written file until that repo's migration PR deletes it. A tool moves up only when
Expand Down Expand Up @@ -90,7 +91,7 @@ pub const PORT_LOGIC : u8 = 2; // pure logic is .t27, generated to JS by gen-ts
pub const PORT_DRAW : u8 = 3; // the page is drawn by the trusted renderer from a plan
pub const PORT_SEALED : u8 = 4; // the spec seal keys the page, the data and the card
pub const PORT_STAGES : u8 = 5;
pub const TOOL_PORT : [28]u8 = [1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 3, 2, 2, 2, 1, 1, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1];
pub const TOOL_PORT : [28]u8 = [2, 2, 3, 1, 2, 1, 2, 2, 1, 1, 3, 2, 2, 2, 2, 1, 3, 1, 1, 2, 2, 3, 3, 1, 3, 1, 3, 2];

; Port waves, by the hand lines a tool still carries (logic + draw + css + data + card).
; Wave 1 is the small tools, wave 3 the largest; a wave is a batch of port issues.
Expand Down Expand Up @@ -226,17 +227,18 @@ test the_waves_cover_every_tool_once {
assert hand_lines(12) == 1432;
}

test eight_tools_have_left_the_words_stage_with_a_differential {
assert count_port(PORT_WORDS) == TOOL_COUNT - 8;
assert count_port(PORT_LOGIC) == 6;
assert count_port(PORT_DRAW) == 2;
test seven_pages_are_native_and_the_twelve_logic_files_are_ported {
assert count_port(PORT_DRAW) == 7;
assert count_port(PORT_WORDS) == 9;
assert count_port(PORT_LOGIC) == 12;
assert count_port(PORT_SEALED) == 0;
assert TOOL_PORT[4] == PORT_LOGIC;
assert TOOL_PORT[7] == PORT_LOGIC;
assert TOOL_PORT[11] == PORT_LOGIC;
assert TOOL_PORT[12] == PORT_LOGIC;
assert TOOL_PORT[13] == PORT_LOGIC;
assert TOOL_PORT[19] == PORT_LOGIC;
assert count_port(PORT_LOGIC) + count_port(PORT_DRAW) == 19;
assert TOOL_PORT[10] == PORT_DRAW;
assert TOOL_PORT[16] == PORT_DRAW;
assert TOOL_PORT[2] == PORT_DRAW;
assert TOOL_PORT[21] == PORT_DRAW;
assert TOOL_PORT[22] == PORT_DRAW;
assert TOOL_PORT[24] == PORT_DRAW;
assert TOOL_PORT[26] == PORT_DRAW;
assert TOOL_PORT[7] == PORT_LOGIC;
}
Loading
Loading