# 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 = "2024"
rust-version = "1.86"
name = "luna-core"
version = "2.5.0"
authors = ["GOLIA K.K. <lihao@golia.jp>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure-Rust Lua runtime (interpreter only, zero third-party dependencies). The JIT-equipped variant lives in the `luna-jit` crate."
readme = "README.md"
keywords = [
    "lua",
    "vm",
    "interpreter",
    "jit",
    "embedded",
]
categories = [
    "compilers",
    "no-std",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/goliajp/luna"
resolver = "2"

[features]
default = []
send = []

[lib]
name = "luna_core"
crate-type = ["rlib"]
path = "src/lib.rs"

[[example]]
name = "embed_min"
path = "examples/embed_min.rs"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies]

[dev-dependencies.dhat]
version = "0.3"

[lints.clippy]
doc_lazy_continuation = "allow"
doc_overindented_list_items = "allow"
incompatible_msrv = "allow"
missing_safety_doc = "allow"
needless_range_loop = "allow"
too_many_arguments = "allow"
type_complexity = "allow"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(luna_aot_runtime_stub)"]
