-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
43 lines (41 loc) · 1.75 KB
/
Copy pathCargo.toml
File metadata and controls
43 lines (41 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[workspace]
resolver = "3"
members = [
"crates/rsscript",
"crates/lsp",
"crates/runtime",
"crates/reir",
"crates/native-abi",
"crates/metal-compute",
"crates/vm-jit",
"crates/rss-testgen",
"packages/core/cli/native/rust",
"packages/core/crypto/native/rust",
"packages/core/http-server/native/rust",
"packages/rayon/native/rust",
"packages/adapters/sqlite/native/rust",
"packages/adapters/sqlx-ffi/native/rust",
]
# Release tuning for the `rss` tool / VM. Thin LTO + a single codegen unit let the
# optimizer inline across the interpreter's hot dispatch/value helpers, which are
# spread across modules. Small but real on the interpreter (~3% on numeric loops);
# the large interpreter wins come from the native JIT, not codegen flags. Costs
# extra release build time only (dev/test builds are unaffected).
[profile.release]
lto = "thin"
codegen-units = 1
# Invariant 2 (runtime hardening): a Rust panic in release means a runtime *bug*,
# not a program fault (program faults are returned as `EvalError` values). Abort
# instead of unwinding so a panic can never unwind across the C ABI at the
# JIT/FFI/native-helper seams (that is undefined behavior). Tradeoff: we give up
# Rust task-panic isolation, which is fine here because RSS task failures are
# values, not panics. `tests/hostile.rs` uses `catch_unwind`, but `cargo test`
# runs the dev profile (still unwind), so normal testing is unaffected. The fuzz
# crate sets its own profile.
panic = "abort"
# Test builds are used as a fast feedback loop, not for debugger sessions. Full
# debuginfo for the monolithic `rsscript` crate makes test compiles/linking much
# slower and bloats rustc incremental state, so keep test artifacts lean.
[profile.test]
debug = 0
incremental = false