Brummel
c8ecfa39b9
RED: io/print_str must print exactly the bytes of its argument — refs #29
...
Two RED E2E tests that pin the byte-faithful-print property of
io/print_str. Both fail today because the codegen at
crates/ailang-codegen/src/lib.rs:2754 lowers the op to a C `@puts`
call, which writes the string plus a trailing newline.
- io_print_str_does_not_append_auto_newline:
(seq (do io/print_str "a") (do io/print_str "b")) → stdout "ab"
current: "a\nb\n"
- io_print_str_does_not_double_embedded_newline:
(do io/print_str "x\n") → stdout "x\n"
current: "x\n\n"
Assertions compare RAW stdout (no .trim()) — the byte-level
property IS the assertion target.
Empirically caught in the cross-model-authoring naming-A/B run
on 2026-05-21 (experiments/2026-05-21-naming-ab/runs/r1/): Qwen3-
Coder repeatedly wrote `(do io/print_str "text\n")` with explicit
\n, expecting byte-faithful output, and got doubled newlines —
failing every t3_main_prints stdout match across all three cohorts.
GREEN side (codegen swap @puts → fputs(s, @stdout) + sweep of
existing fixtures that implicitly relied on the auto-newline) is
the next commit, via implement mini-mode.
refs #29
2026-05-21 11:59:38 +02:00
..
2026-05-21 01:34:19 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-07 11:07:36 +02:00
2026-05-13 12:43:10 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-12 14:20:27 +02:00
2026-05-12 14:20:27 +02:00
2026-05-21 01:16:21 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 23:28:52 +02:00
2026-05-18 23:28:52 +02:00
2026-05-18 14:32:39 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 14:32:39 +02:00
2026-05-18 21:16:41 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-20 18:24:57 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-12 14:20:27 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-17 23:57:46 +02:00
2026-05-18 01:04:19 +02:00
2026-05-17 23:33:43 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-18 11:06:17 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-20 18:57:14 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 01:38:41 +02:00
2026-05-20 18:19:46 +02:00
2026-05-14 01:51:50 +02:00
2026-05-21 11:59:38 +02:00
2026-05-21 11:59:38 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-20 20:51:53 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 12:43:10 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-12 14:20:27 +02:00
2026-05-12 14:20:27 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-12 14:20:27 +02:00
2026-05-14 02:12:34 +02:00
2026-05-12 14:20:27 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 01:16:21 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-10 22:35:37 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 03:31:40 +02:00
2026-05-09 17:50:29 +02:00
2026-05-09 17:45:27 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 01:11:56 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-11 01:46:58 +02:00
2026-05-11 01:46:58 +02:00
2026-05-11 01:46:58 +02:00
2026-05-18 00:08:51 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-17 23:33:43 +02:00
2026-05-17 23:33:43 +02:00
2026-05-17 23:33:43 +02:00
2026-05-17 23:33:43 +02:00
2026-05-21 01:16:21 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00