[workspace]members = [ "rakc", "ide/src-tauri", "stdlib", "rakpkg", "rak-setup",]resolver = "2"[workspace.package]version = "8.0.0"edition = "2021"authors = ["Ryuzaki"]license = "MIT OR Apache-2.0"repository = "https://github.com/ryuzaki/rak"[workspace.dependencies]# Common dependencies across cratesthiserror = "1.0"anyhow = "1.0"serde = { version = "1.0", features = ["derive"] }tokio = { version = "1", features = ["full"] }tracing = "0.1"tracing-subscriber = "0.3"# Compiler specificlogos = "0.14" # Lexer generatorchumsky = "1.0" # Parser combinator (or lalrpop / pest)# inkwell = { version = "0.2", features = ["llvm15-0"] } # LLVM backend (optional)# IDE / Tauritauri = { version = "1.6", features = ["shell-open"] }serde_json = "1.0"tower-lsp = "0.20" # LSP server implementationtokio-util = "0.7"# Release hardening. These are the compiler-level defenses Rak can actually# make about itself; they do not replace the missing control-flow integrity# support noted in docs/V8-ROADMAP.md.## lto + codegen-units=1 whole-program optimisation, so a bounds check in# one crate can be folded against a caller in another# instead of living behind an opaque call# overflow-checks=true keep arithmetic overflow panicking in release. The# default is `false`, which silently wraps and turns# a length calculation into a heap overflow# panic=abort no unwinding through the FFI trampolines# strip no symbols to attach a debugger to by accident[profile.release]lto = "fat"codegen-units = 1overflow-checks = truepanic = "abort"strip = "symbols"# The fuzzing crate and the IDE both want a usable panic message, so they get# their own profile rather than inheriting `panic = "abort"`.[profile.release.package."*"]opt-level = 2