← index

VMabstract

inherits Object

The VM's self-introspection surface: stats (counters by section), aotRefusals (which members stayed interpreted and why), and ps / psTree (a live snapshot of tasks and workers as plain data).

Class methods

aotCompiled

What is natively compiled right now: a List with one #{ 'selector': ... 'role': ... } Map per registered entry ('method' or 'block'; block templates appear as 'block@<template-id>'). The positive mirror of aotRefusals -- an entry that was compiled and later tombstoned (a mispredicting speculation) drops back out. Empty when AOT is disabled; VM.stats.at:'aot' carries an enabled flag.

native

aotRefusals

The AOT drill-down: a List with one #{ 'selector': ... 'kind': ... 'reason': ... } Map per distinct refusal or skip -- for finding which of YOUR members stayed interpreted and why. A block literal has no user-facing name, so block templates appear under the pseudo-selector 'block@<template-id>'.

native

ps

A live snapshot of the scheduler as plain data: a Map with 'worker?', 'tasks' (id / state / fibers / park info per task, including the channel a parked task waits on), 'workers' (one row per spawned worker), and 'io' / 'compute' in-flight counts. Plain Maps and Lists, so .pp renders it and programs can walk it; the REPL's $ps shows the same snapshot as a table.

native

psTree

VM.ps plus each worker row's 'ps' slot filled with that worker's OWN tree, recursively -- the whole process topology in one call (docs/internal/CONCURRENCY_ARCH.md). Each worker answers between task resumes under a bounded deadline; a silent one reads 'unresponsive'.

native

stats

The VM's counters as a Map of sections: 'aot' (compiled / refused / skipped plus per-reason counts), 'compute' (offload-pool jobs), 'workers' (isolates spawned / completed, messages copied). compiled counts translation events; refused / skipped count distinct members from a bounded log -- counters, not ledgers.

VM.stats.keys    "* -> #(aot compute workers)

native

unit

The canonicalized path of the entry unit this VM runs, or nil in the REPL / qn -e. The same-program provisioning primitive: Worker.spawn:(VM.unit) runs another copy of this program.

native