w6a,w6l: char-literals for ELF/archive magic bytes (Wave-1)

byte-id-neutral: every magic-decimal sub is value-equivalent to its
ASCII char-literal. 0x7F (ELF byte-0), ELFCLASS64=2, NUL sentinels,
and hex/itoa radix arithmetic kept decimal (no char identity).
Regenerated w6a/w6l main.combined.ww (the only two embedders).
This commit is contained in:
2026-06-02 20:41:51 +09:00
parent 5987e389b9
commit 2131ae0dee
6 changed files with 152 additions and 152 deletions

View File

@@ -120,7 +120,7 @@ fn dbasename(p: *u8) *u8 = {
let i: u64 = n;
for (i > 0u64) {
i -= 1u64;
if (p[i] == 47u8) { // '/'
if (p[i] == '/') {
return p + i + 1u64;
};
};
@@ -191,9 +191,9 @@ export fn loadso(l: *lnk, path: *u8) i32 = {
return -1;
};
if (buf[0u64] != 127u8) { return soerr("not ELF"); };
if (buf[1u64] != 69u8) { return soerr("not ELF"); };
if (buf[2u64] != 76u8) { return soerr("not ELF"); };
if (buf[3u64] != 70u8) { return soerr("not ELF"); };
if (buf[1u64] != 'E') { return soerr("not ELF"); };
if (buf[2u64] != 'L') { return soerr("not ELF"); };
if (buf[3u64] != 'F') { return soerr("not ELF"); };
if (buf[4u64] != 2u8) { return soerr("not ELFCLASS64"); };
if (du16(buf, EH_EMACHINE) != EM_X86_64_SO) {
return soerr("not amd64");