From 0f011661b67a9d0fc793557162e77e68391e1537 Mon Sep 17 00:00:00 2001 From: Hojun-Cho Date: Thu, 21 May 2026 02:28:58 +0900 Subject: [PATCH] =?UTF-8?q?cmd:=20=CE=B1-6=20amalloc=20=E2=86=92=20alloc([?= =?UTF-8?q?],=20N)!=20(cgen=20mklabel/mkscratchname/internstrlit)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 0 #8 sixth α-batch. 3 sites in selfhost/cmd/wcc/cgen.ww — all runtime-N byte buffers returning a `*u8` via a constructed str. Same shape as 7c2403c's cgenutil.ww:108 mkvarargname conversion. Remaining cgen.ww amalloc: :541-546 (LOOP_MAX/DEFER_MAX context- struct arrays → task #9, struct-field type change) and :700 (cgoutarena package-global → task #10, memio.dynamic refactor). Verified 132/132 + 995_self_rebuild byte-identity. --- selfhost/cmd/w6c/main.combined.ww | 12 ++++++------ selfhost/cmd/wcc/cgen.ww | 12 ++++++------ selfhost/cmd/wwdump/main.combined.ww | 12 ++++++------ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/selfhost/cmd/w6c/main.combined.ww b/selfhost/cmd/w6c/main.combined.ww index cbb77b19..84c1ef0e 100644 --- a/selfhost/cmd/w6c/main.combined.ww +++ b/selfhost/cmd/w6c/main.combined.ww @@ -21874,7 +21874,7 @@ fn mklabel(c: *cgen, prefix: str) str = { for (dk < n) { buf[i + dk] = ns.ptr[dk]; dk += 1; }; c.labelseq += 1; let total: i32 = i + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let k: i32 = 0; for (k < total) { p[k] = buf[k]; @@ -21882,7 +21882,7 @@ fn mklabel(c: *cgen, prefix: str) str = { }; p[total] = 0u8; let r: str; - r.ptr = p; + r.ptr = p.ptr; r.len = total; return r; }; @@ -21913,7 +21913,7 @@ fn mkscratchname(c: *cgen, prefix: str) str = { for (dk < n) { buf[i + dk] = ns.ptr[dk]; dk += 1; }; c.labelseq += 1; let total: i32 = i + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let k: i32 = 0; for (k < total) { p[k] = buf[k]; @@ -21921,7 +21921,7 @@ fn mkscratchname(c: *cgen, prefix: str) str = { }; p[total] = 0u8; let r: str; - r.ptr = p; + r.ptr = p.ptr; r.len = total; return r; }; @@ -21950,12 +21950,12 @@ fn internstrlit(c: *cgen, bytes: str) str = { for (dk < n) { buf[3 + dk] = ns.ptr[dk]; dk += 1; }; c.strlitseq += 1; let total: i32 = 3 + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let i: i32 = 0; for (i < total) { p[i] = buf[i]; i += 1; }; p[total] = 0u8; let lab: str; - lab.ptr = p; + lab.ptr = p.ptr; lab.len = total; let nw: *strlit = alloc(strlit{label=lab, bytes=bytes, slnext=c.strlits})!; c.strlits = nw; diff --git a/selfhost/cmd/wcc/cgen.ww b/selfhost/cmd/wcc/cgen.ww index 9a8ebd66..f98c2d36 100644 --- a/selfhost/cmd/wcc/cgen.ww +++ b/selfhost/cmd/wcc/cgen.ww @@ -799,7 +799,7 @@ fn mklabel(c: *cgen, prefix: str) str = { for (dk < n) { buf[i + dk] = ns.ptr[dk]; dk += 1; }; c.labelseq += 1; let total: i32 = i + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let k: i32 = 0; for (k < total) { p[k] = buf[k]; @@ -807,7 +807,7 @@ fn mklabel(c: *cgen, prefix: str) str = { }; p[total] = 0u8; let r: str; - r.ptr = p; + r.ptr = p.ptr; r.len = total; return r; }; @@ -838,7 +838,7 @@ fn mkscratchname(c: *cgen, prefix: str) str = { for (dk < n) { buf[i + dk] = ns.ptr[dk]; dk += 1; }; c.labelseq += 1; let total: i32 = i + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let k: i32 = 0; for (k < total) { p[k] = buf[k]; @@ -846,7 +846,7 @@ fn mkscratchname(c: *cgen, prefix: str) str = { }; p[total] = 0u8; let r: str; - r.ptr = p; + r.ptr = p.ptr; r.len = total; return r; }; @@ -875,12 +875,12 @@ fn internstrlit(c: *cgen, bytes: str) str = { for (dk < n) { buf[3 + dk] = ns.ptr[dk]; dk += 1; }; c.strlitseq += 1; let total: i32 = 3 + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let i: i32 = 0; for (i < total) { p[i] = buf[i]; i += 1; }; p[total] = 0u8; let lab: str; - lab.ptr = p; + lab.ptr = p.ptr; lab.len = total; let nw: *strlit = alloc(strlit{label=lab, bytes=bytes, slnext=c.strlits})!; c.strlits = nw; diff --git a/selfhost/cmd/wwdump/main.combined.ww b/selfhost/cmd/wwdump/main.combined.ww index d76e3f2f..89df55d7 100644 --- a/selfhost/cmd/wwdump/main.combined.ww +++ b/selfhost/cmd/wwdump/main.combined.ww @@ -21874,7 +21874,7 @@ fn mklabel(c: *cgen, prefix: str) str = { for (dk < n) { buf[i + dk] = ns.ptr[dk]; dk += 1; }; c.labelseq += 1; let total: i32 = i + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let k: i32 = 0; for (k < total) { p[k] = buf[k]; @@ -21882,7 +21882,7 @@ fn mklabel(c: *cgen, prefix: str) str = { }; p[total] = 0u8; let r: str; - r.ptr = p; + r.ptr = p.ptr; r.len = total; return r; }; @@ -21913,7 +21913,7 @@ fn mkscratchname(c: *cgen, prefix: str) str = { for (dk < n) { buf[i + dk] = ns.ptr[dk]; dk += 1; }; c.labelseq += 1; let total: i32 = i + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let k: i32 = 0; for (k < total) { p[k] = buf[k]; @@ -21921,7 +21921,7 @@ fn mkscratchname(c: *cgen, prefix: str) str = { }; p[total] = 0u8; let r: str; - r.ptr = p; + r.ptr = p.ptr; r.len = total; return r; }; @@ -21950,12 +21950,12 @@ fn internstrlit(c: *cgen, bytes: str) str = { for (dk < n) { buf[3 + dk] = ns.ptr[dk]; dk += 1; }; c.strlitseq += 1; let total: i32 = 3 + n; - let p: *u8 = amalloc(c.a, (total: u64) + 1u64): *u8; + let p: []u8 = alloc([], (total: u64) + 1u64)!; let i: i32 = 0; for (i < total) { p[i] = buf[i]; i += 1; }; p[total] = 0u8; let lab: str; - lab.ptr = p; + lab.ptr = p.ptr; lab.len = total; let nw: *strlit = alloc(strlit{label=lab, bytes=bytes, slnext=c.strlits})!; c.strlits = nw;