From 5db97c60b953205e68d273b9b56424d346fa750d Mon Sep 17 00:00:00 2001 From: eunhhu Date: Mon, 19 Oct 2026 11:51:58 +0100 Subject: 045: 029's principle 1 broken on UAX #14 before any emitter, the tools and the numbers: (a) the executor runs 549.9 instructions a code point (the budget's 1,774 counts blocks as written), moves 205.5, constants 76.7 and reads of the same list, version, field and place in an event 16.4, so merging leaves 251.3: 2.19x, the bar 4x (ops-count.patch); (b) the executor's own steps stitched on constant instructions, a function a basic block (stitch.c, native-hook.patch), answers checked: 40,703 to 28,601 machine instructions a point, 15,566 to 11,850 cycles: 1.31x, the bar 3x (cost.c); Vega's C 220 and 82; where it goes: dispatch 22 machine instructions an instruction of 74, an empty handler 1,583 a point, the lists built 22,651 more, the Text record 2,951, decide 12,988 (events.c, variants); a stored list's read 331, a block fn's call 1,375, an arithmetic step 248 in the executor and 35 in batches (unit.c, units) --- .../experiments/045-proof-compiler/variants/v1-lists.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 research/experiments/045-proof-compiler/variants/v1-lists.patch (limited to 'research/experiments/045-proof-compiler/variants/v1-lists.patch') diff --git a/research/experiments/045-proof-compiler/variants/v1-lists.patch b/research/experiments/045-proof-compiler/variants/v1-lists.patch new file mode 100644 index 0000000..6b73004 --- /dev/null +++ b/research/experiments/045-proof-compiler/variants/v1-lists.patch @@ -0,0 +1,14 @@ +--- linebreak.aup ++++ v1-lists.aup +@@ -173,10 +173,6 @@ + numeric.append(if joins { numeric[i - 1] } else { e == NU || ((e == SY || e == IS) && i > 0 && numeric[i - 1]) }) + ri.append(if joins { ri[i - 1] } else if e == RI { (if i > 0 { ri[i - 1] } else { 0 }) + 1 } else { 0 }) + } +- let t = Text { codes: codes, cls: cls, eff: eff, joined: joined, start: start, nonspace: nonspace, numeric: numeric, ri: ri, +- at: at } +- let out: list of i64 = [0] # LB2 +- for i in 1 .. codes.count { out.append(i64(decide(t, i))) } +- if codes.count > 0 { out.append(2) } # LB3 ++ let out: list of i64 = [0] + breaks = bytes(out) + } -- cgit v1.2.3