Un estudio cuestiona la eficacia del flag -fret-clean de OpenBSD

Un equipo de investigación independiente ha publicado un artículo en IEEE Xplore que evalúa el flag -fret-clean de OpenBSD, introducido en la versión 7.6 para arquitecturas amd64. La mitigación ordena al compilador LLVM insertar, tras cada instrucción call, un movq que pone a cero la dirección de re

RPCS3 cierra la brecha de rendimiento entre ARM y x86 en la emulación de PS3

El emulador de código abierto RPCS3, dedicado a reproducir juegos de PlayStation 3 en hardware moderno, ha dado un salto significativo en eficiencia sobre procesadores ARM tras seis meses de trabajo de optimización. En un vídeo de algo más de una hora, el desarrollador conocido como Whatcookie repas

Construimos sin querer un compilador LLVM para JAX

El equipo de PennyLane, una biblioteca de software cuántico, estaba desarrollando Catalyst, un compilador cuántico basado en MLIR, cuando descubrió que su infraestructura podía ejecutar código JAX clásico sin necesidad de instrucciones cuánticas. El decorador @qjit acepta funciones JAX puras con Num

Avances en gccrs para compilar el núcleo Linux con GCC

El proyecto gccrs, que desarrolla un frontend de Rust para el compilador GCC, dedicó la primera mitad de 2026 a intentar compilar el núcleo Linux, un esfuerzo que ha permitido detectar y corregir múltiples fallos en el compilador. Aunque de momento gccrs solo puede manejar programas sencillos y autó

scriptc: compilador de TypeScript a ejecutables nativos sin motor JavaScript

scriptc es un compilador experimental, desarrollado por vercel-labs, que traduce código TypeScript ordinario a ejecutables nativos pequeños y rápidos, sin necesidad de Node ni de un motor de JavaScript incluido en el binario. La promesa central es que el mismo TypeScript que se ejecuta sobre Node —t

Mejoras en std::simd::swizzle_dyn: rendimiento y portabilidad

El artículo analiza las limitaciones actuales de la función std::simd::swizzle_dyn de Rust, una primitiva SIMD que reorganiza elementos dentro de un vector en tiempo de ejecución. El autor, mantenedor del proyecto Fearless SIMD, describe tres problemas concretos. Primero, la implementación solo apro

Cómo obtener gradientes exactos de código Fortran gracias a LFortran y Enzyme

El blog Tesseract presenta una cadena de compilación experimental que permite derivar automáticamente código Fortran heredado y obtener gradientes exactos sin reescribirlo en JAX o PyTorch. La propuesta combina LFortran, LLVM y Enzyme, un sistema de diferenciación automática que opera a nivel de LLV

Spectral Compute quiere liberar a CUDA del hardware de Nvidia

Spectral Compute, una empresa londinense fundada en 2018 por cuatro ingenieros con 60 años de experiencia combinada en optimización para HPC, desarrolla SCALE, un compilador basado en CLang y LLVM que funciona como sustituto directo de NVCC, el compilador CUDA de Nvidia. La herramienta permite recom

Phobos: un mini-lenguaje para kernels de GPU inspirado en Triton

Phobos es un lenguaje experimental de kernels creado por el desarrollador João como ejercicio personal de aprendizaje sobre la programación de bajo nivel en GPUs NVIDIA. Inspirado en Triton, el proyecto se plantea como una alternativa minimalista que compila directamente a PTX, el lenguaje ensamblad

Un programador porta Doom a su máquina virtual UVM con ayuda de IA generativa

Maxime Chevalier-Boisvert retomó su proyecto personal UVM, una máquina virtual minimalista basada en bytecode con pila que abandonó a principios de 2023, y se propuso compilar software real en ella. Hasta ahora, programar para UVM exigía usar su lenguaje ensamblador propio o ncc, un compilador de ju

LLVM, la infraestructura de compiladores que sostiene la informática moderna

El artículo repasa la historia, el diseño y el impacto de LLVM, la infraestructura de compiladores de código abierto nacida en 2000 como proyecto de investigación en la Universidad de Illinois Urbana-Champaign y publicada por primera vez en octubre de 2003. Financiada inicialmente por la Fundación N

Hobbes: un lenguaje y compilador JIT integrado para alto rendimiento

Hobbes es un lenguaje de programación fuertemente tipado con un compilador JIT integrado y runtime diseñado para la evaluación dinámica eficiente de expresiones, almacenamiento y análisis de datos. Desarrollado por Morgan Stanley, se integra de forma nativa con aplicaciones C/C++ ofreciendo máximo r

Cobertura binaria por el camino difícil: instrumentar ramas con INT3 sobre KVM

El artículo describe un método poco ortodoxo para obtener cobertura precisa de código en binarios sin código fuente (black-box), inspirado en la necesidad del autor de construir un fuzzer propio sin dynamic recompilation ni un portátil con Intel PT. Explica primero la evolución del fuzz testing: des

Un compilador de Rust completo, traducido a C y compilable con GCC

El repositorio crustc, publicado en GitHub por FractalFir, contiene una traducción completa del compilador rustc a código C, de modo que puede construirse con GCC y make sin necesidad de rustc como binario anfitrión. El proyecto sirve como demostración pública de cilly, una herramienta en desarrollo

Un proyecto acerca el soporte de Vulkan a NetBSD mediante Lavapipe y Mesa

El repositorio vulkan-netbsd, mantenido por el desarrollador segaboy, persigue llevar la pila de software gráfico Vulkan al sistema operativo NetBSD, el único BSD mayor que aún carece de ese soporte. El proyecto compila e instala el controlador por software Lavapipe de Mesa —un ICD Vulkan 1.4 que no

Optimización de push_back en SmallVector de LLVM: ruta rápida sin frame

LLVM, el compilador de Clang, ha introducido una optimización en SmallVector::push_back para tipos aproximadamente copiables triviales, su operación más caliente. Antes, la ruta rápida del push_back reservaba capacidad, almacenaba el elemento y luego llamaba a grow_pod, lo que obligaba a guardar thi

Una conversión de bool a u32 revela un fallo del optimizador de Rust

El desarrollador Parsa, autor de un blog técnico sobre compiladores y parsers, relata una sesión de refactorización de su motor de JavaScript escrito en Rust en la que una versión 'estética' de una función del lexer provocaba errores de parseo, mientras que una variante menos elegante funcionaba cor

Anatomía de un kernel CUDA: del código en C al silicio de la GPU

Ejecutar un kernel aparentemente trivial —sumar dos vectores de un millón de floats— esconde una cadena de traducciones y movimientos de datos que este artículo recorre paso a paso. El programa fuente, escrito en CUDA C, se divide en dos ramas: el código del host lo compila el compilador habitual de

Gossamer: un lenguaje de sistemas con sabor a Rust y goroutines reales

Gossamer es un lenguaje de programación de código abierto, publicado bajo licencia Apache-2.0, que combina una sintaxis expresiva inspirada en Rust con características propias de Go, como las goroutines y los canales tipados. Se ejecuta sobre una máquina virtual de bytecode con REPL para iterar con

Fil-C presenta ensamblador inline con seguridad de memoria

Fil-C, una variante de C y C++ con seguridad de memoria desarrollada por pizlonator, incorpora compatibilidad con ensamblador inline manteniendo las garantías de seguridad. La función, aún en fase preliminar y no incluida en el lanzamiento 0.679, requiere compilar desde el código fuente. El proyect

CS 6120 de Cornell: curso autoguiado y abierto sobre compiladores avanzados

CS 6120 es un curso de nivel doctoral de la Cornell University, impartido por Adrian Sampson, que ahora se ofrece como itinerario autoguiado y abierto en la web. El programa aborda la implementación de lenguajes de programación desde una perspectiva tanto clásica como de investigación: representacio

Tiny Shading Language: Creando un Lenguaje de Sombras para Renderizado Offline

El programador gráfico Jiayin Cao desarrolló Tiny Shading Language (TSL), un lenguaje de sombras personalizado para su renderizador SORT, en cuatro meses. La motivación detrás de este proyecto incluyó el aprendizaje profundo del proceso de compilación, la flexibilidad para modificar el código y la n

El camino hacia el Component Model 1.0 de WebAssembly

WebAssembly se encamina hacia un hito histórico: el Component Model 1.0, una especificación estable y formalmente definida que promete consolidar a Wasm como pilar fundamental de la informática moderna. Así lo adelantaron Luke Wagner y Alex Crichton en el Bytecode Alliance Plumbers Summit de febrero

Yon: un lenguaje de investigación cimentado en teoría de topos y HoTT

Yon es un lenguaje de programación de investigación cuyo sistema de tipos se fundamenta en la teoría de topos, el lema de Yoneda, la teoría de tipos de homotopía (HoTT) y la teoría de tipos cúbica, con efectos algebraicos y un núcleo de lógica intuicionista. Constituye, a la vez, un programa de inve

Reify: generador aleatorio de programas para probar compiladores de C

Reify es una herramienta de generación aleatoria de programas basada en reificación semántica, diseñada para poner a prueba compiladores de C y, potencialmente, otras máquinas virtuales. Su propósito es producir funciones y programas en C libres de comportamientos indefinidos (UB), de modo que cualq

Ü: un lenguaje de programación compilado, seguro y sin GC

Ü es un lenguaje de programación compilado y de tipado estático que prioriza la seguridad y el rendimiento. Inspirado en C++, pero sin sus desventajas, y con influencias menores de Rust, Ü ofrece una separación entre código seguro e inseguro, verificación en tiempo de compilación y abstracciones com

GCC 16 se acerca a la paridad con LLVM en soporte para BPF

José Marchesi y los desarrolladores de GCC-BPF abrieron la sesión sobre BPF en el Linux Storage, Filesystem, Memory-management, and BPF Summit 2026 con un repaso de 90 minutos sobre los avances del último año en el soporte de BPF en la cadena de herramientas GNU. GCC estaría cerca de alcanzar la par

ChatGPT y Claude hallan errores en compiladores de forma sorprendente

Este artículo detalla un experimento sorprendente sobre la búsqueda de errores en compiladores, utilizando modelos de lenguaje avanzados como ChatGPT y Claude. Justin Lebar, un experto en compiladores con experiencia en Google, Waymo y OpenAI, descubrió que podía encontrar una cantidad significativa

Jank crea IR personalizada para optimizar código Clojure

El compilador de Clojure 'jank' ha implementado su propia representación intermedia (IR) personalizada, diseñada específicamente para optimizar el código a nivel de semántica del lenguaje Clojure. Anteriormente, jank delegaba toda la optimización a LLVM, pero debido a que LLVM IR opera a un nivel mu

Librería Haskell optimiza cálculos de arrays de alto rendimiento

El proyecto Data.Array.Accelerate, desarrollado por el equipo AccelerateHS, es una librería Haskell que define un lenguaje embebido especializado para cálculos de arrays de alto rendimiento. Esta herramienta permite expresar computaciones sobre arrays multidimensionales regulares mediante operacione

Spectre: lenguaje con contratos para desarrollo seguro de bajo nivel

Spectre es un nuevo lenguaje de programación diseñado para el desarrollo seguro de sistemas de bajo nivel mediante el uso de contratos. El lenguaje permite definir invariantes a nivel de tipo y precondiciones y postcondiciones a nivel de funciones, ofreciendo seguridad a través de inmutabilidad por

Async Rust: optimización busca código más ligero

Desarrolladores de Async Rust están buscando optimizaciones para reducir el tamaño del código binario, un problema especialmente relevante en entornos con recursos limitados como microcontroladores. El problema surge porque el uso de Async Rust introduce una cantidad significativa de 'bloat' o códig

Fil-C: C/C++ más seguro con nueva técnica

Fil-C es un nuevo enfoque para implementar C/C++ con seguridad de memoria. El proyecto, detallado en corsix.org, busca resolver los problemas de seguridad inherentes a estos lenguajes mediante una transformación automatizada del código fuente. En su modelo simplificado, Fil-C inserta un `AllocationR

Llvm soluciona caída del 25% en rendimiento RISC-V

Un ingeniero ha identificado y corregido una regresión de rendimiento del 25% en el compilador LLVM al generar código para procesadores RISC-V. El problema surgió tras una reciente modificación en LLVM que, aunque optimizaba ciertas conversiones de punto flotante, inadvertidamente rompió una optimiz

División rápida: optimización en sistemas de 64 bits

Este artículo de investigación aborda un problema de optimización en la programación de computadoras: la división de números enteros sin signo de 32 bits por constantes en arquitecturas de 64 bits. Aunque la división por constantes es una operación común, su implementación eficiente puede ser un cue

Go llega a microcontroladores con TinyGo

TinyGo, un nuevo compilador basado en LLVM, ha expandido la capacidad del lenguaje de programación Go para abarcar sistemas embebidos y WebAssembly (WASM). El proyecto, impulsado por los autores de TinyGo, permite a los desarrolladores compilar y ejecutar programas Go en más de 100 placas de microco

Han: Nuevo lenguaje de programación con claves en coreano

Un nuevo lenguaje de programación llamado 'Han' ha sido desarrollado y se distingue por utilizar palabras clave en coreano, aprovechando el sistema de escritura Hangul. Creado por Xodn y basado en Rust, Han busca ofrecer una experiencia de programación única, combinando la belleza del diseño lingüís

Fedora en RISC-V: avances y lentitud en la compilación

Un desarrollador de Fedora Linux ha detallado el progreso y los desafíos en la adaptación del sistema operativo a la arquitectura RISC-V. Desde hace aproximadamente tres meses, se ha trabajado en la triagem de paquetes, con un total de 86 solicitudes de extracción (pull requests) enviadas para paque

Rust: Propuesta optimiza la llamada de funciones

Este artículo explora una propuesta para mejorar la convención de llamada en Rust, especialmente en arquitecturas x86, y cómo esto impacta la eficiencia del código generado. La convención de llamada define cómo se pasan los argumentos a las funciones y cómo se devuelven los valores, y la actual conv

LFortran compila fpm: avance clave para su beta

LFortran ha logrado compilar con éxito el Fortran Package Manager (fpm), un proyecto complejo que ha permitido identificar y corregir numerosos errores y carencias en el compilador. Este logro, completado el 7 de febrero de 2026, marca un hito importante en el desarrollo de LFortran, acercándolo a s

C: Nueva herramienta evita errores de memoria

`fbounds-safety` es una extensión para el lenguaje C que busca abordar un problema crítico: los accesos a memoria fuera de los límites (out-of-bounds, OOB). Estos accesos son una fuente común de vulnerabilidades de seguridad en C, y esta extensión tiene como objetivo eliminarlos convirtiendo estos a

Swift 6.0: Retraso por Problemas Técnicos

El desarrollo de Swift 6.0 enfrenta importantes obstáculos técnicos que impiden su lanzamiento estable, según un análisis detallado publicado en GitHub por LadybirdBrowser. La lista de problemas abarca desde incompatibilidades con LLVM, errores en la gestión de tipos opcionales entre Swift y C++, ha

BarraCUDA: CUDA en AMD GPUs, sin intermediarios

Un desarrollador ha creado BarraCUDA, un compilador de código abierto que permite ejecutar código CUDA en GPUs de AMD. El proyecto, escrito en C99 sin dependencia de LLVM, traduce archivos .cu directamente a código máquina GFX11 para GPUs AMD RDNA 3. Esto elimina la necesidad de capas de traducción

Llamadas a funciones: ¿Cuánto cuestan y cómo optimizarlas?

En programación, es común encadenar funciones, donde una función llama a otra. Aunque esto es una práctica habitual, cada llamada de función tiene un costo en términos de rendimiento. Este artículo explora ese costo y cómo los compiladores pueden optimizarlo a través de una técnica llamada 'inlining