ludic.base: the growth paths push through kept_push, whose statement-level @alloc_ok says the bound

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-28 16:01:28 +03:00
parent 3f32bfda7c
commit eb25f24c96
4 changed files with 19 additions and 18 deletions

View file

@ -1,4 +1,6 @@
# ludic.base/kept.ludic - the one push the frame is allowed: into a list its owner keeps and clears,
# which grows to the most it has ever held and stays there (a queue's halves, a query's out list)
@alloc_ok("a kept list: it grows to the most it has held once, is cleared and reused, never dropped")
export function kept_push<T>(xs: []T, v: T) -> void { push(xs, v) }
export function kept_push<T>(xs: []T, v: T) -> void {
@alloc_ok("a kept list: it grows to the most it has held once, is cleared and reused, never dropped")
push(xs, v)
}