This repository has been archived on 2026-08-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
el-retired/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07.sh
T
will d3495476f4
El SDK Release / build-and-release (push) Failing after 13m0s
kill: purge old-paradigm dist/platform binaries from tree
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.
2026-08-19 19:46:15 -05:00

52 lines
1.9 KiB
Bash

#!/usr/bin/env bash
# time07.sh — re-measure cycle 07 P3 ("cost 5-10% from an indirect call on every fn").
#
# The thing under test is the cost paid by code EMITTED by the new codegen, so
# both binaries must be gen3 (self-emitted by their own commit's compiler):
# /tmp/elc07pb = elc self-emitted at bc2f26d^ (b40754f) — wrapper calls the body DIRECTLY
# /tmp/elc07b = elc self-emitted at bc2f26d — wrapper calls through el_seam_wrap
# Both are given the SAME input (bc2f26d's lang/elc-cli.el, CWD = bc2f26d worktree),
# so the only difference is the emitted calling convention inside the binary.
# Runs are interleaved to spread any drift in machine load across both arms.
set -uo pipefail
N="${1:-11}"
cd /tmp/rerun-v1-07/lang || exit 1
run_one() { # $1 = binary ; prints elapsed seconds
local s e
s=$(python3 -c 'import time;print(time.perf_counter())')
"$1" elc-cli.el > /dev/null 2>&1
e=$(python3 -c 'import time;print(time.perf_counter())')
python3 -c "print(f'{$e-$s:.4f}')"
}
# warm the page cache for both
run_one /tmp/elc07pb > /dev/null; run_one /tmp/elc07b > /dev/null
P=(); C=()
for i in $(seq 1 "$N"); do
P+=("$(run_one /tmp/elc07pb)")
C+=("$(run_one /tmp/elc07b)")
done
echo "parent bc2f26d^ (direct call) samples: ${P[*]}"
echo "commit bc2f26d (el_seam_wrap) samples: ${C[*]}"
echo
python3 - "$N" "${P[@]}" "${C[@]}" <<'PY'
import sys, statistics
n=int(sys.argv[1]); v=[float(x) for x in sys.argv[2:]]
p,c=v[:n],v[n:]
def stats(x): return min(x), statistics.median(x), max(x)
pm,pmd,pmx=stats(p); cm,cmd,cmx=stats(c)
print(f"parent n={n} min={pm:.4f}s median={pmd:.4f}s max={pmx:.4f}s")
print(f"commit n={n} min={cm:.4f}s median={cmd:.4f}s max={cmx:.4f}s")
print()
print(f"ratio on min : {cm/pm:.4f} ({(cm/pm-1)*100:+.2f}%)")
print(f"ratio on median : {cmd/pmd:.4f} ({(cmd/pmd-1)*100:+.2f}%)")
PY
echo
echo "== machine =="
uname -a
sysctl -n machdep.cpu.brand_string 2>/dev/null
uptime