Repository navigation
build: keep only line tables in dev debug info - #196
Conversation
Full debug info makes every dev and test build write far more than it needs to. With several agents building worktrees in parallel, that write volume saturates the disk. Line tables keep file and line numbers in backtraces and drop the rest. For piqueld-core and piquelctl with tests, executables shrink from 860 MB to 350 MB and target/debug from 2.7 GB to 1.8 GB. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe workspace adds a ChangesDevelopment debug profile
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Other Merge Risk: ⚪ Minimal · up to The smaller development builds appear mergeable after normal checks; no actionable compatibility issue is established. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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. A rabbit checks the profile with care, Comment |
Problem
Dev and test builds use the default
debug = 2, so every test executable carries full variable and type info. With several agents building their own worktrees at once, all that output saturates the disk. That's enough to stall other software on the same machine: T3 Code's server froze for up to 16 s waiting on disk flushes (see pingdotgg/t3code#15707).Solution
Set
[profile.dev] debug = "line-tables-only". Backtraces keep file and line numbers. A debugger loses local variables and types; anyone who needs them can override per build withCARGO_PROFILE_DEV_DEBUG=2. Thetestprofile inheritsdev, sonextestbuilds shrink too. Release and dashboard profiles are unchanged.Measured on a clean
cargo test --no-run -p piqueld-core -p piquelctl:debug = 2line-tables-onlytarget/debugtotalI didn't run the full
justlocally because it rebuilds the whole workspace from scratch. The change only affects debug info, so CI covers it.Written by Claude Opus 5.5 running in Claude Code (via T3 Code).
🤖 Generated with Claude Code
Development build profile
[profile.dev] debug = "line-tables-only"inCargo.toml.dev, so this setting also applies to tests.CARGO_PROFILE_DEV_DEBUG=2to request full debug information.Other profiles
Reported build-size impact
cargo test --no-run -p piqueld-core -p piquelctlreduced test and binary executables from 860 MB to 350 MB.target/debugdecreased from 2.7 GB to 1.8 GB.justcommand locally. The author reports that CI covers the change.