selfhost/cmd/w6l/dynout+obj: amalloc → alloc([], N)! (α/γ-11)

Phase 0 eleventh α/γ-batch. ~23 amalloc sites:
 - w6l/dynout.ww: 22 (~18 α u8 ELF section buffers + 3 γ pointer
   arrays — dynsyms []*lsym, sosused []*lso, vernameptrarr []*u8)
 - w6l/obj.ww:346 standalone α hdrsize u8

All single-shot fixed-count (NOT β grow as originally classified
in the phase0-mapper audit). α: `[]u8 = alloc([], N)!` + .ptr at
the dwr*/drd*/dbcopy callees. γ: element-count was bytes/8.

obj.ww:346 keeps the `*u8` legacy alias via `let mb: *u8 = mbs.ptr;`
since `armember.data` is `*u8` and gets stored across the function;
heap memory survives the local slice header (no GC, process-exit
reclaim).

Verified 132/132 incl. 992_w6l_ww + 995_self_rebuild + 996_dyn_ww
byte-identity.
This commit is contained in:
2026-05-21 08:37:12 +09:00
parent c91d684708
commit f2ea7fccec
3 changed files with 214 additions and 212 deletions

View File

@@ -343,7 +343,8 @@ fn loadarchive(l: *lnk, path: *u8, buf: *u8, len: u64) i32 = {
// any padding entries (NUL or space leading byte).
if (first != 47u8) { if (first != 0u8) { if (first != 32u8) {
let m: *armember = alloc(armember { size = hdrsize })!;
let mb: *u8 = amalloc(l.a, hdrsize): *u8;
let mbs: []u8 = alloc([], hdrsize)!;
let mb: *u8 = mbs.ptr;
let i: u64 = 0u64;
for (i < hdrsize) {
mb[i] = buf[hdrend + i];