e9eb67de04dc97d03b8659a27f1c188216c3fe9b
Phase 0 #8 third α/γ-batch. 33 sites total: 32 in selfhost/cmd/ww/ main.ww (driver) — 22 α `*u8` byte buffers + 10 γ `**u8` pointer arrays — and 1 α in selfhost/cmd/wwdump/main.ww (file-slurp buffer, previously amalloc). Patterns: - α: `let buf: []u8 = alloc([], N: u64)!; buf.len = N: i32;` then `buf.ptr` to extract `*u8` for callees that still take raw pointer (cstrinto/byteinto/readall/getdents64/...). - γ: `let arr: []*u8 = alloc([], N)!; arr.len = N;` element-count semantics (was bytes; ww slice alloc takes element count). i32 .len cast: ww's slice.len is i32 so `.len = N` from a u64 source requires an explicit `: i32` cast or silent-zero results. The previously-flagged `out = rt.malloc(PATH_MAX): *u8` reassignment in dobuild migrates cleanly: locally allocate `outbuf: []u8`, then `out = outbuf.ptr` to preserve the `*u8` shape for the else-branch from defaultoutpath. No GC + process-exit reclaim makes the bare .ptr lifetime-safe (no free path needed). 0 sites deferred. Verified make test 132/132 + 995_self_rebuild byte-identity. Advances #44.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%