6f9a964a79402b8547ddbb6948638ca693667be8
The argv-error diagnostics in w6c/main.ww (7 sites) and w6l/main.ww (13 literal sites) passed hand-counted byte lengths to os.write that were systematically short by one — every length dropped the final byte (usually '\n'; "w6l: cannot find -l" dropped the 'l'), so the diagnostics printed truncated. Replace each magic length with the string's own .len, which both fixes the off-by-one and closes the hand-count class by construction. Uses the local-binding idiom (let m: str = "..."; os.write(2, m.ptr, m.len: u64);) — the established wcc/err.ww pattern — rather than "literal".len directly: string-literal .len is miscompiled on cstage (returns the pointer, not the length; cstage != wwstage), filed as #14. str-variable .len is correct on both stages, so this is byte- identical cs==ww and independent of #14. The w6l runtime cstr write (os.write(2, nm, cstrlen(nm))) is unchanged.
w6c+wwstage: reject untyped empty-[] alloc — require context, loud cannot-infer (#3 B', subsumes #5)
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%