Noticias que mencionan GHC

GHC adopta política de contribución asistida por IA con transparencia total

El compilador Haskell GHC ha implementado una política formal para gestionar las contribuciones asistidas por modelos de lenguaje de gran escala (LLM). Esta directiva, desarrollada por Simon Peyton Jones y aprobada en julio, establece cuatro puntos normativos y una preferencia fuerte, priorizando la

Implementación de uniones de tipos en Haskell mediante extensiones

El sistema de tipos de TypeScript destaca por su capacidad para definir uniones de tipos y tipos literales, lo que permite una precisión en la definición de APIs sin sacrificar la concisión. En contraste, Haskell carece de estas características nativas, lo que obliga a los desarrolladores a utilizar

El sistema de tipos de Haskell: clases, kinks y tipos de orden superior

El sistema de tipos de Haskell introduce una capa de abstracción conocida como 'Kinds' (clases), que permite clasificar no solo los valores, sino también los constructores de tipos. Este mecanismo es fundamental para la expresividad del lenguaje, ya que permite codificar restricciones y comportamien

Diseño de bibliotecas Haskell para importaciones calificadas

El diseño de bibliotecas en Haskell para gestionar importaciones calificadas busca equilibrar la legibilidad del código con la robustez estructural. Este enfoque, ilustrado mediante la librería otel-effectful de IDA, resuelve el problema de los conflictos de nombres entre módulos que exponen identif

Diferencias fundamentales entre typeclasses y sistemas de módulos

Los sistemas de programación modernos presentan una confusión persistente entre los typeclasses, presentes en lenguajes como Haskell o Rust, y los sistemas de módulos, típicos de OCaml. Aunque ambos mecanismos comparten una base técnica común, sus objetivos semánticos son distintos. Los typeclasses

THC permite ejecutar Haskell en la JVM mediante JIT y AOT

Edward Kmett ha desarrollado THC, un compilador que permite ejecutar Haskell en la JVM utilizando un compilador Just-In-Time (JIT) y soporte para compilación en tiempo de ejecución (AOT). El proyecto, iniciado hace una semana, implementa todos los operadores primarios de GHC 9.14.1 y se basa en la a

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

Cómo acelerar scripts Haskell en GitHub Actions con bundles en caché

Ejecutar scripts Haskell en GitHub Actions suele ser lento: cada ejecución parte de un runner limpio, sin caché de Nix ni de Magix, así que hay que instalar herramientas, descargar dependencias y compilar el guion desde cero. En un caso real, esa puesta en marcha consumió 92 de los 105 segundos tota

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

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

Koru: Nuevo lenguaje desafía el rendimiento de C

Un nuevo lenguaje de programación llamado Koru está sorprendiendo al mundo de la informática al demostrar un rendimiento comparable, e incluso superior en algunos casos, a lenguajes de alto rendimiento como C, Rust y Zig. Según pruebas realizadas por los desarrolladores de Koru, sus 'kernels' (unida

Herramienta automatiza pedidos de REWE con línea de comandos

Un desarrollador ha creado una herramienta de línea de comandos (CLI) llamada 'korb' que permite automatizar los pedidos de comestibles de REWE a través de sus APIs. Escrita en Haskell, la herramienta está diseñada para ser utilizada por agentes o asistentes para organizar las compras de REWE, gener

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

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