vyre-spec 0.1.1

Frozen data contracts for vyre — OpSpec, AlgebraicLaw, Category, IntrinsicTable
Documentation
#![deny(missing_docs)]
#![deny(unsafe_code)]
#![cfg_attr(
    not(test),
    deny(
        clippy::unwrap_used,
        clippy::expect_used,
        clippy::todo,
        clippy::unimplemented,
        clippy::panic
    )
)]
//! vyre-spec is the machine-checkable frozen data contract for the vyre GPU
//! compute IR. Any backend may depend on vyre-spec alone to prove conformance
//! without depending on vyre itself.
//!
//! This crate is intentionally data-only. It has no dependency on `vyre` or
//! `vyre-conform`; backend vendors can use these types as the stable contract
//! for conformance proofs. Example: a conformance runner can read an
//! [`OpSignature`] and verify the byte width expected by a backend primitive.

pub(crate) mod adversarial_input;
pub(crate) mod algebraic_law;
pub(crate) mod all_algebraic_laws;
pub(crate) mod atomic_op;
pub(crate) mod bin_op;
pub(crate) mod buffer_access;
pub(crate) mod by_category;
pub(crate) mod by_id;
pub(crate) mod catalog_is_complete;
pub(crate) mod category;
pub(crate) mod convention;
pub(crate) mod data_type;
pub(crate) mod engine_invariant;
pub(crate) mod float_type;
pub(crate) mod golden_sample;
pub(crate) mod intrinsic_table;
pub(crate) mod invariant;
pub(crate) mod invariant_category;
pub(crate) mod invariants;
pub(crate) mod kat_vector;
pub(crate) mod law_catalog;
pub(crate) mod layer;
pub(crate) mod metadata_category;
pub(crate) mod monotonic_direction;
pub(crate) mod op_metadata;
pub(crate) mod op_signature;
pub(crate) mod test_descriptor;
#[cfg(test)]
mod tests;
pub(crate) mod un_op;
pub(crate) mod verification;

pub use adversarial_input::AdversarialInput;
pub use algebraic_law::{AlgebraicLaw, LawCheckFn};
pub use all_algebraic_laws::all_algebraic_laws;
pub use atomic_op::AtomicOp;
pub use bin_op::BinOp;
pub use buffer_access::BufferAccess;
pub use by_category::by_category;
pub use by_id::by_id;
pub use catalog_is_complete::catalog_is_complete;
pub use category::{BackendAvailability, BackendAvailabilityPredicate, Category};
pub use convention::Convention;
pub use data_type::DataType;
pub use engine_invariant::{EngineInvariant, InvariantId};
pub use float_type::FloatType;
pub use golden_sample::GoldenSample;
pub use intrinsic_table::IntrinsicTable;
pub use invariant::Invariant;
pub use invariant_category::InvariantCategory;
pub use invariants::{empty_test_family, invariants};
pub use kat_vector::KatVector;
pub use law_catalog::law_catalog;
pub use layer::Layer;
pub use metadata_category::MetadataCategory;
pub use monotonic_direction::MonotonicDirection;
pub use op_metadata::OpMetadata;
pub use op_signature::OpSignature;
pub use test_descriptor::TestDescriptor;
pub use un_op::UnOp;
pub use verification::Verification;