Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Runtime capabilities

A DSRV source file must enable the dialect or experiment for a construct it uses. The selected runtime must also be able to evaluate that construct. If a specification contains an unsupported construct, the runtime names it and refuses the specification before evaluating any stream.

CapabilityConstructs that require it
Distributiondist, monitored_at (also require language distributed)
Tagged unionsUnion values and constructors
Pattern matchingmatch, matches
Lazy ifAn if under the lazy_if experiment; ordinary if does not require it

The matrix shows each runtime's evaluator capabilities. yes means the runtime admits the construct; no means it refuses it. The distributed runtime accepts only untimed semantics and needs distribution settings. Reconfigurable runtimes need a live input pipeline.

Runtimedistributiontagged unionspattern matchinglazy if
asyncnoyesyesno
dataflownoyesyesyes
distributedyesyesnono
semi-syncnoyesyesno
reconf-semi-syncnoyesyesno
reconf-dataflownoyesyesyes

The async, dataflow, and semi-sync rows are also exercised with file input under each DSRV semantics. The other rows reflect the evaluators selected by their runtime builders; those runtimes need additional setup to start.

A runtime expression accepted by dynamic or defer is checked when it is accepted. An unsupported construct in it therefore fails during the run, rather than at initial admission.