Skip to content

build: keep only line tables in dev debug info - #196

Merged
PiquelChips merged 1 commit into
mainfrom
build/dev-line-tables-debuginfo
Oct 7, 2026
Merged

PiquelChips merged 1 commit into
mainfrom
build/dev-line-tables-debuginfo

Conversation

@PiquelChips

@PiquelChips PiquelChips commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

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 with CARGO_PROFILE_DEV_DEBUG=2. The test profile inherits dev, so nextest builds shrink too. Release and dashboard profiles are unchanged.

Measured on a clean cargo test --no-run -p piqueld-core -p piquelctl:

debug = 2 line-tables-only
Test and binary executables 860 MB 350 MB
target/debug total 2.7 GB 1.8 GB

I didn't run the full just locally 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

  • Set [profile.dev] debug = "line-tables-only" in Cargo.toml.
  • Development builds retain file and line information for backtraces, while omitting local-variable and type information.
  • The test profile inherits from dev, so this setting also applies to tests.
  • Set CARGO_PROFILE_DEV_DEBUG=2 to request full debug information.

Other profiles

  • The change does not modify the release or dashboard profile settings.

Reported build-size impact

  • The author reports that a clean cargo test --no-run -p piqueld-core -p piquelctl reduced test and binary executables from 860 MB to 350 MB.
  • The author also reports that target/debug decreased from 2.7 GB to 1.8 GB.
  • The author did not run the full just command locally. The author reports that CI covers the change.

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>
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2ac0c79e-df7c-41e5-a7f5-37c5a429e02f
📥 Commits

Reviewing files that changed from the base of the PR and between 130700e and fbadf11.

📒 Files selected for processing (1)
  • Cargo.toml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The workspace adds a [profile.dev] setting that retains line tables and omits variable and type information in debug builds. Tests that inherit the profile use the same setting.

Changes

Development debug profile

Layer / File(s) Summary
Set development debug information
Cargo.toml
The development profile sets debug = "line-tables-only". Inherited test builds also use this setting.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to fbadf

The smaller development builds appear mergeable after normal checks; no actionable compatibility issue is established.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: retaining only line tables in development debug information.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

A rabbit checks the profile with care,
Line tables remain for paths to share.
Type and variable details take a rest,
Debug builds follow the setting’s request.
Tests inherit it as they run,
Then the rabbit hops into the sun.

Comment @coderabbitai help to get the list of available commands.

@PiquelChips PiquelChips self-assigned this Oct 7, 2026
@PiquelChips PiquelChips modified the milestones: Later, 0.1 Oct 7, 2026
@PiquelChips
PiquelChips merged commit 4703ac8 into main Oct 7, 2026
14 checks passed
@PiquelChips
PiquelChips deleted the build/dev-line-tables-debuginfo branch October 7, 2026 17:27
@github-project-automation github-project-automation Bot moved this to Needs Triage in origin-src.dev Oct 14, 2026
@github-project-automation github-project-automation Bot moved this from Needs Triage to Done in origin-src.dev Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant