//! The nox machine: one uniform step relation for nox reductions of any
//! length (`specs/machine.md`).
//!
//! A run is a trace of 64-column rows โ€” init entries, one row per machine
//! step (dispatch, return, axis level, hash_data, pair equality), and
//! 32-row blocks of hemera permutations computing noun digests โ€” with a
//! write-once memory (nouns, continuation frames, digests) checked by a
//! logUp argument. The row relation is the same for every program: the
//! verifier key is the constraint structure; a program enters through the
//! statement's public columns and constants. [`prove`] runs nox, builds
//! the trace, proves the AIR, accumulates its two committed words and
//! decides the accumulator with one WHIR opening; [`verify`] derives the
//! AIR from the statement and checks all three parts.

pub mod air;
mod control;
mod control_aux;
mod control_eval;
mod control_ret;
mod control_word;
mod exec;
mod execute;
pub mod hemera;
pub mod layout;
mod memory;
mod perm;
mod phase2;
pub(crate) use phase2::build as phase2_build;
mod run;
mod run_eq;
mod run_ops;
mod slots;
pub mod statement;
mod trace;

#[cfg(test)]
pub(crate) mod tests;
#[cfg(test)]
mod tests_ops;
#[cfg(test)]
mod tests_review;

pub use exec::{Hints, MachineError};
pub use execute::{execute, execute_exact, execute_hinted, execute_with};
pub use statement::{MachinePublic, MachineState, MachineStatement, program_digest};

use lens::{MultilinearPcs, Transcript, WhirParams};

use crate::accumulate::{self, AccConfig, AccProof, DeciderProof};
use crate::air::{self as uair, AirProof, Trace};
use crate::execution::ExecutionNoun;
use air::{Constants, Machine};

/// A machine proof: trace geometry, the AIR messages of every segment,
/// one accumulation step per segment over its two committed words, and the
/// decider of the last accumulator.
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct MachineProof {
    /// `log2` of a segment's rows.
    pub log_rows: u32,
    /// First row of the permutation region (global).
    pub start: u64,
    pub air: AirProof,
    pub accs: Vec<AccProof>,
    pub decider: DeciderProof,
}

impl MachineProof {
    /// `u8 log_rows ยท u64 start ยท AirProof ยท u32 S ยท S ร— AccProof ยท DeciderProof`.
    pub fn to_bytes(&self) -> Vec<u8> {
        let mut w = lens::rspcs::wire::Writer::default();
        w.u8(self.log_rows as u8);
        w.u64(self.start);
        self.air.write(&mut w);
        w.u32(self.accs.len());
        for a in &self.accs {
            a.write(&mut w);
        }
        self.decider.write(&mut w, true);
        w.buf
    }
    pub fn from_bytes(bytes: &[u8]) -> Result<Self, String> {
        let mut r = lens::rspcs::wire::Reader::new(bytes);
        let e = |e: lens::PcsError| format!("machine proof: {e}");
        let log_rows = u32::from(r.u8().map_err(e)?);
        let start = r.u64().map_err(e)?;
        let air = AirProof::read(&mut r).map_err(e)?;
        let s = r.count(64).map_err(e)?;
        let accs = (0..s)
            .map(|_| AccProof::read(&mut r))
            .collect::<Result<_, _>>()
            .map_err(e)?;
        let (decider, ext) = DeciderProof::read(&mut r).map_err(e)?;
        r.finish().map_err(e)?;
        if !ext {
            return Err("machine proof: decider of a base word".into());
        }
        Ok(Self {
            log_rows,
            start,
            air,
            accs,
            decider,
        })
    }
    pub fn air_bytes(&self) -> usize {
        self.air.to_bytes().len()
    }
    pub fn acc_bytes(&self) -> usize {
        self.accs.iter().map(|a| a.to_bytes().len()).sum()
    }
    pub fn decider_bytes(&self) -> usize {
        let mut w = lens::rspcs::wire::Writer::default();
        self.decider.write(&mut w, true);
        w.buf.len()
    }
}

/// Largest segment this implementation proves (`2^MAX_LOG_ROWS` rows).
pub const MAX_LOG_ROWS: u32 = 18;
/// Default segment size for long runs.
pub const SEGMENT_LOG_ROWS: u32 = 14;

/// The run of a statement: the global trace, its geometry, the statement.
#[derive(Clone)]
pub struct Run {
    pub statement: MachineStatement,
    pub trace: Trace,
    pub start: usize,
    pub seg_log: u32,
    pub constants: Constants,
    pub init: Vec<(u64, u64, u64, u64)>,
}

impl Run {
    pub fn segments(&self) -> usize {
        self.trace.rows() >> self.seg_log
    }
    /// Segment `i`'s rows.
    pub fn segment(&self, i: usize) -> Trace {
        let len = (1usize << self.seg_log) * layout::W1;
        Trace {
            width: layout::W1,
            cells: self.trace.cells[i * len..(i + 1) * len].to_vec(),
        }
    }
    /// Segment `i`'s AIR.
    pub fn machine(&self, i: usize) -> Machine {
        let rows = 1usize << self.seg_log;
        Machine::new(
            self.constants.clone(),
            &self.init,
            self.start,
            i * rows,
            rows,
        )
    }
}

fn transcript(st: &MachineStatement, log_rows: u32, start: u64) -> Transcript {
    let mut t = Transcript::new(b"zheng-machine-v1");
    let bytes = st.bytes();
    t.absorb_u64(bytes.len() as u64);
    t.absorb(&bytes);
    t.absorb_u64(u64::from(log_rows));
    t.absorb_u64(start);
    t
}

/// Accumulation over `2^log_rows`-row segments: words of
/// `log_rows + log2(W1)` variables, up to three inputs (the accumulator and
/// a segment's two words, each with its OOD answers, its own claim and the
/// previous segment's boundary claim).
pub fn acc_config(whir: &WhirParams, log_rows: u32) -> Result<AccConfig, String> {
    let vars = log_rows as usize + layout::W1.trailing_zeros() as usize;
    let word = accumulate::fresh_ood(whir, vars)? + 2;
    let probe = AccConfig::derive(whir, vars, 3, 2 * word)?;
    AccConfig::derive(whir, vars, 3, probe.acc_claims() + 2 * word)
}

fn timer() -> impl Fn(&str) {
    let on = std::env::var_os("ZHENG_TIMING").is_some();
    let clock = std::time::Instant::now();
    move |what: &str| {
        if on {
            eprintln!("  {what}: {:.1} ms", clock.elapsed().as_secs_f64() * 1e3);
        }
    }
}

/// Prove a run.
pub fn prove_run(run: &Run, whir: &WhirParams) -> Result<MachineProof, String> {
    let n = run.seg_log;
    if n > MAX_LOG_ROWS {
        return Err(format!("machine: 2^{n}-row segments > 2^{MAX_LOG_ROWS}"));
    }
    let lap = timer();
    let cfg = acc_config(whir, n)?;
    let segs = run.segments();
    let machines: Vec<Machine> = (0..segs).map(|i| run.machine(i)).collect();
    let w1s: Vec<Trace> = (0..segs).map(|i| run.segment(i)).collect();
    let mut t = transcript(&run.statement, n, run.start as u64);
    let mut carry = nebu::Fp3::ZERO;
    let (air, w2s, words) = uair::prove(
        &machines,
        whir,
        &w1s,
        |i, ch| {
            let (w2, out) = phase2::build(&machines[i], &w1s[i], ch, carry);
            carry = out;
            w2
        },
        &mut t,
    )?;
    lap("air");
    accumulate::bind(&mut t, &cfg);
    let wp = layout::W1;
    let mut acc: Option<accumulate::Witnessed> = None;
    let mut accs = Vec::with_capacity(segs);
    for (i, pair) in words.into_iter().enumerate() {
        let [i1, i2] = pair;
        let d1 = lens::Whir::commit(whir, &w1s[i].column_major(wp)).1;
        let d2 = lens::Whir::commit(whir, &w2s[i].column_major(wp)).1;
        let x1 = accumulate::Witnessed {
            instance: i1,
            data: d1,
        };
        let x2 = accumulate::Witnessed {
            instance: i2,
            data: d2,
        };
        let mut inputs: Vec<&accumulate::Witnessed> = acc.iter().collect();
        inputs.push(&x1);
        inputs.push(&x2);
        let (next, proof) = accumulate::accumulate(&cfg, &inputs, &mut t)?;
        acc = Some(next);
        accs.push(proof);
    }
    lap("accumulate");
    let decider = accumulate::decide(&cfg, acc.as_ref().expect("a segment"), &mut t)?;
    lap("decide");
    Ok(MachineProof {
        log_rows: n,
        start: run.start as u64,
        air,
        accs,
        decider,
    })
}

/// Run and prove.
pub fn prove(
    program: &ExecutionNoun,
    input: &[u64],
    budget: u64,
    whir: &WhirParams,
) -> Result<(MachineStatement, MachineProof), String> {
    let run = execute(program, input, budget).map_err(|e| format!("machine: {e:?}"))?;
    let proof = prove_run(&run, whir)?;
    Ok((run.statement, proof))
}

/// Verify a machine proof of a statement that reads no state.
pub fn verify(
    st: &MachineStatement,
    proof: &MachineProof,
    whir: &WhirParams,
) -> Result<(), String> {
    verify_with_state(st, proof, whir, None)
}

/// A statement with state: authenticate the evidence under the
/// statement's root and check every read against it (the reads become
/// init entries only after this). A statement without state needs none.
/// Shared by the machine, recursive and wrapped profiles.
pub fn authenticate_state(
    st: &MachineStatement,
    evidence: Option<&crate::execution::state_evidence::StateEvidence>,
) -> Result<(), String> {
    if let Some(state) = &st.state {
        let auth = evidence
            .ok_or("machine: the statement reads state; no state evidence")?
            .authenticate(state.root)?;
        for &(ns, key, value) in &state.reads {
            if auth.cell(ns, key) != Some(value) {
                return Err(format!(
                    "machine: read ({ns}, {key}) is not the authenticated value"
                ));
            }
        }
    }
    Ok(())
}

/// Verify a machine proof against its statement under `whir` (admitted by
/// the 128-bit policy). A statement with state needs the evidence: zheng
/// authenticates it under the statement's root and checks every read
/// against it before the reads become init entries โ€” no caller duty.
pub fn verify_with_state(
    st: &MachineStatement,
    proof: &MachineProof,
    whir: &WhirParams,
    evidence: Option<&crate::execution::state_evidence::StateEvidence>,
) -> Result<(), String> {
    let derived = st.derive()?;
    authenticate_state(st, evidence)?;
    let (n, start) = (proof.log_rows, proof.start as usize);
    let segs = proof.air.segments.len();
    let rows = 1usize << n;
    if !(6..=MAX_LOG_ROWS).contains(&n)
        || segs == 0
        || proof.accs.len() != segs
        || !start.is_multiple_of(layout::BLOCK)
        || start <= derived.entries.len()
        || start + layout::BLOCK > segs * rows
    {
        return Err("machine: geometry".into());
    }
    crate::execution::succinct::admit::<lens::Whir>(whir, n as usize + 6)?;
    let constants = Constants {
        fml0: derived.fml0,
        obj0: derived.obj0,
        p: derived.entries.len() as u64,
        output: derived.output,
        cycles: st.cycles,
        root: derived.root,
    };
    let init = statement::init_columns(&derived.entries);
    let machines: Vec<Machine> = (0..segs)
        .map(|i| Machine::new(constants.clone(), &init, start, i * rows, rows))
        .collect();
    let cfg = acc_config(whir, n)?;
    let mut t = transcript(st, n, proof.start);
    let lap = timer();
    let words = uair::verify(&machines, whir, n as usize, &proof.air, &mut t)?;
    lap("verify air");
    accumulate::bind(&mut t, &cfg);
    let mut acc: Option<accumulate::Instance> = None;
    for (pair, step) in words.iter().zip(&proof.accs) {
        let mut inputs: Vec<&accumulate::Instance> = acc.iter().collect();
        inputs.extend(pair.iter());
        acc = Some(accumulate::verify_step(&cfg, &inputs, step, &mut t)?);
    }
    lap("verify steps");
    let r = accumulate::verify_decider(
        &cfg,
        acc.as_ref().expect("a segment"),
        &proof.decider,
        &mut t,
    );
    lap("verify decider");
    r
}

Homonyms

neural/trident/src/typecheck/mod.rs
neural/trident/src/package/mod.rs
soft3/glia/run/core/mod.rs
soft3/glia/run/arch/mod.rs
neural/trident/src/cost/mod.rs
cyb/prysm/atoms/rs/mod.rs
soft3/mir/src/bevy/mod.rs
cyb/optica/src/query/mod.rs
soft3/mudra/src/proof/mod.rs
cyb/optica/src/output/mod.rs
neural/trident/src/neural/mod.rs
soft3/glia/import/loader/mod.rs
neural/trident/src/field/mod.rs
neural/trident/src/config/mod.rs
cyb/shell/src/shell/mod.rs
soft3/tru/rs/pass/mod.rs
soft3/nox/rs/jets/mod.rs
cyb/optica/src/scanner/mod.rs
soft3/tru/rs/focusing/mod.rs
neural/trident/tests/support/mod.rs
soft3/tru/rs/graph/mod.rs
neural/trident/src/verify/mod.rs
neural/trident/src/runtime/mod.rs
cyb/prysm/system/rs/mod.rs
neural/trident/src/cli/mod.rs
soft3/nox/rs/data/mod.rs
soft3/nox/rs/patterns/mod.rs
neural/trident/src/deploy/mod.rs
soft3/glia/run/tokenizer/mod.rs
soft3/mir/src/frame/mod.rs
neural/trident/src/ir/mod.rs
neural/trident/src/lsp/mod.rs
soft3/tru/rs/model/mod.rs
neural/trident/src/api/mod.rs
cyb/optica/src/server/mod.rs
cyb/shell/src/worlds/mod.rs
warriors/trisha/rs/cost/mod.rs
soft3/cybergraph/tests/common/mod.rs
soft3/glia/run/bench/mod.rs
soft3/glia/run/backend/mod.rs
warriors/trisha/rs/lower/mod.rs
neural/trident/src/ast/mod.rs
soft3/crate/src/chain/mod.rs
warriors/trisha/rs/recursive/mod.rs
neural/trident/src/import/mod.rs
cyb/optica/src/parser/mod.rs
cyb/shell/src/agent/mod.rs
neural/trident/src/diagnostic/mod.rs
soft3/glia/run/ir/mod.rs
cyb/prysm/molecules/rs/mod.rs
warriors/trisha/rs/neural/mod.rs
soft3/mir/src/graph/mod.rs
cyb/optica/src/graph/mod.rs
soft3/mir/src/epoch/mod.rs
soft3/crate/src/genesis/mod.rs
soft3/crate/src/wallet/mod.rs
cyb/optica/src/render/mod.rs
neural/trident/src/syntax/mod.rs
neural/rs/darwin-sys/src/ffi/mod.rs
neural/trident/src/api/tests/mod.rs
neural/eidos/rs/src/surface/mod.rs
soft3/crate/src/chain/net/mod.rs
warriors/trisha/rs/neural/inference/mod.rs
neural/eidos/rs/src/elab/mod.rs
soft3/glia/run/backend/wgpu/mod.rs
soft3/glia/run/backend/honeycrisp/mod.rs
soft3/zheng/rs/src/phi/mod.rs
soft3/cybernode/rs/src/genesis/mod.rs
soft3/zheng/rs/src/ccs/mod.rs
cyb/shell/src/worlds/models/mod.rs
cyb/honeycrisp/acpu/src/matrix/mod.rs
neural/trident/src/neural/data/mod.rs
soft3/cybernode/rs/src/chain/mod.rs
soft3/glia/run/cli/cmd/mod.rs
neural/rs/rsc/src/lints/mod.rs
cyb/honeycrisp/acpu/src/vector/mod.rs
warriors/trisha/rs/neural/model/mod.rs
cyb/shell/src/worlds/vault/mod.rs
soft3/zheng/rs/src/accumulate/mod.rs
warriors/trisha/rs/neural/training/mod.rs
cyb/shell/src/worlds/body/mod.rs
soft3/zheng/rs/src/air/mod.rs
neural/trident/src/syntax/lexer/mod.rs
neural/trident/src/config/scaffold/mod.rs
neural/trident/src/typecheck/tests/mod.rs
cyb/honeycrisp/unimem/tests/image_support/mod.rs
cyb/honeycrisp/acpu/src/crypto/mod.rs
warriors/trisha/rs/cost/stack_verifier/mod.rs
soft3/zheng/rs/src/recursion/mod.rs
neural/trident/src/ir/tir/mod.rs
cyb/shell/src/worlds/sigma/mod.rs
neural/trident/src/verify/solve/mod.rs
cyb/wysm/crates/wast/tests/mod.rs
neural/trident/src/package/hash/mod.rs
soft3/radio/iroh-blobs/examples/common/mod.rs
neural/rs/macros/src/registers/mod.rs
cyb/honeycrisp/acpu/src/numeric/mod.rs
soft3/crate/src/chain/tests/mod.rs
neural/trident/src/neural/model/mod.rs
soft3/bbg/rs/src/transition/mod.rs
soft3/radio/iroh-blobs/src/store/mod.rs
neural/trident/src/lsp/semantic/mod.rs
cyb/honeycrisp/acpu/src/gemm/mod.rs
neural/rs/macros/src/module/mod.rs
soft3/glia/run/arch/decoder/mod.rs
soft3/cybernode/rs/src/wallet/mod.rs
cyb/honeycrisp/acpu/src/probe/mod.rs
soft3/zheng/rs/src/sumcheck/mod.rs
soft3/neuron/node/tests/support/mod.rs
soft3/bbg/rs/src/storage/mod.rs
soft3/zheng/rs/src/folding/mod.rs
neural/trident/src/syntax/grammar/mod.rs
neural/trident/src/package/registry/mod.rs
cyb/shell/src/worlds/robot/mod.rs
cyb/honeycrisp/acpu/src/sparse/mod.rs
soft3/radio/cyber-bao/src/io/mod.rs
cyb/wysm/crates/wasmi/tests/mod.rs
soft3/crate/src/chain/pool/mod.rs
neural/trident/src/neural/training/mod.rs
neural/rs/macros/src/addressed/mod.rs
neural/trident/src/syntax/format/mod.rs
neural/eidos/rs/src/tactic_ext/mod.rs
cyb/honeycrisp/acpu/src/pulse/mod.rs
cyb/honeycrisp/aruminium/src/render/mod.rs
neural/trident/src/verify/smt/mod.rs
warriors/trisha/rs/cost/model/mod.rs
soft3/zheng/rs/tests/common/mod.rs
neural/trident/src/verify/synthesize/mod.rs
neural/trident/src/syntax/parser/mod.rs
soft3/zheng/rs/src/legacy/mod.rs
cyb/honeycrisp/acpu/src/field/mod.rs
neural/trident/src/verify/report/mod.rs
neural/trident/src/config/resolve/mod.rs
cyb/shell/src/worlds/oracle/mod.rs
neural/trident/src/package/store/mod.rs
neural/eidos/rs/src/stdlib/mod.rs
soft3/zheng/rs/src/spartan/mod.rs
cyb/honeycrisp/aruminium/src/ffi/mod.rs
soft3/conformance/rs/src/surfaces/mod.rs
soft3/glia/run/backend/cpu/mod.rs
warriors/trisha/rs/neural/data/mod.rs
neural/trident/src/package/manifest/mod.rs
soft3/zheng/rs/src/execution/mod.rs
neural/trident/src/lsp/util/mod.rs
neural/trident/src/neural/inference/mod.rs
cyb/honeycrisp/rane/src/mil/mod.rs
soft3/zheng/rs/src/envelope/mod.rs
neural/trident/src/ir/tree/mod.rs
cyb/shell/src/worlds/memory/mod.rs
cyb/shell/src/worlds/com/mod.rs
soft3/strata/nebu/rs/extension/mod.rs
cyb/wysm/crates/wasi/tests/mod.rs
neural/rs/core/src/fixed_point/mod.rs
soft3/tru/rs/focusing/epoch/mod.rs
neural/trident/src/verify/equiv/mod.rs
cyb/honeycrisp/acpu/src/sync/mod.rs
neural/rs/core/src/bounded/mod.rs
neural/trident/src/verify/sym/mod.rs
soft3/nox/rs/jets/backends/mod.rs
soft3/crate/src/chain/economy/mod.rs
soft3/crate/src/chain/mine/mod.rs
cyb/evy/forks/naga/src/proc/mod.rs
cyb/evy/forks/naga/src/front/mod.rs
soft3/radio/quinn/quinn-udp/src/cmsg/mod.rs
cyb/evy/forks/bevy_ecs/src/query/mod.rs
cyb/evy/forks/bevy_tasks/src/iter/mod.rs
soft3/strata/jali/wgsl/src/shaders/mod.rs
cyb/evy/forks/bevy_ecs/src/event/mod.rs
cyb/wysm/crates/wasmi/src/module/mod.rs
cyb/wysm/crates/core/src/memory/mod.rs
cyb/evy/forks/bevy_sprite_render/src/tilemap_chunk/mod.rs
cyb/evy/forks/bevy_post_process/src/auto_exposure/mod.rs
cyb/evy/forks/bevy_ecs/src/reflect/mod.rs
cyb/evy/forks/bevy_anti_alias/src/fxaa/mod.rs
cyb/evy/forks/bevy_pbr/src/light_probe/mod.rs
cyb/evy/forks/bevy_render/src/view/mod.rs
soft3/radio/quinn/quinn-proto/src/config/mod.rs
cyb/wysm/crates/wasmi/src/instance/mod.rs
cyb/wysm/crates/fuzz/src/oracle/mod.rs
soft3/zheng/rs/src/recursion/wrap/mod.rs
cyb/evy/forks/bevy_pbr/src/meshlet/mod.rs
cyb/evy/forks/naga/src/arena/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/blit/mod.rs
soft3/zheng/rs/src/execution/succinct/mod.rs
cyb/evy/forks/bevy_anti_alias/src/dlss/mod.rs
cyb/evy/forks/bevy_render/src/experimental/mod.rs
cyb/evy/forks/bevy_render/src/render_resource/mod.rs
soft3/cybernode/rs/src/chain/net/mod.rs
cyb/wysm/crates/wasmi/src/engine/mod.rs
cyb/evy/forks/bevy_post_process/src/motion_blur/mod.rs
cyb/evy/forks/bevy_ecs/src/bundle/mod.rs
soft3/bbg/rs/src/storage/database/mod.rs
cyb/evy/crates/evy_prysm_core/src/layout/mod.rs
cyb/wysm/crates/cli/src/commands/mod.rs
cyb/evy/forks/bevy_pbr/src/render/mod.rs
soft3/glia/run/backend/honeycrisp/kernels/mod.rs
soft3/zheng/rs/src/execution/zk/mod.rs
cyb/evy/forks/bevy_ecs/src/entity/mod.rs
cyb/evy/forks/bevy_post_process/src/bloom/mod.rs
cyb/evy/forks/bevy_pbr/src/decal/mod.rs
cyb/evy/forks/bevy_anti_alias/src/taa/mod.rs
cyb/evy/forks/bevy_pbr/src/atmosphere/mod.rs
cyb/evy/forks/bevy_pbr/src/lightmap/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/mod.rs
soft3/zheng/rs/src/recursion/whir/mod.rs
soft3/strata/kuro/wgsl/src/shaders/mod.rs
soft3/strata/genies/wgsl/src/shaders/mod.rs
cyb/evy/forks/bevy_render/src/mesh/mod.rs
warriors/trisha/rs/neural/data/tir_graph/mod.rs
cyb/evy/forks/bevy_render/src/texture/mod.rs
soft3/zheng/rs/src/execution/veil/mod.rs
warriors/erga/rs/mine-bench/tests/support/mod.rs
soft3/cybernode/rs/src/chain/economy/mod.rs
cyb/evy/forks/bevy_transform/src/components/mod.rs
cyb/evy/forks/bevy_render/src/diagnostic/mod.rs
cyb/wysm/crates/wasmi/tests/integration/mod.rs
soft3/strata/trop/wgsl/src/shaders/mod.rs
cyb/wysm/crates/core/src/table/mod.rs
cyb/wysm/crates/collections/src/arena/mod.rs
cyb/evy/forks/naga/src/valid/mod.rs
cyb/evy/forks/bevy_post_process/src/effect_stack/mod.rs
soft3/zheng/rs/src/legacy/tests/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/upscaling/mod.rs
soft3/radio/quinn/quinn-proto/src/connection/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/fullscreen_vertex_shader/mod.rs
cyb/evy/forks/bevy_sprite/src/texture_slice/mod.rs
cyb/evy/forks/bevy_sprite_render/src/texture_slice/mod.rs
soft3/cybernode/rs/src/chain/tests/mod.rs
cyb/evy/forks/bevy_ecs/src/component/mod.rs
cyb/evy/forks/bevy_render/src/renderer/mod.rs
neural/trident/src/ir/tir/stack/mod.rs
soft3/radio/quinn/quinn/src/runtime/mod.rs
cyb/evy/forks/bevy_sprite_render/src/text2d/mod.rs
cyb/evy/forks/bevy_ecs/src/world/mod.rs
neural/trident/src/ir/tir/builder/mod.rs
cyb/evy/forks/bevy_sprite_render/src/mesh2d/mod.rs
soft3/cybernode/rs/src/chain/pool/mod.rs
cyb/evy/forks/bevy_ecs/src/message/mod.rs
cyb/wysm/crates/wasi/src/sync/mod.rs
cyb/evy/forks/bevy_ecs/src/observer/mod.rs
cyb/evy/forks/bevy_sprite_render/src/render/mod.rs
cyb/wysm/crates/wasmi/src/table/mod.rs
cyb/evy/forks/naga/src/back/mod.rs
soft3/glia/run/backend/cpu/quant/mod.rs
cyb/evy/forks/bevy_anti_alias/src/contrast_adaptive_sharpening/mod.rs
cyb/wysm/crates/wasmi/src/memory/mod.rs
neural/trident/src/syntax/parser/tests/mod.rs
cyb/evy/forks/bevy_anti_alias/src/smaa/mod.rs
soft3/zheng/rs/src/execution/tagged/mod.rs
cyb/evy/forks/bevy_pbr/src/ssao/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/tonemapping/mod.rs
soft3/radio/quinn/quinn-proto/src/tests/mod.rs
cyb/wysm/crates/c_api/src/types/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/skybox/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_2d/mod.rs
cyb/evy/forks/bevy_gizmos/src/primitives/mod.rs
cyb/wysm/crates/wasmi/src/store/mod.rs
neural/trident/src/ir/tree/lower/mod.rs
cyb/wysm/crates/wasmi/benches/bench/mod.rs
neural/trident/src/ir/tir/optimize/mod.rs
cyb/evy/forks/bevy_render/src/batching/mod.rs
cyb/evy/forks/bevy_render/src/render_graph/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/mod.rs
cyb/evy/forks/bevy_ecs/src/system/mod.rs
soft3/glia/run/backend/wgpu/kernels/mod.rs
cyb/evy/forks/bevy_post_process/src/dof/mod.rs
soft3/cybernode/rs/src/chain/mine/mod.rs
cyb/evy/forks/bevy_pbr/src/prepass/mod.rs
cyb/wysm/crates/wasmi/src/func/mod.rs
cyb/evy/forks/naga/src/keywords/mod.rs
cyb/wysm/crates/ir/src/decode/mod.rs
cyb/evy/forks/bevy_pbr/src/ssr/mod.rs
cyb/evy/forks/bevy_ecs/src/relationship/mod.rs
cyb/evy/forks/bevy_render/src/render_phase/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/deferred/mod.rs
cyb/evy/forks/bevy_ecs/src/change_detection/mod.rs
cyb/evy/forks/bevy_pbr/src/deferred/mod.rs
soft3/radio/quinn/quinn/examples/common/mod.rs
cyb/evy/forks/naga/src/compact/mod.rs
soft3/radio/quinn/quinn-proto/src/range_set/mod.rs
soft3/zheng/rs/src/recursion/circuit/mod.rs
soft3/zheng/rs/src/execution/disclosed/mod.rs
cyb/evy/forks/naga/src/common/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_3d/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/mod.rs
cyb/evy/forks/bevy_ecs/src/error/mod.rs
neural/trident/src/neural/data/tir_graph/mod.rs
soft3/glia/run/arch/decoder/families/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/prepass/mod.rs
cyb/evy/forks/bevy_pbr/src/volumetric_fog/mod.rs
cyb/evy/forks/bevy_render/src/experimental/occlusion_culling/mod.rs
cyb/evy/forks/bevy_render/src/view/window/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/graph/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/mod.rs
cyb/evy/forks/naga/src/back/wgsl/mod.rs
cyb/evy/forks/naga/src/back/hlsl/mod.rs
struct Baz { m: mat3x2, } struct Baz { float2 m_0; float2 m_1; float2 m_2; }; float3x2 GetMatmOnBaz(Baz obj) { return float3x2(obj.m_0, obj.m_1, obj.m_2); }
cyb/wysm/crates/wasmi/src/engine/translator/mod.rs
soft3/radio/quinn/quinn-proto/src/congestion/bbr/mod.rs
cyb/wysm/crates/wasmi/src/module/instantiate/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/table/mod.rs
cyb/evy/forks/naga/src/front/spv/mod.rs
cyb/evy/forks/naga/src/back/glsl/mod.rs
cyb/wysm/crates/wasi/src/sync/snapshots/mod.rs
cyb/evy/forks/bevy_render/src/view/visibility/mod.rs
cyb/evy/forks/naga/src/back/spv/mod.rs
soft3/zheng/rs/src/execution/veil/hiding/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mip_generation/mod.rs
cyb/wysm/crates/wasmi/src/module/parser/mod.rs
cyb/evy/forks/naga/src/back/msl/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/dim3/mod.rs
cyb/evy/forks/naga/src/front/glsl/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/resolve/mod.rs
cyb/evy/forks/bevy_ecs/src/world/entity_access/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/executor/mod.rs
soft3/radio/quinn/quinn-proto/src/connection/streams/mod.rs
cyb/evy/forks/naga/src/front/wgsl/mod.rs
cyb/wysm/crates/wasmi/src/engine/limits/mod.rs
cyb/evy/forks/naga/src/back/dot/mod.rs
cyb/evy/forks/bevy_ecs/src/system/commands/mod.rs
cyb/evy/forks/naga/src/back/wgsl/polyfill/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/mod.rs
cyb/evy/forks/naga/src/front/wgsl/lower/mod.rs
cyb/evy/forks/naga/src/front/wgsl/parse/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/handler/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/stack/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/handler/dispatch/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/simd/mod.rs

Graph