;;;; A function taking an Allocator, redefined while the program runs. The value ;;;; is two words, the record and its incarnation, and the redefined body is ;;;; compiled by the reload emitter and called through the host's cell, so the ;;;; two have to agree on how those words cross. test_dev.ml runs it on both ;;;; backends. (import agent "vendor:agent") (defonce region Allocator) (defn fill [a Allocator n i32] i64 (let [v (vec-new i64 a)] (dotimes [i n] (push v (i64 i))) (i64 (length v)))) (defn main [] i32 (agent/start) (set region (arena-new 4096)) (dotimes [i 4000] (agent/wait 5)) 0)