Brummel
47efbdb5c0
test: RED owned-RawBuf drop-leak repro (refs #43 )
...
raw_buf_owned_drop_balances_rc_stats + examples/raw_buf_drop_min.ail:
a single owned 1-slot Int RawBuf, written once and read once. Prints
10 correctly but under AILANG_RC_STATS shows allocs=2 frees=1 live=1 —
the slab leaks. Asserts stdout=="10" (green) and live==0 (RED until
the owned-temp drop call is emitted).
Root cause (verified, supersedes #42 's disproven diagnosis). The
leaked value is the anonymous owned temporary produced by RawBuf.set
(own-ret, in-place: intercepts.rs emit_rawbuf_set_int does `ret ptr
%b`, same slab as its input), then passed to RawBuf.get whose RawBuf
param is `borrow`. After get borrows and returns an i64 the temp is
dead, but no one drops it: codegen's only two scope-close drop
emitters cover Term::Let binders (lib.rs:1785-1822) and Own fn-params
(lib.rs:1426-1502); the general call lowerer emit_call (lib.rs:2552)
splices args without inspecting per-arg own/borrow modes and emits no
post-call drop for an owned arg landing in a borrow slot.
Binder-independent, contra #42 : the fully inline form with no `let`
at all produces byte-identical leaking IR (no Term::Let exists, so the
1785 gate is never reached). The defect is the drop-CALL-site emission
raw-buf.4 deferred to raw-buf.5; uniqueness.rs is not implicated.
2026-05-30 10:41:52 +02:00
..
2026-05-28 19:19:00 +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-28 19:00:12 +02:00
2026-05-28 19:00:12 +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 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +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-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-28 14:43:03 +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-28 13:31:31 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-12 14:20:27 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-29 17:21:32 +02:00
2026-05-29 17:21:32 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +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-21 12:22:45 +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 12:22:45 +02:00
2026-05-28 14:43:03 +02:00
2026-05-30 00:49:51 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-29 19:39:35 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-29 17:56:10 +02:00
2026-05-14 01:38:41 +02:00
2026-05-21 12:22:45 +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-30 00:49:51 +02:00
2026-05-30 10:41:52 +02:00
2026-05-30 00:49:51 +02:00
2026-05-30 00:49:51 +02:00
2026-05-30 00:49:51 +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-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 12:22:45 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +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-21 12:22:45 +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-28 14:43:03 +02:00
2026-05-11 01:46:58 +02:00
2026-05-21 12:57:06 +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 12:22:45 +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