Archived
kill: purge old-paradigm dist/platform binaries from tree
El SDK Release / build-and-release (push) Failing after 13m0s
El SDK Release / build-and-release (push) Failing after 13m0s
The generated C, amalgams, vendored runtime pins, and compiled binaries from the Claude Code era are removed from the worktree. The El sources survive; this tree is now source-only for the first-principles rebuild. Per Principal direction 2026-08-19.
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
bash -c printf "fn main() {\n let sep: String = \"\037\"\n println(el_str_concat(\"a\", el_str_concat(sep, \"b\")))\n}\n" > /tmp/ctrl.el; echo "--- source bytes (note the raw 037 = 0x1F) ---"; od -c /tmp/ctrl.el | sed -n "2,3p"; echo "--- emitted run 1 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 2 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 3 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
--- source bytes (note the raw 037 = 0x1F) ---
|
||||
0000020 l e t s e p : S t r i n g
|
||||
0000040 = " 037 " \n p r i n t l
|
||||
--- emitted run 1 ---
|
||||
8: el_val_t sep = EL_STR("4344967392");
|
||||
--- emitted run 2 ---
|
||||
8: el_val_t sep = EL_STR("4347851136");
|
||||
--- emitted run 3 ---
|
||||
8: el_val_t sep = EL_STR("4384031472");
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
commit 9540f2399120172b92e986e081877ff058adbdd3
|
||||
tree clean
|
||||
captured_utc 2026-08-17T17:44:07Z
|
||||
exit 0
|
||||
ms 25
|
||||
sha256_out 4cce61f4529b6a536afcd74e324260321d05ffd78ead881a5d98c3a59fa8c2c0
|
||||
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
+1
@@ -0,0 +1 @@
|
||||
0
|
||||
+1
@@ -0,0 +1 @@
|
||||
bash -c printf "fn main() {\n let a: String = \"\"\n let b: String = \"ok\"\n let c: String = \"\037\"\n let d: String = \"\011\"\n println(el_str_concat(a, el_str_concat(b, el_str_concat(c, d))))\n}\n" > /tmp/ctrl2.el; /tmp/elcxc /tmp/ctrl2.el 2>/dev/null | grep -nE "el_val_t (a|b|c|d) ="
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
8: el_val_t a = EL_STR("");
|
||||
9: el_val_t b = EL_STR("ok");
|
||||
10: el_val_t c = EL_STR("4324455808");
|
||||
11: el_val_t d = EL_STR("\t");
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
commit 9540f2399120172b92e986e081877ff058adbdd3
|
||||
tree clean
|
||||
captured_utc 2026-08-17T17:44:07Z
|
||||
exit 0
|
||||
ms 13
|
||||
sha256_out 8b2a77870c944d8a686c4dac1f63fe40a5b3b7369f362f7b893053afde93621e
|
||||
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
+1
@@ -0,0 +1 @@
|
||||
0
|
||||
+1
@@ -0,0 +1 @@
|
||||
bash -c cd /tmp/rerun-v1-xc && /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/A.c 2>/dev/null; /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/B.c 2>/dev/null; shasum -a 256 /tmp/A.c /tmp/B.c; echo "--- diff ---"; diff /tmp/A.c /tmp/B.c | head -14; echo "--- source of the literal at El line 259 (cat -v) ---"; sed -n "259p" arbor/vessels/arbor-parse/src/main.el | cat -v
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
f623cf49c5b8dac9a08bc9487d707f7c8274a5256268d6a0d2ad710338ae014a /tmp/A.c
|
||||
ed89c2a0d976b1826a4ee98ad953a2ab3ea1f6cdb755df67eb95e267abc81f73 /tmp/B.c
|
||||
--- diff ---
|
||||
481c481
|
||||
< out = el_str_concat(out, EL_STR("33404397808"));
|
||||
---
|
||||
> out = el_str_concat(out, EL_STR("36759834384"));
|
||||
506c506
|
||||
< return str_split(s, EL_STR("33404400048"));
|
||||
---
|
||||
> return str_split(s, EL_STR("36759837600"));
|
||||
620c620
|
||||
< state_set(key, el_str_concat(el_str_concat(prev, EL_STR("33404413632")), node_id));
|
||||
---
|
||||
> state_set(key, el_str_concat(el_str_concat(prev, EL_STR("36759857760")), node_id));
|
||||
--- source of the literal at El line 259 (cat -v) ---
|
||||
if i > 0 { let out = out + "^_" }
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
commit 9540f2399120172b92e986e081877ff058adbdd3
|
||||
tree clean
|
||||
captured_utc 2026-08-17T17:44:07Z
|
||||
exit 0
|
||||
ms 41
|
||||
sha256_out efc70a381315d22d1d158cd98ee4b88cc3940a367ecb58d09ad9681b7ad9f05e
|
||||
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
+1
@@ -0,0 +1 @@
|
||||
0
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
# DEFECT — string literals containing control bytes compile to a heap address
|
||||
|
||||
Not a cycle claim. This is a **live miscompilation in the current compiler**, found
|
||||
incidentally during the cycle 01–10 evidence re-run and confirmed at branch HEAD.
|
||||
|
||||
It is filed with the evidence because it invalidates a *method* that cycles 01–04 rely
|
||||
on: "the emitted C is byte-identical" is only meaningful if the emitter is
|
||||
deterministic, and for affected inputs it is not.
|
||||
|
||||
## Provenance
|
||||
|
||||
Captured from a clean detached worktree at `9540f2399` (`iteration-2` HEAD), compiler
|
||||
built at that commit. All artifacts `tree=clean`.
|
||||
|
||||
Found by the cycle 04 agent while checking prediction 5 ("existing `@manager` output
|
||||
byte-identical") across the whole tree: of 378 `.el` files, 368 emitted identically
|
||||
under the parent and the commit compiler, 9 failed under both, and **1 differed — and
|
||||
differed from itself between two runs of the same compiler.** I reproduced it
|
||||
independently at HEAD before accepting it.
|
||||
|
||||
## The defect
|
||||
|
||||
A string literal containing a raw control byte with no escape mapping is emitted as a
|
||||
**decimal heap address** instead of the string.
|
||||
|
||||
`0002-control-char-vs-empty-and-printable.out` isolates it exactly:
|
||||
|
||||
```
|
||||
8: el_val_t a = EL_STR("");
|
||||
9: el_val_t b = EL_STR("ok");
|
||||
10: el_val_t c = EL_STR("4324455808"); <-- source literal is a raw 0x1F
|
||||
11: el_val_t d = EL_STR("\t");
|
||||
```
|
||||
|
||||
- empty literal `""` — correct
|
||||
- printable literal `"ok"` — correct
|
||||
- **raw `0x1F` (unit separator) — emitted as `4324455808`**
|
||||
- raw `0x09` (tab) — correct, `"\t"`
|
||||
|
||||
Tab has an escape mapping and survives. `0x1F` has none, and instead of being escaped
|
||||
it falls through to a path that stringifies a pointer.
|
||||
|
||||
## It is nondeterministic
|
||||
|
||||
`0001-minimal-reproducer-control-char-literal.out`, three consecutive runs of the
|
||||
**same** compiler on the **same** source:
|
||||
|
||||
```
|
||||
--- emitted run 1 --- el_val_t sep = EL_STR("4344967392");
|
||||
--- emitted run 2 --- el_val_t sep = EL_STR("4347851136");
|
||||
--- emitted run 3 --- el_val_t sep = EL_STR("4384031472");
|
||||
```
|
||||
|
||||
The value tracks the process heap base, which moves under ASLR.
|
||||
|
||||
## It occurs in real code in this repository
|
||||
|
||||
`0003-real-file-nondeterminism-arbor-parse.out`. `arbor/vessels/arbor-parse/src/main.el`
|
||||
uses `0x1F` as a field separator — El source line 259, shown through `cat -v`:
|
||||
|
||||
```
|
||||
if i > 0 { let out = out + "^_" }
|
||||
```
|
||||
|
||||
Two runs of the same compiler over that file produce different sha256, differing in
|
||||
three places, each a separator literal rendered as a different address. Within a single
|
||||
run the corrupted values differ by fixed offsets (`+2240`, `+32208`), consistent with
|
||||
distinct literals in one heap arena; across runs the whole block shifts.
|
||||
|
||||
The file applies **no decorators at all**, so this is unrelated to the construct work
|
||||
in cycles 01–10, and it reproduces at cycle 04's parent `4f7568b` as well as at HEAD.
|
||||
It predates the cycle series.
|
||||
|
||||
## Why it matters
|
||||
|
||||
1. **Silent miscompilation.** `arbor-parse` builds and links. At runtime it joins and
|
||||
splits records on a separator that is a decimal rendering of an address rather than
|
||||
`0x1F` — and the encode and decode sides get *different* values whenever they are
|
||||
compiled separately. No diagnostic is produced at any stage.
|
||||
2. **Reproducible builds are broken** for any source containing such a literal.
|
||||
3. **It weakens byte-identity as a control.** Cycles 01, 02, 03 and 04 all assert
|
||||
"emitted C is byte-identical". Those assertions were checked on decorator-bearing
|
||||
sources, which are unaffected — the cycle 04 agent verified all 3 `@manager`/
|
||||
`@accessor` files emit identically — so no cycle verdict changes. But the control
|
||||
itself is only sound on inputs that avoid this defect, and nothing in the record
|
||||
says so.
|
||||
|
||||
## Verdicts
|
||||
|
||||
| Claim | Artifact | Verdict |
|
||||
|---|---|---|
|
||||
| Control-byte literals emit as an address, not the string | `0002` | **CONFIRMED** |
|
||||
| The emitter is nondeterministic for such inputs | `0001` (3 runs) | **CONFIRMED** |
|
||||
| A real file in this repo is affected | `0003` | **CONFIRMED** |
|
||||
| The defect predates cycles 01–10 | cycle 04's `0049`-series (parent `4f7568b` shows it too) | **CONFIRMED** |
|
||||
|
||||
## Not fixed here
|
||||
|
||||
This evidence pass does not change code. The defect is recorded, reproduced, and
|
||||
minimally isolated so it can be fixed and regression-tested separately. A fix should
|
||||
escape all non-printable bytes in the literal emitter and add a test asserting that
|
||||
compiling the same source twice yields byte-identical output.
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
sha256 bytes exit ms commit tree utc artifact command
|
||||
4cce61f4529b6a536afcd74e324260321d05ffd78ead881a5d98c3a59fa8c2c0 382 0 25 9540f2399120 clean 2026-08-17T17:44:07Z 0001-minimal-reproducer-control-char-literal.out bash -c printf "fn main() {\n let sep: String = \"\037\"\n println(el_str_concat(\"a\", el_str_concat(sep, \"b\")))\n}\n" > /tmp/ctrl.el; echo "--- source bytes (note the raw 037 = 0x1F) ---"; od -c /tmp/ctrl.el | sed -n "2,3p"; echo "--- emitted run 1 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 2 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 3 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"
|
||||
8b2a77870c944d8a686c4dac1f63fe40a5b3b7369f362f7b893053afde93621e 132 0 13 9540f2399120 clean 2026-08-17T17:44:07Z 0002-control-char-vs-empty-and-printable.out bash -c printf "fn main() {\n let a: String = \"\"\n let b: String = \"ok\"\n let c: String = \"\037\"\n let d: String = \"\011\"\n println(el_str_concat(a, el_str_concat(b, el_str_concat(c, d))))\n}\n" > /tmp/ctrl2.el; /tmp/elcxc /tmp/ctrl2.el 2>/dev/null | grep -nE "el_val_t (a|b|c|d) ="
|
||||
efc70a381315d22d1d158cd98ee4b88cc3940a367ecb58d09ad9681b7ad9f05e 685 0 41 9540f2399120 clean 2026-08-17T17:44:07Z 0003-real-file-nondeterminism-arbor-parse.out bash -c cd /tmp/rerun-v1-xc && /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/A.c 2>/dev/null; /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/B.c 2>/dev/null; shasum -a 256 /tmp/A.c /tmp/B.c; echo "--- diff ---"; diff /tmp/A.c /tmp/B.c | head -14; echo "--- source of the literal at El line 259 (cat -v) ---"; sed -n "259p" arbor/vessels/arbor-parse/src/main.el | cat -v
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 179.
|
+6
@@ -0,0 +1,6 @@
|
||||
captured_utc 2026-08-17T17:44:07Z
|
||||
git_sha 9540f2399120172b92e986e081877ff058adbdd3
|
||||
git_dirty no
|
||||
host Wills-MacBook-Pro
|
||||
uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64
|
||||
cc Apple clang version 21.0.0 (clang-2100.1.1.101)
|
||||
Reference in New Issue
Block a user