From 6934a0e889f55f28f6933722ca8ac176b5d77184 Mon Sep 17 00:00:00 2001 From: Neuron Date: Sun, 9 Aug 2026 13:56:11 -0500 Subject: [PATCH] chore: the compiler is a build input too, and regenerate under the fixed elc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Installing the fixed compiler exposed a blind spot in this gate. On clean main, with no source changed, soulc-stamp reported OK while the committed amalgam had gone stale by a line — because the fingerprint covered .el sources and not the toolchain that turns them into dist/soul.c. That is exactly the class of silent divergence the gate was written to close, and it had it. The stamp now fingerprints the elc binary alongside the sources. Demonstrated: with the old stamp the gate passed after a compiler swap; with this change the same condition fails, naming __compiler__. dist/soul.c regenerated under the installed compiler (1,205,027 bytes) and verified: builds from its own committed input, the declared principal is present in the resulting binary, interface 110 routes in / 110 out. Differential evidence that the new compiler is a strict superset — same sources, both compilers: neuron soul 1 differing line, the el_cgi_init emission engram server.el 0 differing lines mcp-wrapper 0 differing lines mcp-proxy 0 differing lines Co-Authored-By: Claude Opus 5 (1M context) --- dist/soul.c | 1 + dist/soul.c.stamp | 5 +++-- tools/soulc-stamp.sh | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/dist/soul.c b/dist/soul.c index b3d28bd..d0d253f 100644 --- a/dist/soul.c +++ b/dist/soul.c @@ -31938,6 +31938,7 @@ el_val_t layered_cycle(el_val_t raw_input, el_val_t session_id, el_val_t utility int main(int _argc, char** _argv) { el_runtime_init_args(_argc, _argv); + el_cgi_init(EL_STR("neuron-soul"), EL_STR("ntn-genesis@http://localhost:7770"), EL_STR("william-christopher-anderson"), EL_STR("dharma-mainnet"), EL_STR("http://localhost:8742")); soul_cgi_id_raw = env(EL_STR("SOUL_CGI_ID")); soul_cgi_id = ({ el_val_t _if_result_821 = 0; if (str_eq(soul_cgi_id_raw, EL_STR(""))) { _if_result_821 = (EL_STR("ntn-genesis")); } else { _if_result_821 = (soul_cgi_id_raw); } _if_result_821; }); port_raw = env(EL_STR("NEURON_PORT")); diff --git a/dist/soul.c.stamp b/dist/soul.c.stamp index d2c7292..76623aa 100644 --- a/dist/soul.c.stamp +++ b/dist/soul.c.stamp @@ -1,7 +1,8 @@ # soul.c.stamp — fingerprint of the .el sources dist/soul.c was generated from. # Written by tools/soulc-stamp.sh --write. Do not hand-edit. -# generated_amalgam_sha256 ee09798ad93ddd047136577cf324483e5956984d60d06596d34662f315ee0df4 -# generated_amalgam_bytes 1204845 +# generated_amalgam_sha256 f251307717d40796a8909154fc7077d3343a0d30e20889b7e9d16f1c4308a888 +# generated_amalgam_bytes 1205027 +7cf5e29d2618db2fca04e6df7aa8954dd6cf9ac5e70aafb8e0b52aa734882131 __compiler__ f8597e10546654bce3fbbe40461b2da59d0e06dbf1b038d1d362d24f949e3911 awareness.el b6f3d14ca0c26017a2d617399a6d3754dabb0905e4d5f52eb75d25c4ad18d3c5 chat.el 42288c212cbf72fb1e8ecbd4d9900e4e9ee1cfa475b7974295c7637f1bf2939f elp-input.el diff --git a/tools/soulc-stamp.sh b/tools/soulc-stamp.sh index de83273..66a73e5 100755 --- a/tools/soulc-stamp.sh +++ b/tools/soulc-stamp.sh @@ -30,9 +30,19 @@ AMALGAM="$ROOT/dist/soul.c" # Every .el at the repo root is an input to the amalgam. Sorted so the hash is # order-independent; content-only so timestamps and checkouts do not perturb it. +# The COMPILER is an input too. Learned 2026-08-09 by installing a fixed elc and +# watching this gate report OK while the committed amalgam had gone stale by a line: +# the sources had not changed, so a source-only fingerprint could not see it. That is +# precisely the blind spot this gate exists to close, and it had it. fingerprint() { ( cd "$ROOT" || exit 1 + ELC_BIN="${ELC:-$HOME/neuron-dev-stack/src/el/lang/dist/platform/elc}" + if [ -f "$ELC_BIN" ]; then + printf '%s %s\n' "$(shasum -a 256 "$ELC_BIN" | awk '{print $1}')" "__compiler__" + else + printf '%s %s\n' "MISSING" "__compiler__" + fi for f in $(ls -1 *.el 2>/dev/null | sort); do printf '%s %s\n' "$(shasum -a 256 "$f" | awk '{print $1}')" "$f" done