;;;; The dev half of temp-frame.flan: a frame loop that polls the agent at the ;;;; top of every frame and never calls (free-temp). In a dev build the poll is ;;;; a frame boundary and wipes the temp allocator, so the registry does not ;;;; fill; the last line is whether it overflowed. (import agent "vendor:agent") (declare-c reg-overflowed [] i32 "flan_dev_reg_overflowed") (defn main [args [str]] i32 (let [n (bytes->i64 (bytes-view (at args 1))) total (i64 0)] (dotimes [i (i32 n)] (agent/poll) (let [s (str (i64->bytes (i64 i)))] (set total (+ total (i64 (length (bytes-view s))))))) (println total) (println (reg-overflowed))) 0)