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

@@ -209,14 +209,14 @@ type armember = struct {
fn isarchive(p: *u8, len: u64) bool = {
if (len < 8u64) { return false; };
if (p[0u64] != 33u8) { return false; }; // '!'
if (p[1u64] != 60u8) { return false; }; // '<'
if (p[2u64] != 97u8) { return false; }; // 'a'
if (p[3u64] != 114u8) { return false; }; // 'r'
if (p[4u64] != 99u8) { return false; }; // 'c'
if (p[5u64] != 104u8) { return false; }; // 'h'
if (p[6u64] != 62u8) { return false; }; // '>'
if (p[7u64] != 10u8) { return false; }; // '\n'
if (p[0u64] != '!') { return false; };
if (p[1u64] != '<') { return false; };
if (p[2u64] != 'a') { return false; };
if (p[3u64] != 'r') { return false; };
if (p[4u64] != 'c') { return false; };
if (p[5u64] != 'h') { return false; };
if (p[6u64] != '>') { return false; };
if (p[7u64] != '\n') { return false; };
return true;
};
@@ -240,9 +240,9 @@ fn arfield(p: *u8, n: u64) u64 = {
fn elfglobals(buf: *u8, len: u64) *defent = {
if (len < EHDR_SIZE) { return nil; };
if (buf[0u64] != 127u8) { return nil; };
if (buf[1u64] != 69u8) { return nil; };
if (buf[2u64] != 76u8) { return nil; };
if (buf[3u64] != 70u8) { return nil; };
if (buf[1u64] != 'E') { return nil; };
if (buf[2u64] != 'L') { return nil; };
if (buf[3u64] != 'F') { return nil; };
let shoff: u64 = rdu64(buf, EHDR_SHOFF);
let shnum: u32 = rdu16(buf, EHDR_SHNUM): u32;
@@ -344,7 +344,7 @@ fn loadarchive(l: *lnk, path: *u8, buf: *u8, len: u64) i32 = {
let first: u8 = buf[pos];
// Skip the symbol table ('/'), long-name table ('//'), and
// any padding entries (NUL or space leading byte).
if (first != 47u8) { if (first != 0u8) { if (first != 32u8) {
if (first != '/') { if (first != 0u8) { if (first != ' ') {
let m: *armember = alloc(armember { size = hdrsize })!;
let mbs: []u8 = alloc([], hdrsize)!;
let mb: *u8 = mbs.ptr;
@@ -402,9 +402,9 @@ fn loadimage(l: *lnk, path: *u8, buf: *u8, len: u64) i32 = {
if (len < EHDR_SIZE) { return -1; };
// magic: 0x7f, 'E', 'L', 'F'
if (buf[0u64] != 127u8) { return -1; };
if (buf[1u64] != 69u8) { return -1; };
if (buf[2u64] != 76u8) { return -1; };
if (buf[3u64] != 70u8) { return -1; };
if (buf[1u64] != 'E') { return -1; };
if (buf[2u64] != 'L') { return -1; };
if (buf[3u64] != 'F') { return -1; };
if (buf[4u64] != 2u8) { return -1; }; // ELFCLASS64
if (rdu16(buf, EHDR_TYPE) != ET_REL: u16) { return -1; };
if (rdu16(buf, EHDR_MACHINE) != EM_X86_64: u16) { return -1; };