This website requires JavaScript.
b6a41ae063
lib/regex: type model + finish() (regex port fold 1, partial)
Hojun-Cho
2026-06-03 23:29:34 +09:00
1e081e28c6
wcc_ww/check: infer named-struct element for arrlit->slice assignability (fix #19 )
Hojun-Cho
2026-06-03 22:51:24 +09:00
8dda8ea76c
w6c+w6c_ww: global-base arm for indexed struct-element field read (fix #21 )
Hojun-Cho
2026-06-03 22:29:57 +09:00
d40224755a
w6c+w6c_ww: emit module-level slice-literal static-init (header+backing+reloc) (fix #10 part a)
Hojun-Cho
2026-06-03 21:25:09 +09:00
ad00114c7f
wcc_ww/check: skip #258 array->slice desugar at module scope (fix #18 )
Hojun-Cho
2026-06-03 21:21:15 +09:00
5bbb81222f
w6c_ww: emit a bare str/slice global zero-header once, keyed on type kind (fix #10 part b)
Hojun-Cho
2026-06-03 20:55:52 +09:00
63142770de
w6c+w6c_ww: box [N]tagged array-literal elements via the tagged-store path (fix #12 )
Hojun-Cho
2026-06-03 20:32:22 +09:00
3f04ea15ef
test/993: add 255 boundary + build-fail parity to run exit-code rows
Hojun-Cho
2026-06-03 19:20:57 +09:00
0f0f2f4aa1
ww (selfhost): procrun propagates the real child exit code (fix #16 )
Hojun-Cho
2026-06-03 19:12:25 +09:00
8199d6cdad
test/684: add 1-element [_] edge + module element read-back rows
Hojun-Cho
2026-06-03 18:53:44 +09:00
7ca32432b1
w6c+wcc/check: infer [_]T array length from initializer element count (fix #7 )
Hojun-Cho
2026-06-03 18:44:39 +09:00
63cb39e45b
w6c_ww: exclude bare str-literal from indexed .cap shuffle (fix #13 symmetry break)
Hojun-Cho
2026-06-03 18:03:13 +09:00
84ed2ab15a
w6c+cgen: read .cap of an indexed str/slice array element (fix #13 , #20 read-sibling)
Hojun-Cho
2026-06-03 17:50:54 +09:00
b3d4d2df32
w6c+cgen: full 24B header store for str/slice array-literal elements (fix #20 , #270 str/slice arm)
Hojun-Cho
2026-06-03 17:29:43 +09:00
a9228dabb3
w6c_ww/cgen: uniform tinfo esz for global str/slice addr-of + store (fix #11 )
Hojun-Cho
2026-06-03 15:50:54 +09:00
23670d7c4e
w6c_ww/cgen: uniform tinfo esz for global str/slice index (fix #10 )
Hojun-Cho
2026-06-03 15:24:56 +09:00
5c1e9c0bfb
lib/ww/lex: kwlookup if-ladder -> [N]str parallel-table linear scan (kwtab, rides #18/#8)
Hojun-Cho
2026-06-03 14:50:18 +09:00
d39691a3d7
w6c_ww/cgen: size [N]enum element from tinfo not slotsize (fix #8 )
Hojun-Cho
2026-06-03 14:48:12 +09:00
6b67655eca
w6c+cgen: len() over indexed str/slice element extracts .len (fix #19 )
Hojun-Cho
2026-06-03 11:56:16 +09:00
58c8f4be02
w6c+cgen: emit module-level [N]str static-init data + relocations (fix #18 )
Hojun-Cho
2026-06-03 11:35:03 +09:00
a67259ca69
wcc/cgen: localfind inline name-loop -> strings.compare (Wave-2 hand-rolled->lib)
Hojun-Cho
2026-06-03 04:19:38 +09:00
b4b28bbf02
w6l: replace streq/streqd clones with strings.compare (Wave-2 hand-rolled->lib)
Hojun-Cho
2026-06-03 04:04:51 +09:00
7d2d2c30ef
lib/ww/lex: replace putuint with strconv.u64tos (Wave-2 hand-rolled->lib)
Hojun-Cho
2026-06-03 03:50:47 +09:00
05609dcc34
w6a: replace private streq with strings.compare (Wave-2 hand-rolled->lib)
Hojun-Cho
2026-06-03 03:33:09 +09:00
af87ff4f31
cmd/ww: FOLD 3 — route driver diagnostics through cerr(str) (capstone)
Hojun-Cho
2026-06-03 03:14:45 +09:00
50fc976e1d
cmd/ww: FOLD 2 — str-lift scanuse/peekpackage/dirfilekeep scanners (capstone)
Hojun-Cho
2026-06-03 02:59:29 +09:00
bb4e27d18b
cmd/ww: FOLD 1 — str-lift cstreq/cstreqlit/cstrendswithlit via strings.* (capstone)
Hojun-Cho
2026-06-03 02:36:00 +09:00
cc62f3f8bb
cmd/ww: main.ww FOLD 0 — drop dead cstrstartswith, isidentbyte &&/char-lits (capstone prep)
Hojun-Cho
2026-06-03 02:17:48 +09:00
ff333ce62d
wcc/check: route diagnostics through cerr(str) helper (Wave-2 str-lift)
Hojun-Cho
2026-06-03 02:03:19 +09:00
9f76e816d7
w6l: pass reloc-kind + dyn vidx if-ladders -> switch (Wave-2 structural)
Hojun-Cho
2026-06-03 01:45:47 +09:00
63e070db10
w6l: islinkable/isso magic-byte pyramids -> strings.hasprefix (Wave-2 str-lift)
Hojun-Cho
2026-06-03 01:32:27 +09:00
8c43363cfe
wcc/check: tinfofornode + decl-kind if-ladders -> switch (Wave-2 structural)
Hojun-Cho
2026-06-03 01:14:01 +09:00
96cf957b07
lib/ww/lex: fputq + tokprint if-ladders -> switch (Wave-2 structural)
Hojun-Cho
2026-06-03 00:59:13 +09:00
2303341cb0
wcc/cgenexpr: cgexpr node-kind if-ladder -> switch (Wave-2 structural)
Hojun-Cho
2026-06-03 00:42:01 +09:00
711762b6d8
w6c: emit length for string-literal .len (fix #14 , align cstage to wwstage)
Hojun-Cho
2026-06-03 00:28:16 +09:00
dbb52e25fe
w6a/parse: write diagnostics with str .len (fix perr truncation)
Hojun-Cho
2026-06-03 00:01:50 +09:00
c64c478e3f
w6l/obj: write diagnostics with str .len (fix truncated-newline off-by-one)
Hojun-Cho
2026-06-03 00:01:26 +09:00
6f9a964a79
w6c,w6l: write diagnostics via str .len (fix off-by-one hand-counts)
Hojun-Cho
2026-06-02 23:10:47 +09:00
9e82037998
lib/errors: errnotest use os.exit not raw syscall (rule-7)
Hojun-Cho
2026-06-02 22:57:37 +09:00
aa3aae05b9
lib/strings,wcc,w6l: collapse nested-if to &&/|| at named sites (Wave-2 structural)
Hojun-Cho
2026-06-02 22:53:05 +09:00
52d15ae92d
w6a/asm: Jcc if-pyramid -> switch (Wave-2 structural)
Hojun-Cho
2026-06-02 22:33:06 +09:00
11e41ecea3
lib/ww/ast: nkname if-ladder -> switch (Wave-2 structural)
Hojun-Cho
2026-06-02 22:18:19 +09:00
e027d3eec4
lib/ww/lex: tokname if-ladder -> switch (Wave-2 structural)
Hojun-Cho
2026-06-02 21:58:39 +09:00
79e647b34d
lib/ww/parse: drop redundant type annotations (Wave-1)
Hojun-Cho
2026-06-02 21:27:09 +09:00
b45f7c40ac
lib/math/checked,log: drop redundant type annotations (Wave-1)
Hojun-Cho
2026-06-02 21:14:51 +09:00
688275bfd6
lib,wcc,w6a,w6l: char-literals for remaining source magic decimals (Wave-1)
Hojun-Cho
2026-06-02 21:02:26 +09:00
2131ae0dee
w6a,w6l: char-literals for ELF/archive magic bytes (Wave-1)
Hojun-Cho
2026-06-02 20:41:51 +09:00
5987e389b9
lib/fmt,strconv: char-literals for fmt/ftos magic decimals (Wave-1)
Hojun-Cho
2026-06-02 20:21:42 +09:00
fe32dedb08
lib/ww/lex: char-literals for lexer magic decimals (Wave-1)
Hojun-Cho
2026-06-02 19:56:48 +09:00
d1310a03ad
lib: char-literals for ascii/fnmatch/shlex magic decimals (Wave-1)
Hojun-Cho
2026-06-02 19:24:40 +09:00
90479fed68
w6c+wwstage: reject untyped empty-[] alloc — require context, loud cannot-infer (#3 B', subsumes #5 )
Hojun-Cho
2026-06-02 18:54:35 +09:00
bec1e7d6b0
w6c+wwstage: #264 read cached operand tinfo for match-expr yield type
Hojun-Cho
2026-06-02 16:22:22 +09:00
418dd21f34
w6c+wwstage: wwstage alias-aggregate-return loud-stop + #276 citations (#272 review)
Hojun-Cho
2026-06-02 15:26:03 +09:00
9d81ba77b7
w6c+wwstage: array global-aggregate-receive g = f() (#272 commit-2)
Hojun-Cho
2026-06-02 15:00:55 +09:00
0d39129741
w6c+wwstage: aggregate return from any addressable source (#272 commit-1)
Hojun-Cho
2026-06-02 14:52:44 +09:00
42dd70dc0c
w6c+wwstage: aggregate arg from any non-ident source via the closed addr machinery (#271 ) — close aggregate-arg family
Hojun-Cho
2026-06-02 13:42:59 +09:00
3c37b98164
w6c+wwstage: [N]struct literal element store (#270-1c)
Hojun-Cho
2026-06-02 12:54:01 +09:00
6f18f42a4a
w6c+wwstage: &aggregate-array-element addressing + store/copy (#270-1)
Hojun-Cho
2026-06-02 12:49:25 +09:00
33bd2b1054
wwstage: nested-array outer-index esz = sub-array size (#270-2)
Hojun-Cho
2026-06-02 12:24:43 +09:00
ebbc3f98c2
w6c+wwstage: array return-by-value via the struct-return ABI (#267 fold-2)
Hojun-Cho
2026-06-02 12:00:58 +09:00
35b517ca3e
w6c+wwstage: aggregate let-init copy from a struct-DEF global (#268 reviewer)
Hojun-Cho
2026-06-02 11:37:34 +09:00
bb2f4e1dfe
w6c+wwstage: aggregate let-init copy for ident-array/N_DOT/N_INDEX rhs (#268 fold-1b) — close addressable-rhs copy family
Hojun-Cho
2026-06-02 11:22:01 +09:00
dfa9771f42
lib/crypto/sha256: cite #269 for the def-array-dim divergence (rule-7)
Hojun-Cho
2026-06-02 09:52:29 +09:00
e9bd06a193
lib/crypto/sha256: restore faithful re-entrant sum() (#265 unblocked)
Hojun-Cho
2026-06-02 09:48:39 +09:00
8e9e28e357
lib/crypto/sha256: port SHA-256 over hash::hash; NIST test (989)
Hojun-Cho
2026-06-02 07:19:18 +09:00
fdd87e56bf
lib/crypto/math: add rotl32/rotr32 (sha256 prereq)
Hojun-Cho
2026-06-02 07:19:03 +09:00
165dd7388d
lib/hash: add hash::hash interface (vtable + sum/reset/sz/bsz)
Hojun-Cho
2026-06-02 07:18:56 +09:00
4d3f8467a8
w6c+wwstage: full-size aggregate copy for deref-rhs let-init (#265 fold-1)
Hojun-Cho
2026-06-02 09:31:44 +09:00
0afe4225cd
w6c: materialize full tagged slot on N_IDENT-source return (#263 ) — cstage align-up to wwstage
Hojun-Cho
2026-06-02 06:28:00 +09:00
6d8434002d
lib/encoding/base64: clear() via array-decay now that #258 lands; drop stale comment
Hojun-Cho
2026-06-02 06:17:59 +09:00
16b7412003
test/949: pin nullable (*T|void) tagged-element read byte-id (#261 deviation)
Hojun-Cho
2026-06-02 06:11:38 +09:00
0afc272f47
wwstage: copy full tagged-element slot for N_DOT/N_INDEX-base index read (#261 )
Hojun-Cho
2026-06-02 06:02:56 +09:00
be23d7227a
w6c+wwstage: source sub-8 value-struct ABI-size from tinfo.size at zero-init+DATAW (#254 )
Hojun-Cho
2026-06-02 05:37:47 +09:00
e92708ecda
w6c+wwstage: implicit [N]T->[]T array-to-slice coercion via desugar (#258 )
Hojun-Cho
2026-06-02 05:26:55 +09:00
6bcb0929f8
w6c+wwstage: tagged-element indexed store via dotbaseaddr + align dotchainaddr guard (#259,#256)
Hojun-Cho
2026-06-02 05:17:45 +09:00
a2659c7942
test/base64: table-driven decode_invalid; cover len%4==1/3, excess '=', mid-quad '='
Hojun-Cho
2026-06-02 05:01:02 +09:00
4d0d3b58e6
lib/encoding/base64: Hare base64/base64url on io-streaming surface
Hojun-Cho
2026-06-02 04:55:08 +09:00
ca8c78e97d
test/949: slice-of-non-array-field call-arg guard rows (#257 )
Hojun-Cho
2026-06-02 04:47:56 +09:00
0f2587d294
w6c+wwstage: struct-array-field slice as call-arg via dotbaseaddr (#257 )
Hojun-Cho
2026-06-02 04:38:41 +09:00
d8aaa54b41
wwstage: sign-extend signed-narrow struct-array-field element load via N_DOT base (#255 )
Hojun-Cho
2026-06-02 04:07:42 +09:00
585ec50676
w6c+wwstage: chained-base array-field address via dotbaseaddr — close the family (#253 )
Hojun-Cho
2026-06-02 03:44:49 +09:00
7e3271bf01
test/949: add non-u8 addr-of + slice-via-ptr rows (#252 )
Hojun-Cho
2026-06-02 03:01:10 +09:00
5ebd9eb6db
w6c+wwstage: addr-of/slice struct array-field via dotbaseaddr (#252 )
Hojun-Cho
2026-06-02 02:52:59 +09:00
8f85878bb2
test/951: add str->u8 reject rows at let + struct-field (#251 )
Hojun-Cho
2026-06-02 02:16:13 +09:00
d56b7ca946
w6c+wwstage: narrow int/rune array-literal elements to the declared type (#251 )
Hojun-Cho
2026-06-02 01:53:57 +09:00
0fb4bae337
w6c+wwstage: store struct-literal array-field init (#249 BUG A)
Hojun-Cho
2026-06-02 01:19:46 +09:00
16b519465a
w6c+wwstage: read array field of a global struct (#249 BUG B)
Hojun-Cho
2026-06-02 01:12:40 +09:00
e3f49234f9
lib/encoding/hex: align to Hare io-streaming surface
Hojun-Cho
2026-06-02 00:33:49 +09:00
9d383288d2
lib/ww: hash-index the tinfo cache, kills O(n2) compile (perf)
Hojun-Cho
2026-06-02 00:08:52 +09:00
db5c5b6149
lib/strconv: add itos/utos integer format (strconv-int fold-2)
Hojun-Cho
2026-06-01 23:10:46 +09:00
dbc169a025
wwstage: reject error-type vs int comparison (#246 )
Hojun-Cho
2026-06-01 23:10:46 +09:00
a11785273a
lib/strconv: stoi/stou/stoz machine-word int parse (strconv-int fold-1 C2)
Hojun-Cho
2026-06-01 22:07:04 +09:00
6a5cdbd779
lib/strconv: parseint sign+overflow core; stoi64/stou64 fidelity (strconv-int fold-1 C1)
Hojun-Cho
2026-06-01 22:05:24 +09:00
5d023c0ef0
w6c+wwstage: cgexpr materializes tuple rvalues + unwrap-shift for tuple-payload destructure (#241 )
Hojun-Cho
2026-06-01 21:27:49 +09:00
6fc85f9aaf
w6c+wwstage: construct + bind tuple-in-union payload (#242 )
Hojun-Cho
2026-06-01 19:56:52 +09:00
b79f005489
w6c+wwstage: agree on mixed-scalar tuple sret layout (#240 )
Hojun-Cho
2026-06-01 19:01:58 +09:00
6acddc3a82
w6c+wwstage: len() of tuple-element slice reads .len not .ptr (#235 )
Hojun-Cho
2026-06-01 18:17:07 +09:00
20fe5419d2
w6c+wwstage: store over-cap tuple sret into local field/index (#234 )
Hojun-Cho
2026-06-01 17:35:04 +09:00
93d8ece740
wwstage: size struct tuple-field slot via fieldsize (#237 )
Hojun-Cho
2026-06-01 17:29:32 +09:00
38a906cd9b
lib/strings: add cut and rcut
Hojun-Cho
2026-06-01 16:26:11 +09:00