[package]
edition = "2021"
rust-version = "1.85"
name = "vyre-foundation"
version = "0.7.2"
authors = ["Santh Project <contact@santh.dev>"]
build = false
exclude = [
"**/.proptest-regressions/**",
"**/*.proptest-regressions",
"**/SKILL.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Foundation layer: IR, type system, memory model, wire format. Zero application semantics. Part of the vyre GPU compiler."
homepage = "https://santh.dev"
documentation = "https://docs.rs/vyre-foundation"
readme = "README.md"
keywords = [
"gpu",
"ir",
"compiler",
"wgsl",
"vyre",
]
categories = [
"algorithms",
"compilers",
"hardware-support",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/santhreal/vyre"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = []
serde = []
[lib]
name = "vyre_foundation"
path = "src/lib.rs"
[[example]]
name = "vyre_foundation_release_surface"
path = "examples/vyre_foundation_release_surface.rs"
[[test]]
name = "adversarial_graph_canonical_laws"
path = "tests/adversarial_graph_canonical_laws.rs"
[[test]]
name = "adversarial_loop_induction_rebind"
path = "tests/adversarial_loop_induction_rebind.rs"
[[test]]
name = "adversarial_loop_peel_first_iter"
path = "tests/adversarial_loop_peel_first_iter.rs"
[[test]]
name = "adversarial_program_canonical_laws"
path = "tests/adversarial_program_canonical_laws.rs"
[[test]]
name = "atomic_linear_type_gap"
path = "tests/atomic_linear_type_gap.rs"
[[test]]
name = "autodiff_forward_local_fail_closed"
path = "tests/autodiff_forward_local_fail_closed.rs"
[[test]]
name = "autodiff_transform_contracts"
path = "tests/autodiff_transform_contracts.rs"
[[test]]
name = "bench_corpus_duplication"
path = "tests/bench_corpus_duplication.rs"
[[test]]
name = "branch_value_hoist_scope"
path = "tests/branch_value_hoist_scope.rs"
[[test]]
name = "buffer_decl_boundary"
path = "tests/buffer_decl_boundary.rs"
[[test]]
name = "buffer_decl_with_count"
path = "tests/buffer_decl_with_count.rs"
[[test]]
name = "buffer_layout_proptest"
path = "tests/buffer_layout_proptest.rs"
[[test]]
name = "canonical_determinism"
path = "tests/canonical_determinism.rs"
[[test]]
name = "capability_contracts"
path = "tests/capability_contracts.rs"
[[test]]
name = "ci_script_frozen_contract_coupling"
path = "tests/ci_script_frozen_contract_coupling.rs"
[[test]]
name = "collective_ir_contracts"
path = "tests/collective_ir_contracts.rs"
[[test]]
name = "composition_tagging_contracts"
path = "tests/composition_tagging_contracts.rs"
[[test]]
name = "const_fold_shift_fusion_amount_overflow"
path = "tests/const_fold_shift_fusion_amount_overflow.rs"
[[test]]
name = "consumer_boundary"
path = "tests/consumer_boundary.rs"
[[test]]
name = "contract_workspace"
path = "tests/contract_workspace.rs"
[[test]]
name = "cse_effect_in_if_cond_invalidates_loads"
path = "tests/cse_effect_in_if_cond_invalidates_loads.rs"
[[test]]
name = "dataflow_fixpoint_merge_contracts"
path = "tests/dataflow_fixpoint_merge_contracts.rs"
[[test]]
name = "dce_subgroup_operand_liveness"
path = "tests/dce_subgroup_operand_liveness.rs"
[[test]]
name = "dead_buffer_dangling_ref"
path = "tests/dead_buffer_dangling_ref.rs"
[[test]]
name = "dead_store_elim_overwriter_reads"
path = "tests/dead_store_elim_overwriter_reads.rs"
[[test]]
name = "demos_orphan_risk"
path = "tests/demos_orphan_risk.rs"
[[test]]
name = "diagnostic_protocol"
path = "tests/diagnostic_protocol.rs"
[[test]]
name = "execution_plan"
path = "tests/execution_plan.rs"
[[test]]
name = "expr_builder_surface"
path = "tests/expr_builder_surface.rs"
[[test]]
name = "extension_adversarial"
path = "tests/extension_adversarial.rs"
[[test]]
name = "fingerprint_perf_contracts"
path = "tests/fingerprint_perf_contracts.rs"
[[test]]
name = "fusion_atomic_aliasing"
path = "tests/fusion_atomic_aliasing.rs"
[[test]]
name = "fusion_composability_metadata"
path = "tests/fusion_composability_metadata.rs"
[[test]]
name = "fusion_stress"
path = "tests/fusion_stress.rs"
[[test]]
name = "fusion_substitute_into_subgroup_operand"
path = "tests/fusion_substitute_into_subgroup_operand.rs"
[[test]]
name = "fusion_workgroup_geometry"
path = "tests/fusion_workgroup_geometry.rs"
[[test]]
name = "graph_invariants"
path = "tests/graph_invariants.rs"
[[test]]
name = "inline_buffer_reference_arguments"
path = "tests/inline_buffer_reference_arguments.rs"
[[test]]
name = "inline_callee_local_rename_in_trap_and_async"
path = "tests/inline_callee_local_rename_in_trap_and_async.rs"
[[test]]
name = "inline_per_invocation_builtin_rejection"
path = "tests/inline_per_invocation_builtin_rejection.rs"
[[test]]
name = "linear_type_validation"
path = "tests/linear_type_validation.rs"
[[test]]
name = "loop_fusion_atomic_expected_scalar_dependency"
path = "tests/loop_fusion_atomic_expected_scalar_dependency.rs"
[[test]]
name = "loop_fusion_binding_collision"
path = "tests/loop_fusion_binding_collision.rs"
[[test]]
name = "loop_fusion_scalar_dependency"
path = "tests/loop_fusion_scalar_dependency.rs"
[[test]]
name = "loop_induction_var_guards"
path = "tests/loop_induction_var_guards.rs"
[[test]]
name = "loop_licm_scope_extension"
path = "tests/loop_licm_scope_extension.rs"
[[test]]
name = "loop_software_pipeline_loopvar_in_value"
path = "tests/loop_software_pipeline_loopvar_in_value.rs"
[[test]]
name = "loop_strip_mine_fresh_ident_scope"
path = "tests/loop_strip_mine_fresh_ident_scope.rs"
[[test]]
name = "loop_unroll_local_scope"
path = "tests/loop_unroll_local_scope.rs"
[[test]]
name = "loop_var_range_fold_scope"
path = "tests/loop_var_range_fold_scope.rs"
[[test]]
name = "memo_key_completeness"
path = "tests/memo_key_completeness.rs"
[[test]]
name = "memory_ordering"
path = "tests/memory_ordering.rs"
[[test]]
name = "memory_ordering_adversarial"
path = "tests/memory_ordering_adversarial.rs"
[[test]]
name = "opaque_payload_endian"
path = "tests/opaque_payload_endian.rs"
[[test]]
name = "opaque_wire_round_trip"
path = "tests/opaque_wire_round_trip.rs"
[[test]]
name = "operation_registry"
path = "tests/operation_registry.rs"
[[test]]
name = "operation_tier_classification"
path = "tests/operation_tier_classification.rs"
[[test]]
name = "optimizer_algebraic_rules_contracts"
path = "tests/optimizer_algebraic_rules_contracts.rs"
[[test]]
name = "optimizer_dataflow_value_differential"
path = "tests/optimizer_dataflow_value_differential.rs"
[[test]]
name = "optimizer_idempotence_proptest"
path = "tests/optimizer_idempotence_proptest.rs"
[[test]]
name = "optimizer_loop_value_differential"
path = "tests/optimizer_loop_value_differential.rs"
[[test]]
name = "optimizer_perf_regression"
path = "tests/optimizer_perf_regression.rs"
[[test]]
name = "optimizer_reference_parity_smoke"
path = "tests/optimizer_reference_parity_smoke.rs"
[[test]]
name = "optimizer_rewrite_proof_contracts"
path = "tests/optimizer_rewrite_proof_contracts.rs"
[[test]]
name = "optimizer_rewrite_proof_registry_contracts"
path = "tests/optimizer_rewrite_proof_registry_contracts.rs"
[[test]]
name = "optimizer_value_dependent_reference_parity"
path = "tests/optimizer_value_dependent_reference_parity.rs"
[[test]]
name = "output_set_roundtrip"
path = "tests/output_set_roundtrip.rs"
[[test]]
name = "program_builder_invariants"
path = "tests/program_builder_invariants.rs"
[[test]]
name = "program_canonical_commutative"
path = "tests/program_canonical_commutative.rs"
[[test]]
name = "program_graph_analysis_contract"
path = "tests/program_graph_analysis_contract.rs"
[[test]]
name = "program_graph_contract"
path = "tests/program_graph_contract.rs"
[[test]]
name = "program_graph_from_program"
path = "tests/program_graph_from_program.rs"
[[test]]
name = "program_graph_identity_contract"
path = "tests/program_graph_identity_contract.rs"
[[test]]
name = "program_meta_surface"
path = "tests/program_meta_surface.rs"
[[test]]
name = "program_rebuild_preserves_metadata"
path = "tests/program_rebuild_preserves_metadata.rs"
[[test]]
name = "program_stats_proptest"
path = "tests/program_stats_proptest.rs"
[[test]]
name = "program_wire_property_contracts"
path = "tests/program_wire_property_contracts.rs"
[[test]]
name = "quantized_datatype_wire"
path = "tests/quantized_datatype_wire.rs"
[[test]]
name = "read_only_load_hoist_scope"
path = "tests/read_only_load_hoist_scope.rs"
[[test]]
name = "region_chain_adversarial"
path = "tests/region_chain_adversarial.rs"
[[test]]
name = "region_inline_invalidates"
path = "tests/region_inline_invalidates.rs"
[[test]]
name = "region_inline_scope"
path = "tests/region_inline_scope.rs"
[[test]]
name = "resource_exhaustion_adversarial"
path = "tests/resource_exhaustion_adversarial.rs"
[[test]]
name = "rewrite_driver_descends_into_async_offset"
path = "tests/rewrite_driver_descends_into_async_offset.rs"
[[test]]
name = "scope_cow"
path = "tests/scope_cow.rs"
[[test]]
name = "serial_envelope"
path = "tests/serial_envelope.rs"
[[test]]
name = "serial_envelope_boundary"
path = "tests/serial_envelope_boundary.rs"
[[test]]
name = "serial_envelope_corruption"
path = "tests/serial_envelope_corruption.rs"
[[test]]
name = "shape_predicate_evaluation"
path = "tests/shape_predicate_evaluation.rs"
[[test]]
name = "store_to_load_forward_value_invalidation"
path = "tests/store_to_load_forward_value_invalidation.rs"
[[test]]
name = "strength_reduce_shift_fusion_overflow"
path = "tests/strength_reduce_shift_fusion_overflow.rs"
[[test]]
name = "subst_preserves_subgroup_reduce_op"
path = "tests/subst_preserves_subgroup_reduce_op.rs"
[[test]]
name = "sweep_validation_rejection_oracle_matrix"
path = "tests/sweep_validation_rejection_oracle_matrix.rs"
[[test]]
name = "sweep_validation_rejection_volume_oracle_matrix"
path = "tests/sweep_validation_rejection_volume_oracle_matrix.rs"
[[test]]
name = "tail_duplication_scope"
path = "tests/tail_duplication_scope.rs"
[[test]]
name = "terminal_wire_round_trip"
path = "tests/terminal_wire_round_trip.rs"
[[test]]
name = "text_format_boundary"
path = "tests/text_format_boundary.rs"
[[test]]
name = "type_boundary_adversarial"
path = "tests/type_boundary_adversarial.rs"
[[test]]
name = "v055_uniform_exit"
path = "tests/v055_uniform_exit.rs"
[[test]]
name = "validation_contract_gaps"
path = "tests/validation_contract_gaps.rs"
[[test]]
name = "validation_depth_limits"
path = "tests/validation_depth_limits.rs"
[[test]]
name = "validation_edge_cases"
path = "tests/validation_edge_cases.rs"
[[test]]
name = "validation_findings_12_20"
path = "tests/validation_findings_12_20.rs"
[[test]]
name = "validation_output_markers"
path = "tests/validation_output_markers.rs"
[[test]]
name = "validation_rejection_contract"
path = "tests/validation_rejection_contract.rs"
[[test]]
name = "validator_error_docs"
path = "tests/validator_error_docs.rs"
[[test]]
name = "validator_uniformity"
path = "tests/validator_uniformity.rs"
[[test]]
name = "vast_invariants"
path = "tests/vast_invariants.rs"
[[test]]
name = "vast_layout_overflow_contracts"
path = "tests/vast_layout_overflow_contracts.rs"
[[test]]
name = "vast_proptest"
path = "tests/vast_proptest.rs"
[[test]]
name = "visitor_walk"
path = "tests/visitor_walk.rs"
[[test]]
name = "wire_adversarial"
path = "tests/wire_adversarial.rs"
[[test]]
name = "wire_buffer_ref_round_trip"
path = "tests/wire_buffer_ref_round_trip.rs"
[[test]]
name = "wire_decode_corruption"
path = "tests/wire_decode_corruption.rs"
[[test]]
name = "wire_decode_oom_guard"
path = "tests/wire_decode_oom_guard.rs"
[[test]]
name = "wire_decode_support"
path = "tests/wire_decode_support.rs"
[[test]]
name = "wire_format_corpus"
path = "tests/wire_format_corpus.rs"
[[test]]
name = "wire_fuzz_infra_contracts"
path = "tests/wire_fuzz_infra_contracts.rs"
[[test]]
name = "wire_generated_hostile_inputs"
path = "tests/wire_generated_hostile_inputs.rs"
[[test]]
name = "wire_roundtrip_exhaustive"
path = "tests/wire_roundtrip_exhaustive.rs"
[[test]]
name = "wire_roundtrip_non_composable"
path = "tests/wire_roundtrip_non_composable.rs"
[[test]]
name = "wire_roundtrip_proptest"
path = "tests/wire_roundtrip_proptest.rs"
[[test]]
name = "wire_version_mismatch"
path = "tests/wire_version_mismatch.rs"
[[test]]
name = "workspace_naming_footguns"
path = "tests/workspace_naming_footguns.rs"
[dependencies.arrayvec]
version = "=0.7.6"
[dependencies.blake3]
version = "=1.8.5"
[dependencies.bumpalo]
version = "=3.20.3"
[dependencies.bytemuck]
version = "=1.25.2"
features = ["derive"]
[dependencies.dashmap]
version = "=6.2.1"
[dependencies.hashbrown]
version = "=0.17.1"
[dependencies.im]
version = "=15.1.0"
[dependencies.inventory]
version = "=0.3.24"
[dependencies.itoa]
version = "=1.0.18"
[dependencies.libm]
version = "=0.2.16"
[dependencies.rustc-hash]
version = "=2.1.3"
[dependencies.ryu]
version = "=1.0.23"
[dependencies.serde]
version = "=1.0.229"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.smallvec]
version = "^1.15.1"
features = ["serde"]
[dependencies.thiserror]
version = "=2.0.19"
[dependencies.toml]
version = "=1.1.3"
[dependencies.tracing]
version = "=0.1.44"
[dependencies.vyre-macros]
version = "0.7.2"
[dependencies.vyre-spec]
version = "0.7.2"
[dev-dependencies.criterion]
version = "=0.8.2"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "=1.11.0"
[lints.clippy]
bind_instead_of_map = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
collapsible_if = "allow"
collapsible_match = "allow"
comparison_chain = "allow"
derivable_impls = "allow"
doc_lazy_continuation = "allow"
doc_overindented_list_items = "allow"
double_must_use = "allow"
enum_variant_names = "allow"
erasing_op = "allow"
field_reassign_with_default = "allow"
identity_op = "allow"
if_same_then_else = "allow"
large_enum_variant = "allow"
manual_c_str_literals = "allow"
manual_div_ceil = "allow"
manual_map = "allow"
manual_range_contains = "allow"
manual_slice_size_calculation = "allow"
map_entry = "allow"
map_identity = "allow"
match_like_matches_macro = "allow"
match_single_binding = "allow"
needless_borrow = "allow"
needless_borrows_for_generic_args = "allow"
needless_lifetimes = "allow"
needless_range_loop = "allow"
nonminimal_bool = "allow"
option_map_or_none = "allow"
redundant_closure = "allow"
ref_option = "allow"
result_large_err = "allow"
slow_vector_initialization = "allow"
too_many_arguments = "allow"
unnecessary_lazy_evaluations = "allow"
unnecessary_map_on_constructor = "allow"
vec_init_then_push = "allow"
[lints.rust]
dead_code = "allow"
dropping_copy_types = "allow"
missing_docs = "deny"
unreachable_pub = "warn"
unsafe_code = "deny"
unused_variables = "allow"
[lints.rust.nonstandard_style]
level = "warn"
priority = -1
[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("external_ifds_engine"))']
[lints.rustdoc]
broken_intra_doc_links = "deny"
private_intra_doc_links = "warn"