From 361a2fc3245a59bd74a1a561df2e3efd6f371e86 Mon Sep 17 00:00:00 2001 From: Jake Magar Date: Wed, 5 Aug 2026 17:20:55 -0400 Subject: [PATCH] perf(ci): emit line-tables-only debuginfo in dev builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI recompiles this workspace from scratch on essentially every job: CARGO_INCREMENTAL=0 is mandatory under the kache rustc-wrapper, so nothing is reused within a run. With no [profile.dev] override, rustc emits full DWARF for every crate — type and variable records that only an interactive debugger consumes, and that CI then throws away (the build already passes -C strip=debuginfo, which strips *after* paying to generate it). "line-tables-only" keeps file and line numbers in panics and backtraces, which is what CI logs are actually read for, and drops the rest. labby already uses this setting; axon, soma, cortex and yarr did not. Local `cargo build` gets the same treatment. If you need full debuginfo for a debugger session, override with CARGO_PROFILE_DEV_DEBUG=full. --- Cargo.toml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 4a2157cd..5d9dedb8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -183,6 +183,14 @@ test-support = [] # Release profile for a deployed long-running daemon + the bundled plugin # binary (full-review BM4). `panic = "abort"` is deliberately NOT set: # run_db recovers DB-task panics via JoinError::is_panic. +# CI compiles this workspace from scratch constantly (CARGO_INCREMENTAL=0 is +# required under the kache rustc-wrapper), and full DWARF is a large share of +# that time. "line-tables-only" keeps file/line in panics and backtraces -- +# what CI output is actually read for -- while skipping the type/variable +# debuginfo only an interactive debugger uses. Matches labby. +[profile.dev] +debug = "line-tables-only" + [profile.release] lto = "thin" strip = "symbols"