chore: trim dev/test debuginfo to line tables for faster links#75
Conversation
`cargo test` here is dominated by link time, and full per-variable DWARF is the bulk of it — the daemon test suite relinks several large binaries. Set the dev profile (which the test profile inherits) to `debug = "line-tables-only"`: panic backtraces still report file:line, but the heavy variable debuginfo is dropped and macOS skips the slow dsymutil packaging step, cutting link time across the suite.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 54 minutes and 17 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What
Sets the workspace dev profile to
debug = "line-tables-only"to speed upcargo test/cargo buildlink time. Audit backlog item #25 (test-speed quick wins), requested during the session.Why
There was no
[profile]config, so everything built with fulldebug = 2DWARF. Link time — especially relinking the several large daemon integration-test binaries — is the dominant cost of the test suite, and full per-variable debuginfo is the bulk of it.How
[profile.dev] debug = "line-tables-only"(thetestprofile inherits fromdev). This keeps file:line in panic backtraces while dropping the heavy variable debuginfo, and lets macOS skip the slowdsymutilpackaging step. No source changes; backtraces are preserved by design (cargo documentsline-tables-onlyas "minimal debug info for backtraces with filename/line number").Deferred follow-ups (larger, noted not done)
crates/daemon/tests/*.rsintegration binaries into one — each currently relinks the whole daemon crate; merging into a single binary with per-file modules would cut that to one link. Mechanical but touches the test layout, so kept separate.Verification
cargo buildsucceeds under the new profile (Finished dev [unoptimized + debuginfo]). Offmain, config-only.Generated with Claude Code
Summary by cubic
Trim dev/test debug info to line tables to cut link time in
cargo test/cargo build, while keeping file:line backtraces and letting macOS skipdsymutil. Addresses Linear issue 25 (test-speed quick wins).Written for commit d4e7bc0. Summary will update on new commits.