Haskell: Binarios más pequeños con nuevas técnicas

Fuentes: Techniques Shrink Haskell Binaries by Up to 64MB

Desarrolladores de Haskell han descubierto técnicas para reducir significativamente el tamaño de los binarios de Haskell, que a menudo pueden superar los 100MB debido a las dependencias. El método principal implica el uso de opciones de enlace como -split-sections y --gc-sections para eliminar código muerto y, posteriormente, aplicar 'identical code folding' (ICF) a través del linker lld. La combinación de estas técnicas puede reducir el tamaño de un binario de prueba (pandoc) de aproximadamente 113MB a tan solo 64MB, una reducción de más del 40%. ICF identifica y combina secciones de código funcionalmente equivalentes, aunque el proceso puede ser complejo de interpretar en relación con el código fuente. Además, se ha observado que el uso de tablas de información de constructores distintas para la depuración puede interferir con la optimización de ICF. Finalmente, se plantea la posibilidad de que el compilador GHC pueda optimizar aún más el proceso de generación de código para evitar la creación de secciones redundantes, lo que podría acelerar la compilación y reducir el tamaño de los binarios.