lambdust 0.1.1

A Scheme dialect with gradual typing and effect systems
[package]
name = "lambdust"
version = "0.1.1"
edition = "2024"
authors = ["Mitsuki Akasaka <m.akasaka@miraina-step.co.jp>"]
description = "A Scheme dialect with gradual typing and effect systems"
license = "MIT OR Apache-2.0"
repository = "https://github.com/username/lambdust"
keywords = ["scheme", "lisp", "functional", "types", "compiler"]
categories = ["compilers", "development-tools"]
include = [
    "src/**/*.rs",
    "stdlib/**/*.scm",
    "Cargo.toml",
    "README.md",
    "LICENSE*",
]

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

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

[[bin]]
name = "performance-monitor"
path = "src/bin/performance_monitor.rs"

[dependencies]
# Core parsing and lexing
# nom = "7.1" # 廃止済み (2025年8月12日) - 内製parser combinatorに移行
# logos = "0.14"  # 廃止済み (2025年8月12日) - 内製lexerに移行

# Date and time for reporting
chrono = { version = "0.4", features = ["serde"] }

# AST and data structures
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
indexmap = "2.0"
im = "15.1"                                        # Immutable data structures for functional programming

# Type system and inference
petgraph = "0.6" # For type dependency graphs
ena = "0.14"     # Union-find for type unification

# Evaluation and runtime
gc = { version = "0.5", features = [
    "derive",
] } # Garbage collection for Scheme values
once_cell = "1.19"
lazy_static = "1.4"

# Concurrency and parallelism
tokio = { version = "1.0", features = [
    "full",
    "io-util",
    "net",
    "fs",
    "process",
    "macros",
    "rt-multi-thread",
    "time",
    "sync",
], optional = true }
tokio-util = { version = "0.7", features = ["codec", "io"], optional = true }
async-std = { version = "1.12", optional = true }
rayon = "1.8"
crossbeam = "0.8" # For channels and concurrent data structures
num_cpus = "1.16" # For detecting CPU count

# Error handling and diagnostics
# thiserror = "1.0" # 廃止済み (2025年8月12日) - 内製カスタムエラーシステムに移行
# miette = { version = "7.0", features = ["fancy"] } # 廃止済み (2025年8月12日) - 内製軽量診断システムに移行
ariadne = "0.4"                                    # Beautiful error reporting
log = "0.4"                                        # Logging for parser benchmarking

# FFI and interop
libloading = "0.8"
dlopen2 = "0.7"
libc = "0.2"                                  # C standard library bindings
libffi = { version = "3.2", optional = true, features = ["system"] } # Foreign Function Interface for C interop
cc = { version = "1.0", optional = true }     # C compiler integration

# Performance and optimization
criterion = { version = "0.5", optional = true }
flame = { version = "0.2", optional = true }

# CLI and utilities
# clap = { version = "4.4", features = ["derive"] } # 廃止済み (2025年8月12日) - 内製軽量CLI parserに移行
rustyline = { version = "13.0", optional = true } # REPL readline support
colored = { version = "2.0", optional = true }
dirs = { version = "5.0", optional = true }

# Enhanced REPL dependencies
reedline = { version = "0.29", optional = true }     # Advanced line editor with completions
nu-ansi-term = { version = "0.49", optional = true } # Terminal colors and styling
crossterm = { version = "0.27", optional = true }    # Cross-platform terminal manipulation
syntect = { version = "5.1", optional = true }       # Syntax highlighting

# I/O and Network Libraries
mio = { version = "0.8", features = ["os-poll", "net"] } # Low-level I/O
socket2 = "0.5" # Advanced socket operations
nix = { version = "0.28", features = [
    "event",
    "fs",
], optional = true } # Unix system calls
winapi = { version = "0.3", features = [
    "winnt",
    "winsock2",
    "ws2ipdef",
    "ws2tcpip",
], optional = true } # Windows APIs
memmap2 = "0.9" # Memory-mapped files
notify = "6.1" # File system monitoring
walkdir = "2.4" # Recursive directory traversal
ignore = "0.4" # .gitignore-style ignore patterns
globset = "0.4" # Glob pattern matching
url = "2.5" # URL parsing for network I/O
percent-encoding = "2.3" # URL encoding/decoding
hickory-resolver = "0.24" # DNS resolver (formerly trust-dns)

# Compression and encryption
flate2 = { version = "1.0", optional = true } # Gzip/deflate compression
zstd = { version = "0.13", optional = true } # Zstandard compression
lz4_flex = { version = "0.11", optional = true } # LZ4 compression
ring = "0.17" # Cryptography
rustls = { version = "0.23", features = [
    "std",
], optional = true } # TLS implementation
tokio-rustls = { version = "0.26", optional = true } # Async TLS for tokio
webpki-roots = { version = "0.26", optional = true } # Root certificates

# Development and testing
proptest = { version = "1.4", optional = true }
rand = "0.8"                                    # For random test data generation
futures = "0.3"                                 # For futures utilities in tests

# Text processing
# regex = "1.10" # 廃止済み (2025年8月12日) - 内製軽量正規表現エンジンに移行
unicode-normalization = "0.1"
unicode-segmentation = "1.10"
icu_collator = { version = "1.4", optional = true } # Unicode collation for text processing
icu_locid = { version = "1.4", optional = true } # ICU locale support
lru = "0.12"

# Numeric traits for monad implementations
num-traits = "0.2"

# Concurrency and async runtime
async-trait = "0.1"                                    # For async traits in actors
uuid = { version = "1.6", features = ["v4", "serde"] } # For unique IDs

[dev-dependencies]
pretty_assertions = "1.4"
insta = "1.34"                                               # Snapshot testing for AST
tempfile = "3.8"
tokio-test = "0.4"                                           # For async testing
criterion = { version = "0.5", features = ["html_reports"] }
rand = "0.8"                                                 # Random testing utilities
futures = "0.3"                                              # Futures utilities for async tests

[features]
# Lightweight default configuration for minimal binary size
default = ["minimal-repl"]

# REPL configurations
minimal-repl = ["dep:colored"]  # Lightweight REPL with basic colors
repl = ["minimal-repl", "dep:rustyline", "dep:dirs"]  # Full-featured REPL
enhanced-repl = [
    "repl",
    "dep:reedline", 
    "dep:nu-ansi-term",
    "dep:crossterm",
    "dep:syntect",
]

# Runtime configurations  
async-runtime = ["tokio", "tokio-util"]  # Async runtime (heavy dependency)
network-io = ["async-runtime", "rustls", "tokio-rustls", "webpki-roots"]  # Network I/O
platform-extensions = ["unix-extensions", "windows-extensions"]  # Platform-specific APIs

# Legacy compatibility (opt-in only)
async = ["async-runtime"]  # Backward compatibility
advanced-io = ["network-io", "platform-extensions"]  # Backward compatibility
text-processing = ["icu_collator", "icu_locid"]
compression = ["flate2", "zstd", "lz4_flex"]
tls = ["rustls", "tokio-rustls", "webpki-roots"]
unix-extensions = ["nix"]
windows-extensions = ["winapi"]
benchmarks = ["criterion", "flame"]
property-testing = ["proptest"]
multithreaded-tests = ["async", "tokio/test-util"]
ffi = ["libffi", "cc"] # FFI support
jit = [] # Future JIT compilation support
simd-benchmarks = ["benchmarks"] # SIMD optimization benchmarking
# internal-parser = [] # 廃止済み (2025年8月12日) - nom互換レイヤー削除により不要

# Benchmark configuration
[[bench]]
name = "parallel_evaluation_benchmarks"
path = "benchmarks/parallel_evaluation_benchmarks.rs"
harness = false
required-features = ["benchmarks"]

[[bench]]
name = "memory_usage_benchmarks"
path = "benchmarks/memory_usage_benchmarks.rs"
harness = false
required-features = ["benchmarks"]

[[bench]]
name = "latency_benchmarks"
path = "benchmarks/latency_benchmarks.rs"
harness = false
required-features = ["benchmarks"]

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

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

# New comprehensive benchmarking suite
[[bench]]
name = "migration_impact_benchmarks"
path = "benches/migration_impact_benchmarks.rs"
harness = false
required-features = ["benchmarks"]

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

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

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

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

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

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

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

[profile.dev]
opt-level = 0
debug = true
overflow-checks = true

[profile.test]
opt-level = 1

# Lint configuration for crates.io quality
[lints.rust]
# All warnings as errors for crates.io quality
missing_docs = "warn"
unused_variables = "warn"
unused_imports = "warn"
dead_code = "warn"

# Workspace configuration for potential future crates
[workspace]
members = [
    ".",
    # Future subcrates:
    # "lambdust-core",     # Core language implementation
    # "lambdust-std",      # Standard library
    # "lambdust-types",    # Type system
    # "lambdust-macro",    # Macro system
    # "lambdust-ffi",      # FFI bindings
]