# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "fusevm"
version = "0.13.8"
authors = ["MenkeTechnologies"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Language-agnostic bytecode VM with fused superinstructions and a 3-tier Cranelift JIT (linear/block/tracing)"
homepage = "https://menketechnologies.github.io/fusevm/"
documentation = "https://docs.rs/fusevm"
readme = "README.md"
keywords = [
    "bytecode",
    "vm",
    "jit",
    "interpreter",
    "fusevm",
]
categories = ["compilers"]
license = "MIT"
repository = "https://github.com/MenkeTechnologies/fusevm"

[features]
default = []
jit = [
    "cranelift-jit",
    "cranelift-codegen",
    "cranelift-frontend",
    "cranelift-native",
    "cranelift-module",
]
jit-disk-cache = [
    "jit",
    "dep:libc",
]

[lib]
name = "fusevm"
path = "src/lib.rs"

[[test]]
name = "array_hash_ops"
path = "tests/array_hash_ops.rs"

[[test]]
name = "builtin_table"
path = "tests/builtin_table.rs"

[[test]]
name = "chunk_builder"
path = "tests/chunk_builder.rs"

[[test]]
name = "chunkbuilder_and_value_introspection"
path = "tests/chunkbuilder_and_value_introspection.rs"

[[test]]
name = "collections"
path = "tests/collections.rs"

[[test]]
name = "collections_and_concat"
path = "tests/collections_and_concat.rs"

[[test]]
name = "compare_bitwise_ops"
path = "tests/compare_bitwise_ops.rs"

[[test]]
name = "comparison_logical_bitwise"
path = "tests/comparison_logical_bitwise.rs"

[[test]]
name = "contract_deopt_constants_and_subchunks"
path = "tests/contract_deopt_constants_and_subchunks.rs"

[[test]]
name = "contract_fused_ops_and_jit"
path = "tests/contract_fused_ops_and_jit.rs"

[[test]]
name = "contract_vm_stack_chunk_round4"
path = "tests/contract_vm_stack_chunk_round4.rs"

[[test]]
name = "control_flow"
path = "tests/control_flow.rs"

[[test]]
name = "edge_cases"
path = "tests/edge_cases.rs"

[[test]]
name = "functions_vars_stack"
path = "tests/functions_vars_stack.rs"

[[test]]
name = "fused_frame_higherorder"
path = "tests/fused_frame_higherorder.rs"

[[test]]
name = "fused_ops"
path = "tests/fused_ops.rs"

[[test]]
name = "host_ext_and_more_ops"
path = "tests/host_ext_and_more_ops.rs"

[[test]]
name = "host_routing_and_reset"
path = "tests/host_routing_and_reset.rs"

[[test]]
name = "host_trait"
path = "tests/host_trait.rs"

[[test]]
name = "jit_api_pool_deopt"
path = "tests/jit_api_pool_deopt.rs"

[[test]]
name = "jit_block"
path = "tests/jit_block.rs"

[[test]]
name = "jit_disk_cache"
path = "tests/jit_disk_cache.rs"

[[test]]
name = "jit_env_threshold"
path = "tests/jit_env_threshold.rs"

[[test]]
name = "jit_extension"
path = "tests/jit_extension.rs"

[[test]]
name = "jit_extension_host"
path = "tests/jit_extension_host.rs"

[[test]]
name = "jit_fuzz"
path = "tests/jit_fuzz.rs"

[[test]]
name = "jit_linear"
path = "tests/jit_linear.rs"

[[test]]
name = "jit_public_api"
path = "tests/jit_public_api.rs"

[[test]]
name = "jit_trace"
path = "tests/jit_trace.rs"

[[test]]
name = "jump_arith_edges"
path = "tests/jump_arith_edges.rs"

[[test]]
name = "jumps_ext_builtins_files"
path = "tests/jumps_ext_builtins_files.rs"

[[test]]
name = "more_ops"
path = "tests/more_ops.rs"

[[test]]
name = "op_exhaustive_and_vm_lifecycle"
path = "tests/op_exhaustive_and_vm_lifecycle.rs"

[[test]]
name = "serde_and_chunk"
path = "tests/serde_and_chunk.rs"

[[test]]
name = "shell_builtins_lookup"
path = "tests/shell_builtins_lookup.rs"

[[test]]
name = "shell_host"
path = "tests/shell_host.rs"

[[test]]
name = "shell_op_routing"
path = "tests/shell_op_routing.rs"

[[test]]
name = "shell_ops_default_host"
path = "tests/shell_ops_default_host.rs"

[[test]]
name = "shell_ops_with_host"
path = "tests/shell_ops_with_host.rs"

[[test]]
name = "slot_and_fused_ops"
path = "tests/slot_and_fused_ops.rs"

[[test]]
name = "stack_arith_misc_ops"
path = "tests/stack_arith_misc_ops.rs"

[[test]]
name = "stack_array_hash_status_expand"
path = "tests/stack_array_hash_status_expand.rs"

[[test]]
name = "testfile_builtin_dispatch"
path = "tests/testfile_builtin_dispatch.rs"

[[test]]
name = "v0_12_2_apis"
path = "tests/v0_12_2_apis.rs"

[[test]]
name = "value_and_types"
path = "tests/value_and_types.rs"

[[test]]
name = "value_arith_edges"
path = "tests/value_arith_edges.rs"

[[test]]
name = "value_coerce_and_testfile"
path = "tests/value_coerce_and_testfile.rs"

[[test]]
name = "value_coercion"
path = "tests/value_coercion.rs"

[[test]]
name = "value_hash_clone"
path = "tests/value_hash_clone.rs"

[[test]]
name = "vars_and_stack"
path = "tests/vars_and_stack.rs"

[[test]]
name = "vm_integration"
path = "tests/vm_integration.rs"

[[test]]
name = "vm_pool"
path = "tests/vm_pool.rs"

[[bench]]
name = "classic"
path = "benches/classic.rs"
harness = false

[[bench]]
name = "jit_crossover"
path = "benches/jit_crossover.rs"
harness = false
required-features = ["jit"]

[[bench]]
name = "jit_disk_cache"
path = "benches/jit_disk_cache.rs"
harness = false
required-features = ["jit-disk-cache"]

[[bench]]
name = "jit_trace"
path = "benches/jit_trace.rs"
harness = false
required-features = ["jit"]

[[bench]]
name = "jit_vs_interp"
path = "benches/jit_vs_interp.rs"
harness = false
required-features = ["jit"]

[[bench]]
name = "vm_bench"
path = "benches/vm_bench.rs"
harness = false

[dependencies.chrono]
version = "0.4"

[dependencies.cranelift-codegen]
version = "0.130"
optional = true

[dependencies.cranelift-frontend]
version = "0.130"
optional = true

[dependencies.cranelift-jit]
version = "0.130"
optional = true

[dependencies.cranelift-module]
version = "0.130"
optional = true

[dependencies.cranelift-native]
version = "0.130"
optional = true

[dependencies.glob]
version = "0.3"

[dependencies.libc]
version = "0.2"
optional = true

[dependencies.serde]
version = "1"
features = [
    "derive",
    "rc",
]

[dependencies.tracing]
version = "0.1"

[dev-dependencies.bincode]
version = "1"

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.serde_json]
version = "1"
