|
|
Building this fork for local use took ~3 minutes per one-line change:
[profile.release] sets lto = true and codegen-units = 1, so every rebuild
redid whole-program optimization on a single core. That is right for a
shipped artifact and pure waste for a binary we just want to look at in a
terminal - zellij is bound on a human, not on codegen.
[profile.fastdev] inherits release, keeps opt-level 3, drops LTO, uses 16
codegen units and keeps the incremental cache:
cargo build --profile fastdev -p zellij ~2.8s incremental (was ~3min)
[profile.release] is deliberately untouched, so shipping/benchmarking builds
are unchanged.
.fastfeedback/SPEED.md records the narrow commands, measured timings, the
deploy loop, and - importantly - the PRE-EXISTING test failure baselines
(30 in zellij-server, 5 in zellij-utils) so a future session does not waste
time chasing failures it did not cause.
Rejected: the gold linker (rustc warns it is deprecated with known Rust
bugs) and clang+lld (no lld binary installed). Dropping LTO removed the
dominant cost anyway.
|