pub(crate) struct MatrixRow<'a> {
pub(crate) name: &'static str,
pub(crate) what: &'static str,
pub(crate) backend: Backend,
pub(crate) module: &'a str,
pub(crate) entry: &'a str,
pub(crate) allow: Vec<String>,
pub(crate) ir: Option<&'a Arc<Program>>,
pub(crate) samples: Vec<u64>,
pub(crate) instructions: u64,
pub(crate) ok: bool,
}Expand description
Runs the matrix and prints it as a table.
A table rather than the JSON the rest of this harness emits, because this is a diagnostic somebody reads rather than a gate something compares.
It ran on the predecessor VM alone until ADR 0034 added the replacement
beside it to ask its completion condition 9’s question – whether the
replacement’s calling convention costs more than the one it replaced. The
predecessor is gone now, so vm runs alone by default, for the reason the interpreter never joined it
there: what this measures is a calling convention, and the interpreter
does not have one – it has an environment chain, which is a different
thing. --backend still takes a comma-separated list, and
--backend ast,vm reads that different question in one run – which
is the only place ADR 0029 says such a ratio may be read.
This does not run under cove-bench with no arguments, and that is
deliberate: eight two-million-turn loops on top of the suite would double
what every push waits for, to answer a question nobody asked on that push.
One row of the calling-convention matrix on one backend, and the samples
taken of it.
Fields§
§name: &'static str§what: &'static str§backend: Backend§module: &'a str§entry: &'a str§allow: Vec<String>§ir: Option<&'a Arc<Program>>§samples: Vec<u64>§instructions: u64§ok: bool