chore: the compiler is a build input too, and regenerate under the fixed elc
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) <noreply@anthropic.com>
This commit is contained in:
+1
@@ -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"));
|
||||
|
||||
+3
-2
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user