This increase in file size is a consequence of Replace inline type IDs with global constants in LLVM IR by HertzDevil · Pull Request #15485 · crystal-lang/crystal · GitHub
Now we’re embedding the names of all types into the executable as strings, when previously it were only the names of types that were actually instantiated.
Unfortunately, there’s no trivial way to avoid this.
Essentially, we’re trading binary size for compiler performance.
4 Likes