Luna-Flow/mare_mark/model does not have a README file

    ArtifactVersion

    pub(all) enum ArtifactVersion {
    V1
    }

    ArtifactVersion::identifier

    fn ArtifactVersion::identifier(self : ArtifactVersion) -> String

    ArtifactVersion::implementation

    fn ArtifactVersion::implementation(self : ArtifactVersion) -> String

    ArtifactVersion::lifecycle

    ArtifactVersion::version

    fn ArtifactVersion::version(self : ArtifactVersion) -> Int

    BatchPolicy

    pub(all) enum BatchPolicy {
    PerImplementation
    SharedBatchSize
    }

    BatchPolicy::text

    fn BatchPolicy::text(self : BatchPolicy) -> String

    Stable snake_case tag, used by protocol_canonical_encoding and the JSONL protocol object.

    BatchSinkStatus

    pub(all) enum BatchSinkStatus {
    Kept
    Discarded(String)
    }

    BatchSinkStatus::text

    fn BatchSinkStatus::text(self : BatchSinkStatus) -> String

    CalibrationEvent

    pub struct CalibrationEvent {
    implementation_id : String
    dataset_id : Int
    batch_iterations : Int
    elapsed_us : Double
    target_elapsed_us : Double
    retries : Int
    }

    CalibrationEvent::new

    fn CalibrationEvent::new(implementation_id : String, dataset_id : Int, batch_iterations : Int, elapsed_us : Double, target_elapsed_us : Double, retries : Int) -> CalibrationEvent

    CalibrationProtocol

    pub struct CalibrationProtocol {
    target_batch_time_us : Double
    min_batch_iterations : Int
    max_batch_iterations : Int
    max_sample_time_us : Double
    batch_policy : BatchPolicy
    }

    CalibrationProtocol::new

    fn CalibrationProtocol::new(target_batch_time_us : Double, min_batch_iterations : Int, max_batch_iterations : Int, max_sample_time_us : Double, batch_policy : BatchPolicy) -> CalibrationProtocol

    CaseDescriptor

    pub struct CaseDescriptor {
    operation : String
    operands : Array[String]
    context : String
    rounding : String
    }

    CaseDescriptor::new

    fn CaseDescriptor::new(operation : String, operands : Array[String], context : String, rounding : String) -> CaseDescriptor

    CrossoverResult

    pub enum CrossoverResult[Scale] {
    Found(ScaleBoundary[Scale], String, Array[String])
    NoCrossover(String, Array[String])
    NonMonotonic(Array[String])
    Inconclusive(String, Array[String])
    }

    CrossoverResult::found

    fn[Scale] CrossoverResult::found(boundary : ScaleBoundary[Scale], policy : String, evidence : Array[String]) -> CrossoverResult[Scale]

    CrossoverResult::inconclusive

    fn[Scale] CrossoverResult::inconclusive(reason : String, evidence : Array[String]) -> CrossoverResult[Scale]

    CrossoverResult::no_crossover

    fn[Scale] CrossoverResult::no_crossover(reason : String, evidence : Array[String]) -> CrossoverResult[Scale]

    CrossoverResult::non_monotonic

    fn[Scale] CrossoverResult::non_monotonic(evidence : Array[String]) -> CrossoverResult[Scale]

    DatasetKey

    pub struct DatasetKey[Scale] {
    scale : Scale
    dataset_id : Int
    }

    DatasetKey::new

    fn[Scale] DatasetKey::new(scale : Scale, dataset_id : Int) -> DatasetKey[Scale]

    DeploymentPolicy

    pub(all) enum DeploymentPolicy[Key, Choice] {
    Global(Choice)
    Piecewise(Array[Region[Key, Choice]])
    Lookup(Array[(Key, Choice)])
    Pareto(Array[ParetoPoint[Key, Choice]])
    Fallback(Choice, String)
    }

    EnvironmentSnapshot

    pub struct EnvironmentSnapshot {
    semantic : SemanticEnvironment
    performance : PerformanceEnvironment
    provenance : ProvenanceEnvironment
    }

    EnvironmentSnapshot::new

    ExecutionOutcome

    pub(all) enum ExecutionOutcome[Value] {
    Value(Value)
    Unsupported(String)
    ParseFailure(String)
    RaisedFlags(Value, Array[String])
    Trapped(String, Array[String])
    Aborted(Int, String)
    Timeout(Int, String)
    ExpectedDifference(String)
    }

    ExecutionOutcome::flags

    fn[Value] ExecutionOutcome::flags(self : ExecutionOutcome[Value]) -> Array[String]

    ExecutionOutcome::kind

    fn[Value] ExecutionOutcome::kind(self : ExecutionOutcome[Value]) -> String

    ExecutionOutcome::raised_flags

    fn[Value] ExecutionOutcome::raised_flags(value : Value, flags : Array[String]) -> ExecutionOutcome[Value]

    ExecutionOutcome::value

    fn[Value] ExecutionOutcome::value(value : Value) -> ExecutionOutcome[Value]

    ExecutionOutcome::value_option

    fn[Value] ExecutionOutcome::value_option(self : ExecutionOutcome[Value]) -> Value?

    ExecutionTarget

    pub(all) enum ExecutionTarget {
    Native
    Js
    Wasm
    WasmGc
    Llvm
    Custom(String)
    }

    ExecutionTarget::text

    fn ExecutionTarget::text(self : ExecutionTarget) -> String

    ExperimentDesign

    pub(all) enum ExperimentDesign {
    FixedDatasetRepeatedMeasurements
    MultipleDatasetsSingleMeasurement
    HierarchicalDatasetsAndRepeats
    }

    ExperimentDesign::text

    fn ExperimentDesign::text(self : ExperimentDesign) -> String

    Stable snake_case tag, used by protocol_canonical_encoding and the JSONL protocol object.

    GenerationContext

    pub struct GenerationContext[Scale] {
    seed : UInt64
    suite_id : String
    case_id : String
    dataset_key : DatasetKey[Scale]
    generator_id : String
    generator_version : String
    }

    GenerationContext::new

    fn[Scale] GenerationContext::new(seed : UInt64, suite_id : String, case_id : String, dataset_key : DatasetKey[Scale], generator_id : String, generator_version : String) -> GenerationContext[Scale]

    IntervalMode

    pub enum IntervalMode {
    ExploratoryInterval
    ConfirmatoryInterval
    }

    MeasurementKey

    pub struct MeasurementKey {
    dataset_id : Int
    repetition_id : Int
    block_id : Int
    }

    MeasurementKey::new

    fn MeasurementKey::new(dataset_id : Int, repetition_id : Int, block_id : Int) -> MeasurementKey

    Observation

    pub struct Observation {
    case_id : String
    implementation_id : String
    implementation_version : String
    dataset_id : Int
    repetition_id : Int
    block_id : Int
    phase : ObservationPhase
    raw_elapsed_us : Double
    iterations : Int
    batch_sink : BatchSinkStatus
    setup_timing : SetupTiming
    valid : Bool
    setup_frequency : SetupFrequency?
    workspace_scope : WorkspaceScope?
    scale_text : String
    }

    Observation::new

    fn Observation::new(case_id : String, implementation_id : String, implementation_version : String, dataset_id : Int, repetition_id : Int, block_id : Int, phase : ObservationPhase, raw_elapsed_us : Double, iterations : Int, batch_sink : BatchSinkStatus, setup_timing : SetupTiming, valid : Bool, setup_frequency? : SetupFrequency, workspace_scope? : WorkspaceScope, scale_text? : String) -> Observation

    ObservationPhase

    pub(all) enum ObservationPhase {
    Exploratory
    Confirmatory
    }

    ObservationPhase::text

    fn ObservationPhase::text(self : ObservationPhase) -> String

    OperationResult

    pub struct OperationResult[Value, Context] {
    outcome : ExecutionOutcome[Value]
    next_context : Context?
    stdout : String
    stderr : String
    exit_code : Int?
    }

    OperationResult::completed

    fn[Value, Context] OperationResult::completed(value : Value, next_context : Context) -> OperationResult[Value, Context]

    OperationResult::new

    fn[Value, Context] OperationResult::new(outcome : ExecutionOutcome[Value], next_context : Context?, stdout? : String, stderr? : String, exit_code? : Int) -> OperationResult[Value, Context]

    OrderPolicy

    pub(all) enum OrderPolicy {
    BalancedBlocks(UInt64)
    FixedOrder
    }

    OutlierPolicy

    pub(all) enum OutlierPolicy {
    ReportOnly
    TukeyFence
    MADTrim
    }

    OutlierPolicy::text

    fn OutlierPolicy::text(self : OutlierPolicy) -> String

    Stable snake_case tag, used by protocol_canonical_encoding and the JSONL protocol object.

    ParetoPoint

    pub struct ParetoPoint[Key, Choice] {
    key : Key
    choice : Choice
    primary : Double
    secondary : Double
    }

    ParetoPoint::new

    fn[Key, Choice] ParetoPoint::new(key : Key, choice : Choice, primary : Double, secondary : Double) -> ParetoPoint[Key, Choice]

    PerformanceEnvironment

    pub struct PerformanceEnvironment {
    runtime : String
    cpu : String
    gc : String
    concurrency : Int
    clock : String
    device : String
    frequency_policy : String
    }

    PerformanceEnvironment::new

    fn PerformanceEnvironment::new(runtime : String, cpu : String, gc : String, concurrency : Int, clock : String, device? : String, frequency_policy? : String) -> PerformanceEnvironment

    ProtocolVersion

    pub(all) enum ProtocolVersion {
    V1
    V2
    }

    Format of protocol_identity.

    • V1 (mmkp_1): mmkp_1:<warmup_iterations>:<confirmatory_samples>:<practical_delta_pct>. It ignored every other protocol field and is no longer produced.
    • V2 (mmkp_2): mmkp_2:<16 hex digits>, the 64-bit FNV-1a digest of protocol_canonical_encoding, which covers every RunProtocol field.

    ProtocolVersion::identifier

    fn ProtocolVersion::identifier(self : ProtocolVersion) -> String

    ProtocolVersion::implementation

    fn ProtocolVersion::implementation(self : ProtocolVersion) -> String

    ProtocolVersion::lifecycle

    ProtocolVersion::version

    fn ProtocolVersion::version(self : ProtocolVersion) -> Int

    ProvenanceEnvironment

    pub struct ProvenanceEnvironment {
    os : String
    hostname : String
    timestamp : String
    revision : String
    run_id : String
    }

    ProvenanceEnvironment::new

    fn ProvenanceEnvironment::new(os : String, hostname : String, timestamp : String, revision : String, run_id : String) -> ProvenanceEnvironment

    Region

    pub struct Region[Key, Choice] {
    lower : Key?
    upper : Key?
    choice : Choice
    evidence_ids : Array[String]
    }

    Region::new

    fn[Key, Choice] Region::new(lower : Key?, upper : Key?, choice : Choice, evidence_ids : Array[String]) -> Region[Key, Choice]

    ReplaySpec

    pub struct ReplaySpec {
    command : String
    arguments : Array[String]
    timeout_ms : Int
    }

    ReplaySpec::new

    fn ReplaySpec::new(command : String, arguments : Array[String], timeout_ms? : Int) -> ReplaySpec

    RunProtocol

    pub struct RunProtocol {
    experiment_design : ExperimentDesign
    warmup_iterations : Int
    warmup_time_us : Double?
    calibration : CalibrationProtocol
    practical_delta_pct : Double
    order_policy : OrderPolicy
    outlier_policy : OutlierPolicy
    validation_coverage : ValidationCoverage
    exploratory_samples : Int
    confirmatory_samples : Int
    repeats_per_dataset : Int
    }

    RunProtocol::new

    fn RunProtocol::new(experiment_design : ExperimentDesign, warmup_iterations : Int, warmup_time_us : Double?, calibration : CalibrationProtocol, practical_delta_pct : Double, order_policy : OrderPolicy, outlier_policy : OutlierPolicy, validation_coverage : ValidationCoverage, exploratory_samples : Int, confirmatory_samples : Int, repeats_per_dataset? : Int) -> RunProtocol

    RunSummary

    pub struct RunSummary {
    run_id : String
    observation_count : Int
    validation_count : Int
    calibration_count : Int
    complete : Bool
    artifact_location : String?
    passed_count : Int
    failed_count : Int
    unsupported_count : Int
    expected_difference_count : Int
    measurement_validation_count : Int
    environment : EnvironmentSnapshot?
    protocol : RunProtocol?
    seed : UInt64?
    }

    Outcome of one run.

    run_id is built by the runner with run_identity: case id, protocol identity, run seed, and the provenance run_id and timestamp of the environment. protocol and seed record what the run was executed with, so a JSONL record can be audited and re-analysed; both are None for summaries built without them.

    RunSummary::new

    fn RunSummary::new(run_id : String, observation_count : Int, validation_count : Int, calibration_count : Int, complete : Bool, artifact_location : String?, passed_count? : Int, failed_count? : Int, unsupported_count? : Int, expected_difference_count? : Int, measurement_validation_count? : Int, environment? : EnvironmentSnapshot, protocol? : RunProtocol, seed? : UInt64) -> RunSummary

    ScaleBoundary

    pub struct ScaleBoundary[Scale] {
    below : Scale
    at_or_above : Scale
    }

    ScaleBoundary::new

    fn[Scale] ScaleBoundary::new(below : Scale, at_or_above : Scale) -> ScaleBoundary[Scale]

    SchemaVersion

    pub(all) enum SchemaVersion {
    V1
    V2
    }

    SchemaVersion::identifier

    fn SchemaVersion::identifier(self : SchemaVersion) -> String

    SchemaVersion::implementation

    fn SchemaVersion::implementation(self : SchemaVersion) -> String

    SchemaVersion::lifecycle

    SchemaVersion::version

    fn SchemaVersion::version(self : SchemaVersion) -> Int

    SemanticEnvironment

    pub struct SemanticEnvironment {
    target : ExecutionTarget
    toolchain : String
    compiler_flags : String
    dtype_abi : String
    }

    SemanticEnvironment::new

    fn SemanticEnvironment::new(target : ExecutionTarget, toolchain : String, compiler_flags : String, dtype_abi : String) -> SemanticEnvironment

    SetupFrequency

    pub(all) enum SetupFrequency {
    PerRun
    PerDataset
    PerImplementation
    PerSample
    PerBatch
    PerIteration
    }

    SetupPolicy

    pub struct SetupPolicy {
    frequency : SetupFrequency
    timing : SetupTiming
    workspace_scope : WorkspaceScope
    }

    SetupPolicy::new

    fn SetupPolicy::new(frequency : SetupFrequency, timing : SetupTiming, workspace_scope : WorkspaceScope) -> SetupPolicy

    SetupTiming

    pub(all) enum SetupTiming {
    ExcludedFromMeasurement
    IncludedInMeasurement
    }

    Validation

    pub struct Validation {
    status : ValidationStatus
    oracle_id : String
    implementation_id : String
    scale_text : String
    evidence : ValidationEvidence?
    measurement : MeasurementKey?
    }

    Validation::detailed

    fn Validation::detailed(status : ValidationStatus, oracle_id : String, implementation_id : String, scale_text : String, evidence : ValidationEvidence, measurement? : MeasurementKey) -> Validation

    Validation::new

    fn Validation::new(status : ValidationStatus, oracle_id : String, implementation_id : String, scale_text : String, measurement? : MeasurementKey) -> Validation

    ValidationCoverage

    pub(all) enum ValidationCoverage {
    EveryMeasurement
    EveryDataset
    ConfirmatoryOnly
    }

    ValidationCoverage::text

    fn ValidationCoverage::text(self : ValidationCoverage) -> String

    Stable snake_case tag, used by protocol_canonical_encoding and the JSONL protocol object.

    ValidationEvidence

    pub(all) struct ValidationEvidence {
    case_id : String
    dataset_id : Int
    step_id : Int
    operation : String
    operands : Array[String]
    context : String
    rounding : String
    expected : String
    actual : String
    expected_kind : String
    actual_kind : String
    expected_flags : Array[String]
    actual_flags : Array[String]
    trap : String
    stderr : String
    exit_code : Int?
    fingerprint : String
    implementation_version : String
    replay : ReplaySpec
    }

    ValidationFailure

    pub struct ValidationFailure {
    validation : Validation
    seed : UInt64
    scale_text : String
    original_fingerprint : String
    minimal_fingerprint : String
    shrink_path : Array[String]
    minimal_input : String
    }

    ValidationFailure::new

    fn ValidationFailure::new(validation : Validation, seed : UInt64, scale_text : String, original_fingerprint : String, minimal_fingerprint : String, shrink_path : Array[String], minimal_input : String) -> ValidationFailure

    ValidationStatus

    pub(all) enum ValidationStatus {
    Valid
    Invalid(String)
    Skipped(String)
    ExpectedDifference(String)
    Unsupported(String)
    InfrastructureFailure(String)
    }

    VersionLifecycle

    pub(all) enum VersionLifecycle {
    Supported
    Deprecated
    }

    WorkspaceScope

    pub(all) enum WorkspaceScope {
    RunWorkspace
    DatasetWorkspace
    ImplementationWorkspace
    SampleWorkspace
    BatchWorkspace
    OperationWorkspace
    }

    artifact_identity

    fn artifact_identity(case_id : String, implementation_id : String, dataset_id : Int, protocol : RunProtocol) -> String

    confirmatory_interval

    fn confirmatory_interval() -> IntervalMode

    environment_compatible

    fn environment_compatible(a : EnvironmentSnapshot, b : EnvironmentSnapshot) -> Bool

    exploratory_interval

    fn exploratory_interval() -> IntervalMode

    protocol_canonical_encoding

    fn protocol_canonical_encoding(protocol : RunProtocol) -> String

    Canonical, unambiguous ASCII encoding of every RunProtocol field: mmkp_2 followed by ;<key>=<value> for each field in a fixed order.

    Keys are fixed and values never contain ; or =, so two protocols have the same encoding exactly when every field is equal (doubles compared by bit pattern). protocol_identity is a digest of this text.

    protocol_identity

    fn protocol_identity(protocol : RunProtocol) -> String

    Identity of a run protocol: mmkp_2:<16 lowercase hex digits>, the 64-bit FNV-1a digest of protocol_canonical_encoding(protocol).

    It covers every RunProtocol field, including the calibration, the BalancedBlocks seed and the optional warm-up time. Equal protocols get equal identities; protocols that differ in any field get different ones (up to 64-bit digest collisions). Use protocol_canonical_encoding or the JSONL protocol object to see the fields behind an identity.

    run_identity

    fn run_identity(case_id : String, protocol : RunProtocol, seed : UInt64, provenance : ProvenanceEnvironment) -> String

    RunSummary.run_id of one run: five components joined by |, in order

    1. the case id,
    2. protocol_identity(protocol),
    3. the run seed in decimal,
    4. the provenance run_id of the environment,
    5. the provenance timestamp of the environment.

    % and | inside the case id, provenance run id and timestamp are written as %25 and %7C, so the components can be recovered by splitting on |. Two runs of the same case and protocol get different ids when their seeds, provenance run ids or timestamps differ.