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

24 lines
1.3 KiB
Plaintext

18316:static size_t el_input_len(const char* s) {
18317- size_t n;
18318- if (el_bin_lookup(s, &n)) return n;
18319- /* The FALLBACK is the hazard, not the tagged lookup: a NULL check does not
18320- * establish that a slot is a pointer, so strlen() on sha256_hex(50000)
18321- * walked address 50000.
18322- *
18323- * But looks_like_heap_obj is the WRONG guard here, and using it shipped a
18324- * worse defect than the crash it fixed. Its `p & 0x7` test is correct for
18325- * MALLOC'd tagged objects and false for STRING LITERALS, which the linker
18326- * places at any alignment -- measured, 3 of 5 literals misaligned. So
18327- * el_input_len silently returned 0 for most literals, and which ones
18328- * depended on link layout. The test passed only because "abc" happened to
18329- * land on an 8-boundary in that build.
18330- *
18331- * A string may be unaligned. What it may not be is a small integer or a
18332- * low address. Check exactly that, and nothing more. */
18333- el_val_t sv = (el_val_t)(uintptr_t)s;
18334- if (sv == 0) return 0;
18335- if (sv > -0x10000 && sv < 0x10000) return 0; /* small ints */
18336- if ((uintptr_t)sv < 0x10000) return 0; /* low addresses */
18337- return strlen(s);
18338-}