-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
42 lines (37 loc) · 1.44 KB
/
Copy pathCargo.toml
File metadata and controls
42 lines (37 loc) · 1.44 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
[workspace]
resolver = "2"
members = ["crates/eunoia", "crates/eunoia-wasm", "crates/eunoia-capi"]
default-members = ["crates/eunoia"]
[workspace.package]
readme = "README.md"
version = "1.9.0"
edition = "2024"
rust-version = "1.88.0"
authors = ["Johan Larsson"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/jolars/eunoia"
[workspace.lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(test)"] }
# Tests in `eunoia` are dominated by the optimization math
# (`compute_exclusive_regions`, LM, CMA-ES), which is ~23× slower in debug.
# Optimise the package itself in test builds while keeping `debug_assertions`
# on (so the `normalize_layout` post-fit assert and other `debug_assert!`s
# still fire). Drops a `cargo test -p eunoia --lib` run from ~32s to ~2-3s.
[profile.test.package.eunoia]
opt-level = 3
# Keep line tables in benchmark builds so `perf annotate`, `cargo flamegraph
# --bench`, and pprof stack samples can resolve to source lines without
# bloating the binary.
[profile.bench]
debug = "line-tables-only"
strip = false
# Custom profile for line-level profiling: release-grade optimisation plus
# full debug info and unstripped symbols. Use via:
# cargo flamegraph --profile profiling --example fit_profile
# cargo build --profile profiling --example fit_profile
# Kept separate from `release` so production builds stay lean.
[profile.profiling]
inherits = "release"
debug = true
strip = false
split-debuginfo = "off"