;;;; A program to send failing evaluations at, for as long as it takes. ;;;; ;;;; Same shape as dev-repl.flan and for the same reason — C-x C-e is a thunk ;;;; the agent runs at a frame boundary, so a program under test has to keep ;;;; reaching them — but with room to spare. What test_dev.ml drives here is ;;;; the *failing* path, and a failure in this loop costs a clang driver that a ;;;; success does not: the macro module is built from scratch, thrown away, and ;;;; built again. dev-repl.flan's 4000 frames are twenty seconds, which is less ;;;; than that sequence takes on a cold cache, and a program that ran out mid ;;;; test would look exactly like the session death the test is here to deny. ;;;; ;;;; Two minutes, then, against a block that runs in well under one: enough ;;;; margin for a cold machine, and short enough that an aborted run does not ;;;; leave a process of this behind for the rest of the afternoon. (import agent "vendor:agent") (defvar ticks i64) (defn step [] i64 (set ticks (+ ticks 1)) ticks) (defn main [] i32 (agent/start "/tmp/flan-dev-robust-fallback.sock") (dotimes [i 24000] (agent/wait 5) (set ticks (step))) 0)