compile

fun compile(code: String, name: String, guardLane: GuardLane?, evalId: Int, abandoned: BooleanSupplier): PlainEngine.Compiled

Compile code to woven class bytes. On the compiler thread (ReplBridge.COMPILER) and nowhere else: the FIR caches under a CLI session are single-threaded, and that one thread is all that keeps two compiles out of them at once. warmUp must already have run — warming here would silently drop its SPLIT api pinning, since the first call is the one that sticks. name becomes the generated class's name, so a fixed one would give every snippet the same class.

Once abandoned answers true — the eval was cancelled or reaped, so nothing will read the result — the next checkpoint ends the compile: one still queued never starts, and one under way stops before the checkers or the backend, whichever it reaches next. Nothing stops one inside a phase: the frontend never polls for cancellation, and the backend polls once before lowering and once after codegen, with nothing in between. An interrupt is ruled out: the compiler maps its cached jar handles lazily, and a map on an interrupted thread closes a shared handle that later compiles keep using.