Brummel
f38bad8c2b
iter 24.1: bool_to_str + str_clone runtime + codegen wiring
...
First iter of milestone 24 (Show + print rewire). Wires two new
heap-Str-producing primitives parallel to hs.4's int_to_str /
float_to_str:
- runtime/str.c gains ailang_bool_to_str(bool) → heap-Str "true" /
"false" and ailang_str_clone(const char *) → memcpy'd heap-Str
copy. Both use the existing str_alloc slab helper.
- builtins.rs + synth.rs install the two signatures lockstep with
ret_mode: Own; str_clone carries param_modes: [Borrow].
- IR-header preamble gains two unconditional `declare ptr @...`
lines; Emitter::lower_app gets two new arms; is_static_callee
whitelist extends with the two names.
- Five IR snapshots regenerate for the two new declares.
- Pre-existing-drift fix: int_to_str row added to builtins.rs::list()
(hs.4 installed env.globals entry but missed the list() row).
Substantive deviation flagged by orchestrator (DONE_WITH_CONCERNS):
builtin signatures registered in uniqueness.rs::infer_module and
linearity.rs::check_module_with_visible (8 LOC × 2 files), symmetric
to iter 23.4-prep's class-method registration in the same globals
maps. Without this fix str_clone's param_modes: [Borrow] is invisible
to the App-arg walker, src_heap walks as Position::Consume, the
scope-close ailang_rc_dec is gated off, and the
str_clone_cross_realisation_uniform_abi test's plan-literal
`frees == 3` assertion does not hold. The fix is the substantively
correct repair, not a design departure.
9 new tests: 2 builtins-install unit, 2 IR-shape unit pins, 5 E2E
(2 RC-stats, 2 stdout-smoke for both Bool branches, 1 cross-
realisation). 4 new .ail.json fixtures.
Full cargo test --workspace: 513 passed, 0 failed.
bench/compile_check.py: 24/24 stable. bench/cross_lang.py: 25/25
stable.
2026-05-12 23:47:13 +02:00
..
2026-05-12 14:20:27 +02:00
2026-05-12 14:20:27 +02:00
2026-05-09 00:55:57 +02:00
2026-05-12 14:20:27 +02:00
2026-05-09 01:11:26 +02:00
2026-05-12 14:20:27 +02:00
2026-05-09 01:11:26 +02:00
2026-05-12 14:20:27 +02:00
2026-05-09 00:55:57 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 14:05:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 14:05:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-09 01:21:15 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 00:06:20 +02:00
2026-05-08 18:13:43 +02:00
2026-05-10 01:03:21 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 00:06:20 +02:00
2026-05-12 23:47:13 +02:00
2026-05-12 23:47:13 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 02:07:07 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 14:45:35 +02:00
2026-05-07 11:07:36 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 02:26:12 +02:00
2026-05-07 13:03:20 +02:00
2026-05-11 23:59:45 +02:00
2026-05-11 10:09:48 +02:00
2026-05-12 14:20:27 +02:00
2026-05-11 12:14:15 +02:00
2026-05-12 14:20:27 +02:00
2026-05-11 12:14:15 +02:00
2026-05-12 14:20:27 +02:00
2026-05-11 12:14:15 +02:00
2026-05-12 14:20:27 +02:00
2026-05-11 12:14:15 +02:00
2026-05-12 14:20:27 +02:00
2026-05-11 12:14:15 +02:00
2026-05-12 22:23:46 +02:00
2026-05-12 22:23:46 +02:00
2026-05-12 22:23:46 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 23:12:24 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 00:38:52 +02:00
2026-05-10 22:46:51 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 23:31:35 +02:00
2026-05-12 18:30:55 +02:00
2026-05-10 16:25:25 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 17:45:33 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 21:29:05 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 12:20:18 +02:00
2026-05-07 12:44:10 +02:00
2026-05-12 21:29:05 +02:00
2026-05-12 18:30:55 +02:00
2026-05-12 18:30:55 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 17:16:28 +02:00
2026-05-07 13:14:28 +02:00
2026-05-07 10:38:07 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 23:00:23 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 22:27:21 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 22:27:21 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 21:00:49 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 20:33:48 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 22:07:05 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 22:16:12 +02:00
2026-05-12 00:38:52 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 14:45:35 +02:00
2026-05-11 23:59:45 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 22:48:14 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 19:10:01 +02:00
2026-05-11 01:40:20 +02:00
2026-05-11 09:58:22 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 12:18:12 +02:00
2026-05-07 14:10:51 +02:00
2026-05-07 14:10:51 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 22:39:28 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 23:03:10 +02:00
2026-05-08 10:25:22 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 19:36:04 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 15:21:40 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 14:37:36 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 14:25:07 +02:00
2026-05-08 10:37:25 +02:00
2026-05-08 10:37:25 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 19:36:04 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 13:56:17 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 14:18:30 +02:00
2026-05-12 14:20:27 +02:00
2026-05-08 10:55:31 +02:00
2026-05-07 17:45:33 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 18:48:43 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 19:59:42 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 19:57:06 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 18:48:43 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 18:34:49 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 20:05:45 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 18:39:16 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 20:05:45 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 18:08:56 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 18:08:56 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 19:12:23 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 19:12:23 +02:00
2026-05-12 23:47:13 +02:00
2026-05-12 23:47:13 +02:00
2026-05-12 18:30:55 +02:00
2026-05-07 17:45:33 +02:00
2026-05-11 01:40:20 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 12:40:06 +02:00
2026-05-12 00:38:52 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 18:33:01 +02:00
2026-05-10 22:35:37 +02:00
2026-05-10 22:35:37 +02:00
2026-05-09 18:51:39 +02:00
2026-05-09 21:07:58 +02:00
2026-05-10 04:54:22 +02:00
2026-05-09 17:50:29 +02:00
2026-05-09 17:45:27 +02:00
2026-05-09 18:07:52 +02:00
2026-05-09 18:07:52 +02:00
2026-05-10 22:35:37 +02:00
2026-05-09 18:51:39 +02:00
2026-05-10 22:34:30 +02:00
2026-05-09 19:07:46 +02:00
2026-05-10 22:34:30 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 17:54:20 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 21:21:33 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 20:59:43 +02:00
2026-05-09 21:36:15 +02:00
2026-05-09 21:36:15 +02:00
2026-05-10 04:47:50 +02:00
2026-05-09 20:52:07 +02:00
2026-05-09 21:28:41 +02:00
2026-05-09 20:52:07 +02:00
2026-05-09 21:21:33 +02:00
2026-05-09 21:36:15 +02:00
2026-05-09 21:36:15 +02:00
2026-05-09 22:41:18 +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-10 22:16:51 +02:00
2026-05-10 22:16:51 +02:00
2026-05-10 01:19:45 +02:00
2026-05-10 01:19:45 +02:00
2026-05-10 01:06:18 +02:00
2026-05-12 14:20:27 +02:00
2026-05-07 23:00:23 +02:00
2026-05-07 11:31:57 +02:00
2026-05-07 11:23:21 +02:00
2026-05-07 11:31:57 +02:00
2026-05-07 11:31:57 +02:00