Skip to main content

max / makenotwork

Strip the release binary Release builds carry no debuginfo, so this drops only the symbol table: 161.3 MiB to 120.7 MiB on 0.10.19 for no runtime cost, rsynced by every tier on every promote. Nothing reads a symbolized backtrace. Rebuild a sha with --config profile.release.strip=false if a panic ever needs one.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-26 14:59 UTC
Signed with PGP, not checked
Commit: a399abbab335d9bc1cfcc47a7dadc336736a34aa
Parent: 8e7d20c
1 file changed, +10 insertions, -0 deletions
@@ -177,6 +177,16 @@
177 177 wiremock = "0.6"
178 178 pom-contract = { path = "../shared/pom-contract" }
179 179
180 + [profile.release]
181 + # Drop the symbol table from the shipped binary. Release builds already carry no
182 + # debuginfo, so this is purely the symbol table: measured 161.3 MiB -> 120.7 MiB
183 + # on 0.10.19 (25.1%) for no runtime cost. Every tier rsyncs that difference on
184 + # every promote. Nothing here reads a symbolized backtrace (no `backtrace` crate,
185 + # no RUST_BACKTRACE in the unit file). If a panic ever does need symbolizing,
186 + # rebuild the sha with `--config profile.release.strip=false` — the build is
187 + # reproducible from the git sha the release was cut from.
188 + strip = true
189 +
180 190 [lints.rust]
181 191 unused = "warn"
182 192 unreachable_pub = "warn"