Repository navigation
ci(release): strip the shipped tsc and fold identical code on Linux - #110
Merged
Merged
Conversation
The linux-x64 tsc is 48.0 MB, about twice Go's 24.5 MB. 5.0 MB of it is the symbol table, and about 0.27 MB is identical functions that GNU ld cannot fold. - Strip the Linux tsc (strip --strip-all) and the macOS tsc (strip -x) after all checks. The Linux step fails if the program headers change. The unstripped tsc is the artifact unstripped-tsc-<platform>, for perf work. The strip is not a cargo profile setting: a profile change changes -C metadata, and the use build would then match no function of the profile. - Both Linux PGO builds link with rustup's rust-lld and --icf=all, through a new PGO_RUSTFLAGS in build-pgo.sh (it sets RUSTFLAGS itself). The plain tsc keeps GNU ld, so the PGO check compares a folded tsc with an unfolded one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The release linux-x64 tsc is 47.8 MB. Go's
typescript@7.1.0-betatsc is 24.5 MB. About 5 MB of ours is symbol tables (.symtab,.strtab) that Go strips from its release build (-ldflags "-s -w").This PR changes the release recipe in two ways:
strip --strip-all. Areadelf -lWguard fails the step if the program headers move.strip -x, then runs--versionto catch a bad arm64 signature.unstripped-tsc-<platform>artifact (90 days) for perf work.-C metadata, and the PGO use build then silently matches no profile.rust-lldwith--icf=all.build-pgo.shgets an opt-inPGO_RUSTFLAGS, because it setsRUSTFLAGSitself.Measured on a testbox with main's recipe (linux-x64):
pgo-train.sh comparegives the same output on 1,993 files.Do not merge yet:
<unknown>in the API panic answer (api/session_p1.rs:2367) and inGOPORT_TRACEoutput. A follow-up lane prints frame addresses and the build-id there, so the unstripped artifact can name them. It should land first.Part of the binary-size work (state notes
size-plan-decisions-2026-10-25,size2a-result-2026-10-25).This PR was made by Claude Opus 5.5 in Claude Code.
🤖 Generated with Claude Code