Scriptorium.Quill.Advanced
Functions
Collects every leaf test path in the tree as a string list (root → leaf).
Returns the full paths of any tests that share a path with another test.
OSC 8 hyperlink: clicking opens the file at the given line in the terminal. The visible text uses a relative path; the URL uses the absolute path.
Run computation, failing with a timeout message if it exceeds ms. The budget covers the
body only: Async.StartChild(computation, ms) counts from the moment the body is queued, so
on .NET a saturated thread pool fails a body that has not started yet - hence the timer armed
from inside the workflow that runs the body. JS keeps a hand-rolled setTimeout so the timer
can be cleared - a pending one holds the Node event loop open past the end of the run.
Runs jobs with at most maxParallel of them in flight, returning the results in the order
the jobs were given.
The jobs are dealt round-robin into maxParallel lanes; a lane awaits its own jobs one after
another, and the lanes themselves run in parallel. With 7 jobs and 3 lanes:
lane 0 <- jobs 0, 3, 6 lane 1 <- jobs 1, 4 lane 2 <- jobs 2, 5
so at most 3 jobs are ever executing. A shared work queue would balance the load better, but
it needs an atomic read-modify-write on the cursor and the five targets do not agree on what
that is: fable-library has no Interlocked, and BEAM jobs run in heap-isolated processes
whose writes the parent cannot see. Lanes need no shared state at all.
Dealing round-robin rather than in contiguous blocks is what keeps that static split tolerable: slow tests tend to sit next to each other in a file, and consecutive jobs land in different lanes.
execute
Raw write without a trailing newline - used for the live dot progress line.
The CI guard against committed ftest/ftestList. Runs whatever reporters are registered, so that dropping the console reporter cannot silently drop the explanation for the non-zero exit code.