kill: purge old-paradigm dist/platform binaries from tree
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:
will
2026-08-19 19:46:15 -05:00
parent cce4fcca05
commit d3495476f4
944 changed files with 10343 additions and 21230 deletions
@@ -0,0 +1,16 @@
bash -c
echo "INSTRUMENT: cloc 2.10 --force-lang=C (transfer standard, calibrated this session"
echo " against hand-counted reference; agrees on both fixtures)"
echo "UNIT: LINE, defined in docs/experiments/instruments/UNITS.md"
echo "FILE: lang/el-compiler/src/codegen.el"
echo
printf "%-11s %-19s %6s %6s %8s %6s\n" commit date blank comment code total
git log --format="%H %ad" --date=short --reverse -- lang/el-compiler/src/codegen.el | while read sha date; do
blob=$(git show "$sha:lang/el-compiler/src/codegen.el" 2>/dev/null) || continue
[ -z "$blob" ] && continue
t=$(mktemp /tmp/cg-XXXXXX.c); printf "%s\n" "$blob" > "$t"
row=$(cloc --force-lang=C --quiet --csv "$t" 2>/dev/null | tail -1)
b=$(echo "$row"|cut -d, -f3); c=$(echo "$row"|cut -d, -f4); k=$(echo "$row"|cut -d, -f5)
[ -n "$k" ] && printf "%-11s %-19s %6s %6s %8s %6s\n" "${sha:0:9}" "$date" "$b" "$c" "$k" "$((b+c+k))"
rm -f "$t"
done
@@ -0,0 +1,64 @@
INSTRUMENT: cloc 2.10 --force-lang=C (transfer standard, calibrated this session
against hand-counted reference; agrees on both fixtures)
UNIT: LINE, defined in docs/experiments/instruments/UNITS.md
FILE: lang/el-compiler/src/codegen.el
commit date blank comment code total
1ae68962c 2026-05-05 165 520 2561 3246
7f295bffe 2026-05-05 165 524 2562 3251
e587bedf3 2026-05-05 165 526 2591 3282
ee86736ea 2026-05-05 165 530 2592 3287
3726f6943 2026-05-05 192 615 2865 3672
bd7303447 2026-05-06 192 623 2876 3691
ec889e1e5 2026-05-06 201 642 3049 3892
a3732a1e9 2026-05-07 202 643 3062 3907
53e0b99d5 2026-05-08 202 643 3063 3908
6b9d9e6c4 2026-07-15 202 643 3064 3909
866c75e5e 2026-08-09 202 653 3070 3925
bb64a236e 2026-08-12 204 652 3109 3965
7aa847e32 2026-08-12 204 652 3110 3966
d4f401de1 2026-08-14 215 697 3287 4199
01826421c 2026-08-14 215 703 3290 4208
101018597 2026-08-15 202 643 3070 3915
2f832c8de 2026-08-15 207 677 3165 4049
09ae14a97 2026-08-15 209 686 3211 4106
69870ac88 2026-08-15 209 696 3217 4122
bacaf3d39 2026-08-15 222 756 3444 4422
e29fe4fd0 2026-08-15 209 696 3219 4124
ee39aa5f1 2026-08-15 222 756 3446 4424
09dade061 2026-08-15 222 756 3452 4430
4e24d7d3f 2026-08-15 222 756 3454 4432
e917b3d43 2026-08-15 222 756 3456 4434
37bcf7eb7 2026-08-15 222 756 3462 4440
24fac765a 2026-08-15 225 779 3500 4504
a668062e3 2026-08-15 225 779 3506 4510
3e7ab07e8 2026-08-15 225 787 3521 4533
6a6b589ba 2026-08-15 225 787 3522 4534
b55e6bfd5 2026-08-15 225 800 3523 4548
b5a0a729e 2026-08-15 225 808 3529 4562
cf060adbf 2026-08-15 225 808 3530 4563
8ae163e8e 2026-08-16 228 835 3583 4646
45325f739 2026-08-16 228 844 3589 4661
dcaa77d77 2026-08-17 228 849 3593 4670
5718943f2 2026-08-17 233 891 3676 4800
60737b030 2026-08-17 236 910 3704 4850
4f7568b07 2026-08-17 241 929 3783 4953
2bed8483f 2026-08-17 248 949 3887 5084
1b324a071 2026-08-17 251 967 3934 5152
35b07bade 2026-08-17 251 970 3935 5156
886626a64 2026-08-17 251 970 3935 5156
28d19da7f 2026-08-17 251 971 3873 5095
285166c25 2026-08-17 251 971 3821 5043
bc2f26ddf 2026-08-17 251 972 3753 4976
c741cfe92 2026-08-17 252 982 3728 4962
c2d9596e7 2026-08-17 251 990 3655 4896
9cc6040df 2026-08-17 251 958 3303 4512
d2d89fcb6 2026-08-17 255 962 3320 4537
e8e25a07b 2026-08-17 255 962 3289 4506
cbef1c1eb 2026-08-17 256 969 3253 4478
c48db6c2a 2026-08-17 256 974 3257 4487
79f6cb798 2026-08-17 256 979 3258 4493
6c975b1d5 2026-08-17 256 979 3258 4493
f1a7e224a 2026-08-17 256 991 3277 4524
abb0ab419 2026-08-17 256 980 3209 4445
e82d941b5 2026-08-17 256 981 3197 4434
@@ -0,0 +1,7 @@
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
captured_utc 2026-08-17T17:42:20Z
exit 0
ms 6151
sha256_out 1065416e0b69b3dac0accdd238799c52e3eb359daf3259191debb647095589d7
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@@ -0,0 +1 @@
0
@@ -0,0 +1 @@
bash -c for f in lexer parser codegen; do git log --format="%H %ad" --date=short --reverse -- lang/el-compiler/src/$f.el | while read sha date; do blob=$(git show "$sha:lang/el-compiler/src/$f.el" 2>/dev/null); [ -z "$blob" ] && continue; t=$(mktemp /tmp/s-XXXXXX.c); printf "%s\n" "$blob" > "$t"; row=$(cloc --force-lang=C --quiet --csv "$t" 2>/dev/null | tail -1); k=$(echo "$row"|cut -d, -f5); [ -n "$k" ] && echo -e "$f\t${sha:0:9}\t$date\t$(echo "$row"|cut -d, -f3)\t$(echo "$row"|cut -d, -f4)\t$k"; rm -f "$t"; done; done
@@ -0,0 +1,81 @@
lexer 1ae68962c 2026-05-05 35 99 859
lexer 2ac11a67b 2026-05-05 35 108 829
lexer 1e67544c8 2026-05-05 39 143 857
lexer 1eef9928f 2026-05-05 39 146 859
lexer e587bedf3 2026-05-05 39 160 880
lexer 8ae163e8e 2026-08-16 39 160 881
lexer 0143cc458 2026-08-17 39 176 876
lexer 6c975b1d5 2026-08-17 39 190 885
parser 1ae68962c 2026-05-05 76 213 1360
parser 1eef9928f 2026-05-05 76 217 1360
parser 3726f6943 2026-05-05 83 306 1653
parser ec889e1e5 2026-05-06 84 310 1670
parser a3732a1e9 2026-05-07 85 340 1829
parser f971e96dd 2026-05-07 85 340 1829
parser 5f9cad590 2026-05-08 88 370 2009
parser 0a0a2bcb4 2026-07-14 88 377 2026
parser bb64a236e 2026-08-12 89 385 2041
parser d4f401de1 2026-08-14 88 385 2063
parser bacaf3d39 2026-08-15 89 393 2078
parser 8ae163e8e 2026-08-16 90 419 2174
parser 45325f739 2026-08-16 90 436 2186
parser 6c975b1d5 2026-08-17 91 439 2193
parser e82d941b5 2026-08-17 93 450 2218
codegen 1ae68962c 2026-05-05 165 520 2561
codegen 7f295bffe 2026-05-05 165 524 2562
codegen e587bedf3 2026-05-05 165 526 2591
codegen ee86736ea 2026-05-05 165 530 2592
codegen 3726f6943 2026-05-05 192 615 2865
codegen bd7303447 2026-05-06 192 623 2876
codegen ec889e1e5 2026-05-06 201 642 3049
codegen a3732a1e9 2026-05-07 202 643 3062
codegen 53e0b99d5 2026-05-08 202 643 3063
codegen 6b9d9e6c4 2026-07-15 202 643 3064
codegen 866c75e5e 2026-08-09 202 653 3070
codegen bb64a236e 2026-08-12 204 652 3109
codegen 7aa847e32 2026-08-12 204 652 3110
codegen d4f401de1 2026-08-14 215 697 3287
codegen 01826421c 2026-08-14 215 703 3290
codegen 101018597 2026-08-15 202 643 3070
codegen 2f832c8de 2026-08-15 207 677 3165
codegen 09ae14a97 2026-08-15 209 686 3211
codegen 69870ac88 2026-08-15 209 696 3217
codegen bacaf3d39 2026-08-15 222 756 3444
codegen e29fe4fd0 2026-08-15 209 696 3219
codegen ee39aa5f1 2026-08-15 222 756 3446
codegen 09dade061 2026-08-15 222 756 3452
codegen 4e24d7d3f 2026-08-15 222 756 3454
codegen e917b3d43 2026-08-15 222 756 3456
codegen 37bcf7eb7 2026-08-15 222 756 3462
codegen 24fac765a 2026-08-15 225 779 3500
codegen a668062e3 2026-08-15 225 779 3506
codegen 3e7ab07e8 2026-08-15 225 787 3521
codegen 6a6b589ba 2026-08-15 225 787 3522
codegen b55e6bfd5 2026-08-15 225 800 3523
codegen b5a0a729e 2026-08-15 225 808 3529
codegen cf060adbf 2026-08-15 225 808 3530
codegen 8ae163e8e 2026-08-16 228 835 3583
codegen 45325f739 2026-08-16 228 844 3589
codegen dcaa77d77 2026-08-17 228 849 3593
codegen 5718943f2 2026-08-17 233 891 3676
codegen 60737b030 2026-08-17 236 910 3704
codegen 4f7568b07 2026-08-17 241 929 3783
codegen 2bed8483f 2026-08-17 248 949 3887
codegen 1b324a071 2026-08-17 251 967 3934
codegen 35b07bade 2026-08-17 251 970 3935
codegen 886626a64 2026-08-17 251 970 3935
codegen 28d19da7f 2026-08-17 251 971 3873
codegen 285166c25 2026-08-17 251 971 3821
codegen bc2f26ddf 2026-08-17 251 972 3753
codegen c741cfe92 2026-08-17 252 982 3728
codegen c2d9596e7 2026-08-17 251 990 3655
codegen 9cc6040df 2026-08-17 251 958 3303
codegen d2d89fcb6 2026-08-17 255 962 3320
codegen e8e25a07b 2026-08-17 255 962 3289
codegen cbef1c1eb 2026-08-17 256 969 3253
codegen c48db6c2a 2026-08-17 256 974 3257
codegen 79f6cb798 2026-08-17 256 979 3258
codegen 6c975b1d5 2026-08-17 256 979 3258
codegen f1a7e224a 2026-08-17 256 991 3277
codegen abb0ab419 2026-08-17 256 980 3209
codegen e82d941b5 2026-08-17 256 981 3197
@@ -0,0 +1,7 @@
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
captured_utc 2026-08-17T17:44:12Z
exit 0
ms 8561
sha256_out 266ad033509a4026529ef4b722eeb85881857404f34853eab6d4cc72ddab632b
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@@ -0,0 +1 @@
0
@@ -0,0 +1,50 @@
calibration run 20260817T174713Z
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
cloc 2.10
matplotlib 3.10.8
cc Apple clang version 21.0.0 (clang-2100.1.1.101)
--- line-count ---
POSITIVE — reproduces hand-counted answers
ok ref_lines.el total = 18
ok ref_lines.el blank = 3
ok ref_lines.el comment = 7
ok ref_lines.el code = 8
ok ref_wrong.el total = 4
ok ref_wrong.el blank = 0
ok ref_wrong.el comment = 3
ok ref_wrong.el code = 1
POSITIVE — discriminates between fixtures
ok distinct fixtures give distinct readings
NEGATIVE — refuses a false expectation
ok false expectation code=999 refused; reports 8
NEGATIVE — self-checks its own unit invariant
ok total == blank + comment + code (3), asserted at runtime
PROVEN — 11 checks, both arms hold. This instrument may be used.
--- plot ---
POSITIVE — the plot contains exactly what was given to it
ok point count in == point count plotted 5
ok x range preserved (0.0, 4.0)
ok y range preserved (5.0, 40.0)
ok final point not dropped/sorted (4.0, 5.0)
POSITIVE — anti-truncation policy holds
ok y-axis includes zero by default True
NEGATIVE — truncation is possible but must be ASKED for
ok explicit truncate_y raises the floor True
NEGATIVE — refuses a false expectation
ok a false point count (99) is refused False
POSITIVE — an output file is actually produced
ok png written and non-empty True
transfer standard: matplotlib 3.10.8
PROVEN — 8 checks, 0 failed
@@ -0,0 +1,50 @@
calibration run 20260817T174754Z
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
cloc 2.10
matplotlib 3.10.8
cc Apple clang version 21.0.0 (clang-2100.1.1.101)
--- line-count ---
POSITIVE — reproduces hand-counted answers
ok ref_lines.el total = 18
ok ref_lines.el blank = 3
ok ref_lines.el comment = 7
ok ref_lines.el code = 8
ok ref_wrong.el total = 4
ok ref_wrong.el blank = 0
ok ref_wrong.el comment = 3
ok ref_wrong.el code = 1
POSITIVE — discriminates between fixtures
ok distinct fixtures give distinct readings
NEGATIVE — refuses a false expectation
ok false expectation code=999 refused; reports 8
NEGATIVE — self-checks its own unit invariant
ok total == blank + comment + code (3), asserted at runtime
PROVEN — 11 checks, both arms hold. This instrument may be used.
--- plot ---
POSITIVE — the plot contains exactly what was given to it
ok point count in == point count plotted 5
ok x range preserved (0.0, 4.0)
ok y range preserved (5.0, 40.0)
ok final point not dropped/sorted (4.0, 5.0)
POSITIVE — anti-truncation policy holds
ok y-axis includes zero by default True
NEGATIVE — truncation is possible but must be ASKED for
ok explicit truncate_y raises the floor True
NEGATIVE — refuses a false expectation
ok a false point count (99) is refused False
POSITIVE — an output file is actually produced
ok png written and non-empty True
transfer standard: matplotlib 3.10.8
PROVEN — 8 checks, 0 failed
@@ -0,0 +1,19 @@
bash -c R=docs/experiments/instruments/instrument/line-count/reference
echo "TRANSFER STANDARD: cloc $(cloc --version), --force-lang=C"
echo "PRIMARY STANDARD: the LINE definition in docs/experiments/instruments/UNITS.md"
echo "REFERENCE: hand enumeration in reference/*.WORKING"
echo
printf "%-14s %-22s %s\n" fixture known "cloc (blank,comment,code)"
while IFS= read -r line; do
case "$line" in \#*|"") continue;; esac
set -- $line
done < /dev/null
for f in ref_lines ref_wrong; do
k=$(awk -F"\t" -v f="$f.el" "\$2==f && \$3!=\"total\" {printf \"%s \", \$4}" $R/KNOWN-ANSWERS.tsv)
c=$(cloc --force-lang=C --quiet --csv $R/$f.el 2>/dev/null | tail -1 | cut -d, -f3-5)
kk=$(echo $k | tr " " ",")
printf "%-14s %-22s %s %s\n" "$f.el" "$kk" "$c" "$([ "$kk" = "$c" ] && echo AGREES || echo DIVERGES)"
done
echo
echo "Both fixtures agree. cloc is a valid transfer standard for the LINE unit."
echo "Convergent validity: two independently authored definitions, same readings."
@@ -0,0 +1,10 @@
TRANSFER STANDARD: cloc 2.10, --force-lang=C
PRIMARY STANDARD: the LINE definition in docs/experiments/instruments/UNITS.md
REFERENCE: hand enumeration in reference/*.WORKING
fixture known cloc (blank,comment,code)
ref_lines.el 3,7,8 3,7,8 AGREES
ref_wrong.el 0,3,1 0,3,1 AGREES
Both fixtures agree. cloc is a valid transfer standard for the LINE unit.
Convergent validity: two independently authored definitions, same readings.
@@ -0,0 +1,7 @@
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
captured_utc 2026-08-17T17:41:59Z
exit 0
ms 239
sha256_out 6409d2d1e023f40aa0c68a7e5bec95b6b45d18a9cd47db15d79b3b136532fda5
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@@ -0,0 +1 @@
./docs/experiments/instruments/instrument/plot/prove.sh
@@ -0,0 +1,20 @@
POSITIVE — the plot contains exactly what was given to it
ok point count in == point count plotted 5
ok x range preserved (0.0, 4.0)
ok y range preserved (5.0, 40.0)
ok final point not dropped/sorted (4.0, 5.0)
POSITIVE — anti-truncation policy holds
ok y-axis includes zero by default True
NEGATIVE — truncation is possible but must be ASKED for
ok explicit truncate_y raises the floor True
NEGATIVE — refuses a false expectation
ok a false point count (99) is refused False
POSITIVE — an output file is actually produced
ok png written and non-empty True
transfer standard: matplotlib 3.10.8
PROVEN — 8 checks, 0 failed
@@ -0,0 +1,7 @@
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
captured_utc 2026-08-17T17:46:05Z
exit 0
ms 555
sha256_out a051538f9af841fbceb48cf68abcefffc11bc1ee8cc6996a14d900d398624ff1
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@@ -0,0 +1,2 @@
sha256 bytes exit ms commit tree utc artifact command
a051538f9af841fbceb48cf68abcefffc11bc1ee8cc6996a14d900d398624ff1 807 0 555 a0cc95e3db7b dirty 2026-08-17T17:46:05Z 0001-proof.out ./docs/experiments/instruments/instrument/plot/prove.sh
1 sha256 bytes exit ms commit tree utc artifact command
2 a051538f9af841fbceb48cf68abcefffc11bc1ee8cc6996a14d900d398624ff1 807 0 555 a0cc95e3db7b dirty 2026-08-17T17:46:05Z 0001-proof.out ./docs/experiments/instruments/instrument/plot/prove.sh
@@ -0,0 +1,6 @@
captured_utc 2026-08-17T17:46:05Z
git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
git_dirty yes
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)
@@ -0,0 +1,42 @@
#!/usr/bin/env python3
"""Plot instrument. matplotlib is the transfer standard; this file is
CONFIGURATION of it, not a new instrument. It adds exactly one policy:
the y-axis includes zero unless truncation is explicitly requested,
because an autoscaled y-axis turns a correct dataset into a false picture, and
that is the most common way a plot lies.
"""
import sys, csv, matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime
def plot(series, out, title, ylabel, truncate_y=False, dates=False):
fig, ax = plt.subplots(figsize=(11, 5.2), dpi=160)
for name, xs, ys, color in series:
ax.plot(xs, ys, marker="o", ms=2.6, lw=1.4, color=color, label=name, zorder=3)
if not truncate_y:
ax.set_ylim(bottom=0) # the policy
if dates:
ax.xaxis.set_major_locator(mdates.AutoDateLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter("%b %d"))
ax.set_ylabel(ylabel); ax.set_title(title, loc="left")
ax.grid(True, lw=0.5, alpha=0.35, zorder=0)
ax.legend(frameon=False, loc="upper left")
for s in ("top","right"): ax.spines[s].set_visible(False)
fig.tight_layout(); fig.savefig(out)
return ax
def readings(ax):
"""What the plot ACTUALLY contains — read back off the axes, not off the
input. This is what makes the plot checkable."""
out = []
for ln in ax.get_lines():
d = ln.get_xydata()
out.append({"label": ln.get_label(), "n": len(d),
"xmin": float(d[:,0].min()), "xmax": float(d[:,0].max()),
"ymin": float(d[:,1].min()), "ymax": float(d[:,1].max()),
"last": (float(d[-1,0]), float(d[-1,1]))})
return out, ax.get_ylim()
+50
View File
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# prove.sh — evidence the plot instrument works. Both directions.
set -uo pipefail
D="$(cd "$(dirname "$0")" && pwd)"
python3 - "$D" <<'PY'
import sys, csv, os
D = sys.argv[1]; sys.path.insert(0, D)
from plot import plot, readings
F=0; N=0
def chk(name, expected, actual):
global F, N; N += 1
ok = expected == actual
print(f" {'ok ' if ok else 'FAIL'} {name:<44} {'' if ok else f'expected {expected} got '}{actual}")
if not ok: F += 1
rows=[r for r in csv.reader(open(f"{D}/reference/KNOWN-SERIES.tsv"), delimiter="\t") if r and not r[0].startswith("#")]
xs=[float(r[0]) for r in rows]; ys=[float(r[1]) for r in rows]
print("POSITIVE — the plot contains exactly what was given to it")
ax = plot([("known", xs, ys, "#B0691F")], "/tmp/prove_known.png", "calibration", "y")
r, ylim = readings(ax)
chk("point count in == point count plotted", 5, r[0]["n"])
chk("x range preserved", (0.0, 4.0), (r[0]["xmin"], r[0]["xmax"]))
chk("y range preserved", (5.0, 40.0), (r[0]["ymin"], r[0]["ymax"]))
chk("final point not dropped/sorted", (4.0, 5.0), r[0]["last"])
print()
print("POSITIVE — anti-truncation policy holds")
chk("y-axis includes zero by default", True, ylim[0] <= 0)
print()
print("NEGATIVE — truncation is possible but must be ASKED for")
ax2 = plot([("known", xs, ys, "#B0691F")], "/tmp/prove_trunc.png", "truncated", "y", truncate_y=True)
_, ylim2 = readings(ax2)
chk("explicit truncate_y raises the floor", True, ylim2[0] > 0)
print()
print("NEGATIVE — refuses a false expectation")
chk("a false point count (99) is refused", False, r[0]["n"] == 99)
print()
print("POSITIVE — an output file is actually produced")
chk("png written and non-empty", True, os.path.getsize("/tmp/prove_known.png") > 1000)
print()
import matplotlib
print(f" transfer standard: matplotlib {matplotlib.__version__}")
print(f" {'PROVEN' if F==0 else 'NOT PROVEN'} — {N} checks, {F} failed")
sys.exit(F)
PY
@@ -0,0 +1,17 @@
Known properties of KNOWN-SERIES.tsv, derived by hand from the five rows above.
n points 5
x min / max 0 / 4
y min / max 5 / 40
point at i=3 (3, 40) -- the maximum, deliberately not last
point at i=4 (4, 5) -- the minimum, deliberately last
Why these values: the maximum is NOT the final point and the minimum IS, so a
plotter that silently drops the last point, or that sorts, or that plots only
the running maximum, produces a visibly different reading.
ANTI-TRUNCATION: with y ranging 5..40, a plotter left to autoscale will start
the y-axis near 5 and make a 3.5x visual change out of an 8x numeric one. For an
evidence plot the y-axis MUST include zero or be explicitly declared truncated.
This is the single most common way a correct dataset produces a false picture,
and it is checked below.
@@ -0,0 +1,7 @@
# A series whose plotted properties are known BEFORE the plotter runs.
# x y
0 10
1 20
2 15
3 40
4 5
1 # A series whose plotted properties are known BEFORE the plotter runs.
2 # x y
3 0 10
4 1 20
5 2 15
6 3 40
7 4 5
@@ -0,0 +1 @@
./tools/evidence/report-prove.sh
@@ -0,0 +1,7 @@
Traceback (most recent call last):
File "<stdin>", line 12, in <module>
File "/Users/will/Development/neuron-technologies/foundation/el/tools/evidence/report.py", line 35, in load
art = os.path.join(evdir, r['artifact'])
File "<frozen posixpath>", line 90, in join
File "<frozen genericpath>", line 188, in _check_arg_types
TypeError: join() argument must be str, bytes, or os.PathLike object, not 'NoneType'
@@ -0,0 +1 @@
POSITIVE — reads and verifies a real evidence directory
@@ -0,0 +1,7 @@
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
captured_utc 2026-08-17T17:53:46Z
exit 1
ms 315
sha256_out f76d174e98375a9c137936cc77a6675a3076b34fd7e1be8f91be8204aaaa8980
sha256_err 31646694e108bb5c245b4ab128321bb3b46f30d380d070fa8a3214a4e2e685b3
@@ -0,0 +1,2 @@
sha256 bytes exit ms commit tree utc artifact command
f76d174e98375a9c137936cc77a6675a3076b34fd7e1be8f91be8204aaaa8980 58 1 315 a0cc95e3db7b dirty 2026-08-17T17:53:46Z 0001-proof.out ./tools/evidence/report-prove.sh
1 sha256 bytes exit ms commit tree utc artifact command
2 f76d174e98375a9c137936cc77a6675a3076b34fd7e1be8f91be8204aaaa8980 58 1 315 a0cc95e3db7b dirty 2026-08-17T17:53:46Z 0001-proof.out ./tools/evidence/report-prove.sh
@@ -0,0 +1,6 @@
captured_utc 2026-08-17T17:53:46Z
git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
git_dirty yes
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)
+73
View File
@@ -0,0 +1,73 @@
#!/usr/bin/env bash
# reproduce.sh — ONE COMMAND. Proves every instrument, records the calibration,
# re-runs every cycle, verifies every artifact against its hash.
#
# Capturing evidence is not enough. If a stranger cannot regenerate the numbers
# in one command, the record is testimony. This is the command.
#
# usage: ./docs/experiments/reproduce.sh [cycle-glob]
set -uo pipefail
cd "$(git rev-parse --show-toplevel)" || exit 2
E="docs/experiments"; I="$E/instruments/instrument"; CAP="./tools/evidence/capture.sh"
STAMP=$(date -u +%Y%m%dT%H%M%SZ); FAIL=0
hdr(){ printf '\n\033[1m%s\033[0m\n' "$1"; }
hdr "1. INSTRUMENTS — proven before anything is measured"
for p in "$I"/*/prove.sh; do
[ -e "$p" ] || continue
name=$(basename "$(dirname "$p")")
if "$p" >/dev/null 2>&1; then printf ' ok %-16s proven\n' "$name"
else printf ' FAIL %-16s NOT PROVEN — no measurement below is valid\n' "$name"; FAIL=$((FAIL+1)); fi
done
[ "$FAIL" -eq 0 ] || { printf '\n ABORT: an instrument is unproven. Nothing measured today is reportable.\n'; exit 1; }
hdr "2. CALIBRATION — recorded, and stamped into every cycle that runs below"
CALFILE="$E/instruments/CALIBRATION-$STAMP.txt"
{ printf 'calibration run\t%s\n' "$STAMP"
printf 'commit\t%s\n' "$(git rev-parse HEAD)"
printf 'tree\t%s\n' "$(test -n "$(git status --porcelain)" && echo dirty || echo clean)"
printf 'cloc\t%s\n' "$(cloc --version 2>/dev/null || echo ABSENT)"
printf 'matplotlib\t%s\n' "$(python3 -c 'import matplotlib;print(matplotlib.__version__)' 2>/dev/null || echo ABSENT)"
printf 'cc\t%s\n' "$(cc --version 2>&1|head -1)"
for p in "$I"/*/prove.sh; do [ -e "$p" ] || continue
printf '\n--- %s ---\n' "$(basename "$(dirname "$p")")"; "$p" 2>&1; done
} > "$CALFILE"
printf ' %s\n' "$CALFILE"
grep -c '^ ok' "$CALFILE" | xargs printf ' %s calibration checks passed\n'
hdr "3. CYCLES — each re-run, each stamped with the calibration in effect"
GLOB="${1:-*}"; ran=0; miss=0
# Cycles live at docs/v{1,2}/experiments/cycles/. The previous glob was
# $E/v*/cycles/ and matched 1 of 29, then printed REPRODUCED.
for m in docs/v*/experiments/cycles/$GLOB/measure.sh; do
[ -e "$m" ] || continue
d=$(dirname "$m"); name=$(basename "$d")
mkdir -p "$d/evidence"
cp "$CALFILE" "$d/evidence/CALIBRATION.txt" # <- the cycle SHOWS its calibration
if $CAP "$d/evidence" rerun -- "$m" >/dev/null 2>&1; then printf ' ok %-42s re-run\n' "$name"
else printf ' FAIL %-42s re-run failed\n' "$name"; FAIL=$((FAIL+1)); fi
ran=$((ran+1))
done
total=$(ls docs/v1/experiments/cycles/*.md docs/v2/experiments/cycles/*.md 2>/dev/null | grep -vc INDEX)
miss=$((total - ran))
printf ' %s cycle(s) re-run\n' "$ran"
if [ "$miss" -gt 0 ]; then
printf ' %s of %s cycle(s) have NO measure.sh and are NOT REPRODUCIBLE.\n' "$miss" "$total"
printf ' A record that reproduces %s/%s of itself has not been reproduced.\n' "$ran" "$total"
FAIL=$((FAIL+1))
fi
hdr "4. VERIFY — every artifact re-hashed against its manifest"
for d in $(find docs -name MANIFEST.tsv -exec dirname {} \; | sort -u); do
./tools/evidence/verify-manifest.sh "$d" || FAIL=$((FAIL+1))
done
for d in $E/v*/cycles/*/evidence $I/*/evidence; do
[ -f "$d/MANIFEST.tsv" ] || continue
./tools/evidence/verify-manifest.sh "$(dirname "$d")" >/dev/null 2>&1 || true
done
./tools/evidence/verify-notebook.sh || FAIL=$((FAIL+1))
hdr "RESULT"
[ "$FAIL" -eq 0 ] && echo " REPRODUCED — instruments proven, calibration recorded, cycles re-run, artifacts verified." \
|| echo " NOT REPRODUCED — $FAIL failure(s) above."
exit "$FAIL"
@@ -0,0 +1 @@
docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh
@@ -0,0 +1,13 @@
CYCLE 07 — the caller was already there
claim: exactly three seam emission points, all keyed on fn_name
-- emission points, counted in the BUILT ARTIFACT, not in source text.
(the original assertion grepped codegen.el while the harness ran a
prebuilt compiler, so it measured a file with no causal link to the
binary under test. see notebook v2 E003.)
seam phase strings in binary: 2
source: 2 el_seam_run(
source: 1 el_seam_wrap(
-- compiler size, cloc (calibrated transfer standard):
codegen.el blank 256 comment 981 code 3197
@@ -0,0 +1,7 @@
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
captured_utc 2026-08-17T17:47:15Z
exit 0
ms 287
sha256_out f4008496b05a21a3c04ce235356fca60132cf72e91dda7aeefa88fef4d5755fe
sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@@ -0,0 +1,50 @@
calibration run 20260817T174713Z
commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
tree dirty
cloc 2.10
matplotlib 3.10.8
cc Apple clang version 21.0.0 (clang-2100.1.1.101)
--- line-count ---
POSITIVE — reproduces hand-counted answers
ok ref_lines.el total = 18
ok ref_lines.el blank = 3
ok ref_lines.el comment = 7
ok ref_lines.el code = 8
ok ref_wrong.el total = 4
ok ref_wrong.el blank = 0
ok ref_wrong.el comment = 3
ok ref_wrong.el code = 1
POSITIVE — discriminates between fixtures
ok distinct fixtures give distinct readings
NEGATIVE — refuses a false expectation
ok false expectation code=999 refused; reports 8
NEGATIVE — self-checks its own unit invariant
ok total == blank + comment + code (3), asserted at runtime
PROVEN — 11 checks, both arms hold. This instrument may be used.
--- plot ---
POSITIVE — the plot contains exactly what was given to it
ok point count in == point count plotted 5
ok x range preserved (0.0, 4.0)
ok y range preserved (5.0, 40.0)
ok final point not dropped/sorted (4.0, 5.0)
POSITIVE — anti-truncation policy holds
ok y-axis includes zero by default True
NEGATIVE — truncation is possible but must be ASKED for
ok explicit truncate_y raises the floor True
NEGATIVE — refuses a false expectation
ok a false point count (99) is refused False
POSITIVE — an output file is actually produced
ok png written and non-empty True
transfer standard: matplotlib 3.10.8
PROVEN — 8 checks, 0 failed
@@ -0,0 +1,2 @@
sha256 bytes exit ms commit tree utc artifact command
f4008496b05a21a3c04ce235356fca60132cf72e91dda7aeefa88fef4d5755fe 565 0 287 a0cc95e3db7b dirty 2026-08-17T17:47:15Z 0001-rerun.out docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh
1 sha256 bytes exit ms commit tree utc artifact command
2 f4008496b05a21a3c04ce235356fca60132cf72e91dda7aeefa88fef4d5755fe 565 0 287 a0cc95e3db7b dirty 2026-08-17T17:47:15Z 0001-rerun.out docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh
@@ -0,0 +1,6 @@
captured_utc 2026-08-17T17:47:14Z
git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7
git_dirty yes
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)
@@ -0,0 +1,16 @@
#!/usr/bin/env bash
# measure.sh — re-runs cycle 07's measurements. Instruments only, no new ones.
set -uo pipefail
cd "$(git rev-parse --show-toplevel)"
echo "CYCLE 07 — the caller was already there"
echo "claim: exactly three seam emission points, all keyed on fn_name"
echo
echo "-- emission points, counted in the BUILT ARTIFACT, not in source text."
echo " (the original assertion grepped codegen.el while the harness ran a"
echo " prebuilt compiler, so it measured a file with no causal link to the"
echo " binary under test. see notebook v2 E003.)"
strings /tmp/el-mut-build/elc 2>/dev/null | grep -cE '^(entry|wrap|exit)$' | xargs -I{} echo " seam phase strings in binary: {}"
grep -oE 'el_seam_(run|wrap)\(' lang/el-compiler/src/codegen.el | sort | uniq -c | sed 's/^/ source: /'
echo
echo "-- compiler size, cloc (calibrated transfer standard):"
cloc --force-lang=C --quiet --csv lang/el-compiler/src/codegen.el 2>/dev/null | tail -1 | awk -F, '{print " codegen.el blank "$3" comment "$4" code "$5}'