Optimización de compilaciones en GHC para Haskell

La presentación de Teo Camarasu, desarrollada por la Fundación Haskell, ofrece una guía técnica para mejorar la velocidad de compilación en proyectos de Haskell utilizando el compilador GHC. El objetivo principal es abordar el cuello de botella que surge cuando los proyectos crecen, donde los tiempo

Eventlog Live: telemetría en tiempo real para aplicaciones Haskell

Eventlog Live es una herramienta de software diseñada para capturar y transmitir telemetría en tiempo real desde aplicaciones escritas en el lenguaje de programación Haskell. Este programa actúa como un puente que analiza el registro de eventos (eventlog) generado por el runtime de GHC y lo exporta

Tilia: un formateador de Haskell que resuelve problemas de CPP y fixities

Tilia es un formateador de código para el lenguaje Haskell desarrollado desde cero, diseñado para abordar tres desafíos técnicos persistentes en la herramienta: el manejo correcto de comentarios, la inferencia precisa de las fixities de operadores y el soporte para la preprocesación de C (CPP). A di

Inyectar funciones en datos puros de Haskell mediante typeclasses

El artículo técnico explora la técnica de 'defuncionalización' en Haskell para permitir que las funciones se comporten como datos puros dentro de estructuras de datos extensibles. El autor argumenta que, aunque las funciones suelen ser complejas y difíciles de serializar, es posible integrarlas en t

Cómo evitar fugas de espacio que afectan la corrección en Haskell

Las fugas de espacio en Haskell pueden limitar el crecimiento de la memoria o provocar errores de corrección cuando una estructura thunk conserva referencias o aplaza evaluaciones necesarias. Este artículo propone prevenirlas mediante patrones de programación defensivos y detectarlas con perfiles de

Cómo simular expresiones if dependientes en Haskell sin tipos dependientes

Este artículo explica un truco de programación en Haskell que permite escribir expresiones `if` cuyos tipos de retorno varían según el valor de la condición, algo que a primera vista parecería exigir tipos dependientes, pero que en realidad solo necesita la extensión `RebindableSyntax`. El autor pa

Haskell propone una revisión del informe de Haskell 2010 antes de fin de año

David Binder, desarrollador de la comunidad Haskell, publicó en el blog oficial del lenguaje una hoja de ruta para producir una versión revisada del Haskell 2010 Language Report, el documento normativo del lenguaje que no se actualiza desde hace 16 años. El autor sostiene que el informe se ha quedad

Codificación de tipos existenciales en Haskell mediante funciones lineales

Este artículo presenta una técnica para codificar tipos existenciales en Haskell que permite que aparezcan 'desnudos' en las signaturas de tipo, sin necesidad de envolverlos en un constructor GADT ni recurrir a la transformación CPS (estilo paso de continuación). La codificación se apoya en funcione

EDSLs de expresiones tipadas en Haskell extremo (parte 1)

Este artículo de Justin Le inaugura una serie en tres partes dedicada a explorar el extremo más sofisticado del sistema de tipos de Haskell. El objetivo es construir un lenguaje de expresiones tipado embebido (un EDSL) que permita especificar un programa una sola vez y reutilizarlo de varias formas:

Koan en Haskell: cadenas no vacías validadas en tiempo de compilación

Bellroy comparte una técnica avanzada en Haskell para representar estados inválidos como imposibles en el sistema de tipos. La pieza central es NonEmptyText, un tipo que garantiza en compilación que una cadena tenga al menos un carácter, construido a partir de RequiredTypeArguments, introducido en G

Robar ideas a la biología para acelerar la compilación de Haskell

GHC, el compilador de Haskell, incluye una extensión llamada ApplicativeDo que traduce bloques do-notation en operaciones aplicativas (<*>) cuando no existen dependencias entre instrucciones, habilitando paralelismo automático. Sin embargo, el algoritmo que produce la planificación óptima de esas op