← → space
1 / 17
Bun v1.3.11
5 MB
99.11 MB   →   94.62 MB
linux x64
v1.3.10
99.11
v1.3.11
94.62
MB
Nobody
changed
anything.
CMake link template
<CXX> <FLAGS> <LINK_FLAGS>
<FLAGS> = CMAKE_CXX_FLAGS
that included
-O3
in the link step
CMake was
smuggling
a compile flag
into the link.
new TS build → explicit ldflags only
-O3
-O2
lld default
Why only
Linux?
link-time -O3
Linux→ -plugin-opt=O3
macOSdiscarded
Windowsnever forwarded
only ELF clang driver forwards it to LTO
llvm/LTO/Config.h:60
OptLevel = 2;
lld hardcoded default
Where did
4.94 MB
of .text go?
same function count — just smaller bodies
Yarr Unicode tables — 1.48 MB (30%)
JIT internals — 0.70 MB
once-per-VM init — 0.50 MB
createCharacterClass367
-O3
858
-O2
200
KB — one regex table
Runs when you use
\p{…}
(almost never)
one actually-hot function moved
NodeHTTPServer__onRequest
bytes
6789 → 3067
calls
52 → 28
O3 inlined slow-path alloc
11×
into the hot loop
O2 → fits L1i.
targetv1.3.10v1.3.11Δ
linux-x6499.1194.624.49
linux-x64-baseline98.7593.814.94
linux-aarch6496.7194.082.63
darwin-aarch6458.1158.13
windows-x64109.45109.98