;;;; A program with no (agent/start) in it at all, which still takes a ;;;; redefinition. ;;;; ;;;; The listener comes from the package's constructor, which binds ;;;; FLAN_AGENT_SOCKET when the daemon has set it — so under [flan dev] there ;;;; is nothing to call and nothing to forget. Installing is still the ;;;; program's own decision and still happens where it says: [wait] is the ;;;; headless spelling of the poll at the top of a frame, and the second number ;;;; below cannot appear before it. ;;;; ;;;; It does import the agent and it does call into it. That is not an accident ;;;; of how the fixture was written: [Reach] prunes a package nothing calls, so ;;;; an executable that mentions the agent nowhere does not link the ;;;; constructor either. See flan_agent.c's [auto_start]. (import agent "vendor:agent") (defonce ticks i64) (defn tick [] i64 (set ticks (+ ticks 1)) ticks) (defn main [] i32 (print (tick)) (println "") (while (= (agent/wait 100) 0) 0) (print (tick)) (println "") 0)