Idea: Remove unused symbols in link-time for smaller binaries
This caught my attention recently: https://github.com/ocaml/ocaml/pull/608
I think GHC could also benefit from this. I'm currently looking at an
- 0,1-generated executable, generated with -O2. In the code I defined some
unused instances, just as an example, and I see code for those in text section in the binary. There is also lots of other unused stuff (I think mostly typeclass instances) imported from libraries and they're all unused because this is a "hello world" program that imports stuff and defines instances for no reason.
There should be another ticket around here that reports some numbers on how big GHC-generated executables (and GHC itself) is (when compared with other compilers)...