lower lists to C: a self-contained VisList heap runtime (new/push/at/free) where the 1-based→0-based subtraction lives in vis_at and NOWHERE else, with an out-of-range stop instead of a wild read; emit construction (empty + literal), add … to, how many … in, the value/first/last … in, and for each (0-based internally, no human index); non-escaping lists freed at the verb's close; LIST_PRELUDE gated so list-free programs stay byte-identical. examples/lists.vis runs, ASan-clean; Rungs 1-5 oracle unaffected
$ koh steal kepr.uk/vision@02efdca2f8e8
·
parent: 31477551d904
discussion
log in to leave a comment.