# ===============================================================================
# QUANTALANG COMPILER
# "The Language That Evolves"
# ===============================================================================
# Copyright (c) 2022-2026 Zain Dana Harper. MIT License.
# ===============================================================================

[package]
name = "quantalang"
version = "1.0.0"
edition = "2021"
rust-version = "1.70"
authors = ["Zain Dana Harper"]
description = "The QuantaLang compiler — an effects-oriented systems language with multi-backend codegen (C, HLSL, GLSL, SPIR-V, LLVM IR, WebAssembly, x86-64, ARM64)"
license = "MIT"
repository = "https://github.com/HarperZ9/quantalang"
homepage = "https://github.com/HarperZ9/quantalang"
documentation = "https://github.com/HarperZ9/quantalang#readme"
readme = "../README.md"
keywords = ["compiler", "language", "effects", "shaders", "systems"]
categories = ["compilers", "development-tools", "graphics"]

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

[[bin]]
name = "quantac"
path = "src/main.rs"

[dependencies]
# Unicode support
unicode-xid = "0.2"
unicode-normalization = "0.1"

# Error handling
thiserror = "1.0"
miette = { version = "7.0", features = ["fancy"] }

# Data structures
indexmap = "2.0"
rustc-hash = "2.0"
bumpalo = "3.14"

# String interning
string-interner = "0.17"

# CLI (for binary)
clap = { version = "4.4", features = ["derive"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

[dev-dependencies]
criterion = "0.5"
proptest = "1.4"
pretty_assertions = "1.4"
insta = { version = "1.34", features = ["json"] }

[[bench]]
name = "lexer_benchmark"
harness = false

[profile.release]
lto = true
codegen-units = 1
opt-level = 3

[profile.dev]
opt-level = 1
debug = true

[lints.clippy]
# Allow in compiler code — these are noisy without safety benefit
too_many_arguments = "allow"
module_inception = "allow"
