Disable share generics to reduce the binary size more (#64335)
After the new macOS nightly with
https://github.com/zed-industries/zed/pull/64260 arrived, I've noticed
that the binary had actually bloated back — run some bisecting and build
comparison, and seems that the shared generics are the culprit.
Platform / executable | Sharing enabled | Sharing disabled/default |
Reduction |
|---|---:|---:|---:|
| macOS ARM64 editor | 304,794,488 bytes | 266,242,792 bytes |
**38,551,696 bytes / 12.65%** |
| Linux x86_64 editor | 334,001,336 bytes | 325,916,104 bytes |
**8,085,232 bytes / 2.42%** |
| Linux x86_64 remote server | 123,618,032 bytes | 106,211,592 bytes |
**17,406,440 bytes / 14.08%**
Each pair uses the same checkout and Rust **1.98.1**, was built with the
bundling script:
- macOS: `9930d2c2a3`, measured after `strip -x`.
- Linux: `cd78c2db425e`, measured after `llvm-objcopy --strip-debug
--discard-all`.
The Linux section changes when disabling sharing are:
| Component | Editor | Remote server |
|---|---:|---:|
| Retained `.symtab` + `.strtab` | **−47,560,049 bytes** | **−17,733,989
bytes** |
| Allocated file-backed sections | +39,475,120 bytes | +327,448 bytes |
| Headers, padding, and other bytes | −303 bytes | +101 bytes |
| **Total** | **−8,085,232 bytes** | **−17,406,440 bytes** |
Release Notes:
- N/A
15d2fd55d3Kirill Bulatov committed on 9/18/2026, 10:49:35 AM· committed by GitHubparent74a6468