Skip to main content

MatrixRow

Struct MatrixRow 

Source
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

Auto Trait Implementations§

§

impl<'a> Freeze for MatrixRow<'a>

§

impl<'a> RefUnwindSafe for MatrixRow<'a>

§

impl<'a> Send for MatrixRow<'a>

§

impl<'a> Sync for MatrixRow<'a>

§

impl<'a> Unpin for MatrixRow<'a>

§

impl<'a> UnsafeUnpin for MatrixRow<'a>

§

impl<'a> UnwindSafe for MatrixRow<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.