Hojun-Cho
10cb835f99
lib: complete the parallel vstream surface to Hare value-return shape ( #94 fold-eFinal prep)
...
The #94 Option-C vstream surface was left incomplete and structurally
divergent from Hare: constructors heap-allocated and returned (X | nomem)
or used out-params instead of Hare's by-value stack ownership; memio lacked
reset/buffer/borrowedread; bufio's scanner was never ported to the vtable.
This is the additive half of the eFinal collapse — OLD surface stays fully
live; the destructive FLIP (delete OLD + drop _v + repoint) is the next
commit.
Reshape all constructors to VALUE-RETURN (field-by-field sret; the heap +
nomem was an unnecessary crutch — wide slice-bearing struct return-by-value
is byte-id-proven, cf 925_sret_struct_return_run). memio fixed/dynamic/
dynamicfrom, bufio init, log new now return the struct by value; the nomem
is gone with the alloc that forced it.
memio: unify the per-flavour ctx structs onto one `stream` (vt at offset 0);
collapse fixed_string + dynamic_string into a single string() over the common
header (bare-str return is the ratified rule-9 frombytes carve-out, cited at
the site per ref/hare/memio/stream.ha:81); port reset/buffer/borrowedread as
single fns over the header.
bufio: collapse the EXISTING scanner subset (newscannerbuf/scanbyte/scanbytes/
scanline/finish + setflush/flush/unread/isbuffered) onto the vtable, with src
now io.vstream so reads go through io.st_read. The Hare scanner functions ww
never implemented (scanrune/scanstring-arbitrary-delim/readtok/readline/
auto-grow newscanner) are out of scope and deferred to #217 — eFinal is a
collapse, not a feature expansion.
Keep the explicit (&fn): *io.T casts on vtable-slot stores (cgen-neutral;
avoids the #214 (X|void) over-acceptance surface; dropping the casts is a
deferred #206 payoff gated on #214 ).
Self-gate: 776 (memio) 18/18 and 778 (bufio) 27/27, every row carrying a
cs.s == ww.s byte-id check — bufio/fmt/log are not compiler-embedded, so
these rows are their only byte-id coverage. 779/781 stay STAGE_CS-only
pending #209 . Regen w6c+wwdump combined.ww (io+memio are the embedded
modules).
2026-05-29 21:14:39 +09:00
..
2026-05-18 19:22:27 +09:00
2026-05-11 13:49:27 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-16 11:17:20 +09:00
2026-05-11 13:49:27 +09:00
2026-05-11 13:49:27 +09:00
2026-05-12 11:35:50 +09:00
2026-05-12 12:45:11 +09:00
2026-05-11 13:49:27 +09:00
2026-05-11 13:49:27 +09:00
2026-05-12 13:44:27 +09:00
2026-05-12 13:37:31 +09:00
2026-05-16 03:00:34 +09:00
2026-05-13 20:06:24 +09:00
2026-05-14 02:44:57 +09:00
2026-05-14 01:58:52 +09:00
2026-05-14 00:36:34 +09:00
2026-05-13 23:45:35 +09:00
2026-05-25 01:59:14 +09:00
2026-05-14 00:21:53 +09:00
2026-05-14 23:45:14 +09:00
2026-05-14 23:26:49 +09:00
2026-05-25 01:59:14 +09:00
2026-05-15 01:39:37 +09:00
2026-05-25 01:59:14 +09:00
2026-05-15 14:16:53 +09:00
2026-05-15 11:24:33 +09:00
2026-05-28 14:07:58 +09:00
2026-05-15 15:06:37 +09:00
2026-05-20 22:11:34 +09:00
2026-05-15 16:43:07 +09:00
2026-05-15 18:13:02 +09:00
2026-05-15 18:14:33 +09:00
2026-05-15 18:45:21 +09:00
2026-05-15 19:07:29 +09:00
2026-05-16 00:07:00 +09:00
2026-05-27 13:04:02 +09:00
2026-05-16 10:47:50 +09:00
2026-05-16 11:17:20 +09:00
2026-05-16 12:20:56 +09:00
2026-05-16 11:37:17 +09:00
2026-05-16 11:17:20 +09:00
2026-05-16 12:52:36 +09:00
2026-05-16 13:45:33 +09:00
2026-05-16 23:32:27 +09:00
2026-05-17 00:00:55 +09:00
2026-05-17 00:27:22 +09:00
2026-05-17 01:40:49 +09:00
2026-05-17 07:25:49 +09:00
2026-05-17 07:33:55 +09:00
2026-05-18 00:15:34 +09:00
2026-05-18 01:51:57 +09:00
2026-05-18 02:20:42 +09:00
2026-05-18 02:49:06 +09:00
2026-05-18 03:15:40 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 12:01:34 +09:00
2026-05-18 18:25:36 +09:00
2026-05-25 11:27:00 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 16:00:31 +09:00
2026-05-18 19:22:27 +09:00
2026-05-18 19:22:27 +09:00
2026-05-18 19:40:41 +09:00
2026-05-18 19:55:30 +09:00
2026-05-24 08:11:14 +09:00
2026-05-18 20:55:37 +09:00
2026-05-18 21:13:42 +09:00
2026-05-18 23:01:09 +09:00
2026-05-18 23:37:16 +09:00
2026-05-18 23:56:58 +09:00
2026-05-19 00:58:28 +09:00
2026-05-19 02:13:58 +09:00
2026-05-19 03:09:34 +09:00
2026-05-19 03:39:42 +09:00
2026-05-19 04:04:41 +09:00
2026-05-19 04:56:56 +09:00
2026-05-19 10:44:16 +09:00
2026-05-19 12:30:36 +09:00
2026-05-19 13:43:45 +09:00
2026-05-19 15:09:57 +09:00
2026-05-20 02:27:17 +09:00
2026-05-24 08:11:14 +09:00
2026-05-22 00:14:36 +09:00
2026-05-26 02:39:35 +09:00
2026-05-28 16:16:29 +09:00
2026-05-28 17:12:20 +09:00
2026-05-28 18:03:26 +09:00
2026-05-28 18:50:10 +09:00
2026-05-28 19:25:53 +09:00
2026-05-28 20:01:14 +09:00
2026-05-28 20:55:42 +09:00
2026-05-29 07:28:59 +09:00
2026-05-28 23:17:22 +09:00
2026-05-29 01:00:02 +09:00
2026-05-29 03:04:18 +09:00
2026-05-29 03:52:04 +09:00
2026-05-29 04:51:44 +09:00
2026-05-29 06:18:27 +09:00
2026-05-29 07:28:59 +09:00
2026-05-29 21:14:39 +09:00
2026-05-29 09:41:46 +09:00
2026-05-29 21:14:39 +09:00
2026-05-29 21:14:39 +09:00
2026-05-29 11:50:55 +09:00
2026-05-29 21:14:39 +09:00
2026-05-29 15:27:50 +09:00
2026-05-29 18:05:53 +09:00
2026-05-11 13:49:27 +09:00
2026-05-12 13:50:09 +09:00
2026-05-19 11:41:36 +09:00
2026-05-28 10:40:08 +09:00
2026-05-28 08:07:19 +09:00
2026-05-28 09:06:54 +09:00
2026-05-28 09:06:54 +09:00
2026-05-27 22:13:46 +09:00
2026-05-27 18:43:08 +09:00
2026-05-27 16:17:24 +09:00
2026-05-27 15:39:03 +09:00
2026-05-27 13:55:56 +09:00
2026-05-12 03:14:20 +09:00
2026-05-27 00:12:39 +09:00
2026-05-27 01:29:24 +09:00
2026-05-27 01:51:12 +09:00
2026-05-27 02:32:31 +09:00
2026-05-27 03:07:49 +09:00
2026-05-27 03:30:15 +09:00
2026-05-27 04:19:37 +09:00
2026-05-27 05:04:05 +09:00
2026-05-27 12:21:15 +09:00
2026-05-27 09:18:03 +09:00
2026-05-27 10:27:55 +09:00
2026-05-27 00:44:16 +09:00
2026-05-17 07:25:49 +09:00
2026-05-17 07:33:55 +09:00
2026-05-18 00:15:34 +09:00
2026-05-29 19:43:48 +09:00
2026-05-18 01:51:57 +09:00
2026-05-18 02:20:42 +09:00
2026-05-24 09:19:20 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 12:01:34 +09:00
2026-05-23 21:22:24 +09:00
2026-05-24 12:27:15 +09:00
2026-05-24 13:31:58 +09:00
2026-05-24 13:57:20 +09:00
2026-05-24 14:22:25 +09:00
2026-05-24 14:57:05 +09:00
2026-05-24 15:35:37 +09:00
2026-05-24 16:18:49 +09:00
2026-05-24 16:54:14 +09:00
2026-05-24 17:29:20 +09:00
2026-05-25 00:20:16 +09:00
2026-05-25 01:59:14 +09:00
2026-05-25 02:36:54 +09:00
2026-05-25 03:13:48 +09:00
2026-05-25 10:08:56 +09:00
2026-05-26 14:46:01 +09:00
2026-05-27 23:31:19 +09:00
2026-05-28 01:50:28 +09:00
2026-05-26 19:14:14 +09:00
2026-05-26 22:27:32 +09:00
2026-05-26 22:56:00 +09:00
2026-05-20 01:09:16 +09:00
2026-05-25 13:04:14 +09:00
2026-05-27 10:55:31 +09:00
2026-05-25 14:04:07 +09:00
2026-05-26 17:27:44 +09:00
2026-05-25 15:38:47 +09:00
2026-05-28 03:55:22 +09:00
2026-05-27 21:01:25 +09:00
2026-05-26 01:55:54 +09:00
2026-05-26 03:07:01 +09:00
2026-05-26 08:31:41 +09:00
2026-05-26 09:02:08 +09:00
2026-05-26 09:52:13 +09:00
2026-05-26 10:29:04 +09:00
2026-05-26 10:54:35 +09:00
2026-05-26 11:19:37 +09:00
2026-05-26 12:06:47 +09:00
2026-05-18 19:22:27 +09:00
2026-05-18 00:48:14 +09:00
2026-05-17 23:46:34 +09:00
2026-05-25 11:16:25 +09:00
2026-05-18 19:22:27 +09:00
2026-05-18 19:22:27 +09:00
2026-05-18 19:22:27 +09:00
2026-05-15 15:48:13 +09:00
2026-05-15 17:13:32 +09:00
2026-05-15 17:14:49 +09:00
2026-05-16 02:42:41 +09:00
2026-05-17 02:51:15 +09:00
2026-05-17 02:40:40 +09:00
2026-05-17 07:07:57 +09:00
2026-05-15 00:26:10 +09:00
2026-05-15 00:27:38 +09:00
2026-05-18 19:22:27 +09:00
2026-05-15 09:00:34 +09:00
2026-05-15 09:00:34 +09:00
2026-05-15 09:00:34 +09:00
2026-05-15 09:00:34 +09:00
2026-05-15 09:00:34 +09:00
2026-05-15 09:00:34 +09:00
2026-05-15 09:00:34 +09:00
2026-05-28 09:55:45 +09:00
2026-05-21 16:32:27 +09:00
2026-05-21 16:32:27 +09:00
2026-05-21 16:32:27 +09:00
2026-05-21 16:32:27 +09:00
2026-05-21 18:07:13 +09:00
2026-05-11 17:52:29 +09:00
2026-05-12 03:58:55 +09:00
2026-05-14 02:51:49 +09:00
2026-05-15 09:00:34 +09:00