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
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

5.3 KiB

CLAIMS — cycle 14, keywords that reserve nothing

Source doc: docs/v1/experiments/cycles/14-keywords-that-reserve-nothing.md

Pinned commits

role sha subject
parent / before-state 15d4352ba make the capability table match its own status note
experiment (system under test) 0143cc458ac158e808e074acab417d4f706d89d8 ANSWER: is a grammar a convention, or a region?
land (merge) 067dd40317bd880781b6035dd5bfba8c2f1b371d answer the parsing question: a grammar is a basis, and five keywords reserved nothing
current HEAD at re-run time a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 instrument build log

Verdicts

# claim artifact commit verdict
A1 the keyword set is 46 spellings 0001-keyword-count-at-15d4352.out 15d4352 REPRODUCED (exact)
A2 five of them are consumed by no parser or codegen path: sealed, activate, seed, protocol, impl 0001, 0010-five-tokens-consumed-nowhere.out 15d4352 REPRODUCED (exact)
A3 using one did not fail to parse: let seed = 42 / let impl = seed + 1 compiled CLEAN — zero cc errors 0004, 0006-pre-cc-zero-errors.out 15d4352 REPRODUCED (exact)
A4 …and printed 0 0007-pre-program-run.out 15d4352 REPRODUCED (exact)
A5 …"instead of 44" 0009-post-program-run.out 0143cc4 DIVERGED
A6 fixed by removing the five 0005-post-emit-c-inert-keywords.out, 0009 0143cc4 REPRODUCED
A7 measurement defect: test looked inert by the same measure and is not — codegen consumes it at 4135 for --test mode 0011-test-keyword-consumed-at-codegen-4135.out 0143cc4 REPRODUCED (exact, to the line)
A8 …and the tree has 408 uses 0014-test-word-count-at-pre.out 15d4352 REPRODUCED (exact)
A9 100/100 native + 2 new 0013-post-native-suite.out 0143cc4 REPRODUCED
A10 31/31 integration 0015-post-integration-harnesses.out 0143cc4 REPRODUCED (exact)
A11 fixpoint ok 0012-post-fixpoint.out 0143cc4 REPRODUCED
A12 the SHOULD gate says no: the keyword set stays code because it is closed by the language definition and the lexer runs before the program is understood NOT-CAPTURED (design argument)
A13 the lexeme→token / shape-recognition / transduction / byte-traversal layering NOT-CAPTURED (design argument)
A14 the defect at current HEAD 0016-head-inert-keyword-TODAY.out a0cc95e3 fixed — prints 43, exit 0

The second silent miscompilation of the day, reproduced exactly

Fixture fixtures/inert_keyword.el:

fn main() {
    let seed = 42
    let impl = seed + 1
    println(int_to_str(impl))
}

Emitted C at 15d4352 (0004):

el_val_t seed = 42;
el_val_t impl = (EL_NULL + 1);
println(int_to_str(EL_NULL));

The binding is emitted, but every use of seed and impl is swallowed — the lexer classified the identifier as a keyword, so the expression parser never saw an identifier and emitted EL_NULL. cc reports 0 errors (0006), the program exits 0, and prints 0 (0007).

At 0143cc4 (0005, 0009):

el_val_t seed = 42;
el_val_t impl = (seed + 1);
println(int_to_str(impl));

prints 43, exit 0.

A5 — the expected value is 43, not 44

The record says the program "printed 0 instead of 44". For let seed = 42 followed by let impl = seed + 1 the correct result is 43, and the repaired compiler prints 43 (0009, and again at HEAD, 0016). The 44 is an arithmetic slip in the prose.

Nothing else in the claim is affected: the defect, the clean compile, the printed 0, and the repair all reproduce exactly.

The measurement defect the record catches on itself — confirmed

0010, run against 15d4352, counts each token name across all four consumers:

Sealed     lexer=1 parser=0 codegen=0 compiler=0
Activate   lexer=1 parser=0 codegen=0 compiler=0
Seed       lexer=1 parser=0 codegen=0 compiler=0
Protocol   lexer=1 parser=0 codegen=0 compiler=0
Impl       lexer=1 parser=0 codegen=0 compiler=0
Test       lexer=1 parser=0 codegen=1 compiler=0

The five are minted by the lexer and consumed by nothing. Test is minted by the lexer, ignored by the parser — which is why a parser-only search reported it inert — and consumed by codegen. 0011 locates that single consumer at codegen.el:4135, the exact line the record names, and 0014 counts 408 occurrences of the bare word test in .el files at 15d4352, the exact figure the record names. Removing it would indeed have broken the suite.

Integration count — exact

arity_query.sh          exit=0 assertions=5
capability_query.sh     exit=0 assertions=5
prohibition_query.sh    exit=0 assertions=4
seam_binding.sh         exit=0 assertions=7
temporal_query.sh       exit=0 assertions=6
temporal_signatures.sh  exit=0 assertions=4
TOTAL assertions: 31

Provenance notes

All captures are from dedicated worktrees /tmp/rerun-v1b-14-pre (15d4352), /tmp/rerun-v1b-14-post (0143cc4) and /tmp/rerun-v1b-head (a0cc95e3), with capture.sh invoked by absolute path from inside each, so the recorded commit is the system under test's. No DIRTY-TREE flags in this cycle.