El GNU Compiler Collection es un conjunto de compiladores creados por el proyecto GNU. GCC es software libre y lo distribuye la Free Software Foundation (FSF) bajo la licencia general pública GPL.

Ver en Wikipedia

Noticias que mencionan GCC

Un experimento reducido compara RVA23 y ARMv9

Un experimento reducido comparó el tamaño del código, el volumen dinámico de instrucciones y el número de microoperaciones generado por RISC-V y ARMv9. La prueba utilizó chibicc, un compilador de C de tamaño medio, compilado consigo mismo como carga de trabajo. Los binarios se evaluaron con RVA22, R

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

La optimización de tail calls en C es un avance relativamente reciente

La optimización de tail calls (llamadas de cola) en el lenguaje C no existía desde siempre, según argumenta un comentario firmado por anton (anton@) en LWN.net. La convención de llamadas de C exigía que el llamante retirase los argumentos de la pila tras la llamada, lo que convertía estas llamadas e

Una ambigüedad del estándar C89 que nunca se resolverá

El autor documenta una ambigüedad nunca resuelta del estándar C89/C90 sobre las declaraciones implícitas de funciones, una característica del lenguaje eliminada en C99. Explica que, cuando se invoca una función no declarada, el compilador la inserta en el ámbito como extern int () en lugar de produc

Por qué Clang triplicó el rendimiento de un validador UTF-8 y GCC no

El autor, Nemanja Trifunović, mantiene desde 2006 una biblioteca C++ de código abierto para manejar cadenas UTF-8 y recientemente reoptimizó su función validate_next, que decodifica un code point UTF-8 a partir de un iterador de bytes. La versión original determina la longitud de la secuencia según

mcpp: una herramienta de construcción moderna para C++23 basada en módulos

mcpp es una herramienta de construcción de software pensada desde el origen para proyectos C++23 que usan módulos. Está escrita íntegramente en módulos C++23 y, según sus autores, ya se autohospeda: más de 43 módulos C++23 componen la propia herramienta y se compilan con su propio pipeline, lo que s

Cómo funciona la infraestructura en la nube de Compiler Explorer

Compiler Explorer, el popular sitio web que permite compilar y examinar código ensamblador en el navegador, opera sobre una infraestructura totalmente abierta en Amazon Web Services. Matt Godbolt, su creador, detalla los servicios que intervienen en cada petición del usuario, desde CloudFront y WAF

#embed en C++26: cómo incrustar binarios sin herramientas externas

C++26 incorpora #embed, una directiva de preprocesador que permite incrustar el contenido de un archivo binario —imágenes, certificados, configuraciones por defecto— directamente en el código fuente como una secuencia de expresiones constantes enteras, sin recurrir a herramientas externas como xxd,

build2 iguala e incluso supera a Ninja en velocidad de compilación

El desarrollador del sistema de compilación build2 presenta una comparativa de rendimiento frente a Ninja, considerado la referencia de velocidad en builds de C++. Para una prueba en igualdad de condiciones eligió Xerces-C++, un parser XML en C++ con 299 unidades de traducción, y realizó una compila

Cómo compilar un cross-compiler para Itanium y ejecutar Windows XP en QEMU

Un blog técnico detalla el proceso para construir un compilador cruzado para Itanium en macOS y arrancar Windows XP 64 bits sobre una bifurcación de QEMU con emulación del procesador Merced. El autor parte del fork de Malte Kuhlmann sobre el trabajo previo de syunnPC, que añade soporte funcional de

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ó

Consumo del ESP32-C6: comparación entre Arduino, Zephyr y ESP-IDF

Un análisis técnico compara el consumo energético del microcontrolador ESP32-C6 de Espressif funcionando sobre tres frameworks: Arduino, Zephyr RTOS y ESP-IDF. Las mediciones se realizaron con un placa de desarrollo ESP32-C6 alimentada a 3,6 V mediante el profiler Otii Ace, registrando corriente, po

La conversión de float a int en C++ puede ser comportamiento indefinido

En C++, convertir un valor en coma flotante a un entero mediante sintaxis tan habitual como `int i = f;` o `static_cast<int>(f)` constituye comportamiento indefinido cuando el valor truncado no cabe en el tipo destino. El estándar lo recoge en la página de conversiones implícitas de Cppreference, do

C++26 reduce el comportamiento indefinido en el núcleo del lenguaje

C++26 marca un avance significativo en seguridad del lenguaje. El comité ha abordado la reducción del comportamiento indefinido (UB) tanto en el núcleo del lenguaje como en la biblioteca estándar. La propuesta P3144R2 convierte en error de compilación la eliminación de un puntero a un tipo incomplet

El modelo de código grande no puede con el TLS

Un análisis técnico demuestra que la opción -mcmodel=large de GCC y Clang, pensada para compilar binarios enormes sorteando los límites de direccionamiento de 32 bits, falla de forma sistemática con variables thread-local (__thread) y, por extensión, con la inmensa mayoría del software C/C++ real de

Escribir un programa en C válido sin función main(): tutorial paso a paso

Este tutorial técnico de iximiuz Labs muestra cómo construir un ejecutable en C que prescinde de la función main() y, opcionalmente, de toda la biblioteca estándar, recurriendo directamente a las llamadas al sistema del kernel de Linux. El recorrido parte de un programa «Hola, mundo» convencional co

Cron jobs en C desde cero: un tutorial práctico

Daniel Hirsch presenta una sesión de programación de algo más de una hora en la que construye desde cero un ejecutor de tareas programadas (cron jobs) en lenguaje C. El vídeo está dirigido a estudiantes y desarrolladores que quieran comprender el funcionamiento interno de las tareas automáticas en s

Optimización de GEMM en FP32 logra 85,30 GFLOPS en un solo núcleo de AMD Zen 3

Un estudio técnico explora de forma sistemática la optimización de la multiplicación de matrices en precisión simple (FP32) sobre un AMD Ryzen 5 5500, basado en la microarquitectura Zen 3. El trabajo evalúa 28 configuraciones distintas que combinan técnicas de bajo nivel: bloqueo de caché en tres ni

Cómo montar un entorno de desarrollo para AmigaOS en 2026 sobre Linux

Daniel Kochmański publica una guía paso a paso para configurar en Linux un entorno completo de desarrollo cruzado para AmigaOS, válido en 2026 y dirigido a usuarios familiarizados con la compilación desde código fuente. El artículo explica cómo construir la toolchain amiga-gcc (ramas amiga16.1 para

Ni GCC ni Clang cumplen el estándar de C++ en el enlace de lenguajes

En C++, los tipos de función llevan asociado un «enlace de lenguaje» (language linkage) que puede ser «C++», «C» u otro definido por la implementación. El estándar establece con claridad que dos tipos de función con enlaces de lenguaje distintos son tipos diferentes aunque su firma sea idéntica, pre

moonBASIC, un lenguaje moderno para crear juegos 2D y 3D sin compilar nada

moonBASIC es un lenguaje y motor de juego diseñado para que cualquier persona pueda crear videojuegos en 2D y 3D sin instalar cadenas de herramientas ni dependencias. Su enfoque es radicalmente simple: se descarga un único paquete para Windows, Linux o macOS (Apple Silicon) y se obtienen tres piezas

Avances en GCC para eliminar los trampolines de las funciones anidadas en C

Las funciones anidadas de C —un caso particular del lenguaje soportado por GCC— han dependido históricamente de un fragmento de código auxiliar llamado trampolín que se genera en tiempo de ejecución sobre la pila. Para poder alojarlo, la pila debía ser ejecutable, algo que choca con una de las medid

clx: un compilador ahead-of-time de Lua con ejecutables nativos en C++20

clx es un compilador y runtime de Lua multiplataforma que genera ejecutables nativos independientes a partir de código Lua mediante cadenas de herramientas modernas de C++. Su objetivo no es competir por ser la implementación más rápida de Lua en todos los escenarios, sino ofrecer compilación ahead-

Cómo compilar GDC en FreeBSD usando DMD gracias a un pequeño wrapper

GDC, el frontend de D para el compilador GCC, no dispone de un paquete oficial en FreeBSD. El Dr. Brian Robert Callahan necesitaba esa herramienta como soporte de su investigación y, ante la ausencia de documentación práctica, documenta él mismo el procedimiento que ideó para compilarla en el sistem

Borrado de tipos en C++26 con reflexión: la librería duck lo simplifica

La librería rjk::duck, publicada como un único header, aprovecha las anotaciones y la metaprogramación por reflexión introducidas en C++26 para implementar borrado de tipos sin la verbosidad habitual. En lugar de escribir a mano cientos de líneas de código propensas a errores —o recurrir a alternati

Por qué un segfault desaparece al lanzar un programa con entr y bash -c

Un programador que iteraba sobre un pequeño programa en C con la herramienta entr descubrió que el mensaje 'Segmentation fault' no aparecía en la terminal al ejecutar el binario tras la compilación, pese a que el proceso moría por SIGSEGV. El artículo explica la causa raíz y propone soluciones. El

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

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

El depurador integrado de Emacs, una joya infravalorada

El artículo repasa el Grand Unified Debugger (GUD) de Emacs, una herramienta de depuración integrada en el editor que suele pasar desapercibida pese a su potencia. GUD actúa como interfaz común para múltiples depuradores: GDB, LLDB, Perldb, JDB, PDB, Guiler, DBX, XDB y SDB, lo que permite trabajar d

ymawky: un servidor web escrito completamente en ensamblador ARM64

## ymawky: el servidor web escrito completamente en ensamblador ARM64 que desafía las convenciones del desarrollo En un panorama dominado por servidores web escritos en lenguajes de alto nivel como C, Go o Rust, un proyecto experimental está dando que hablar en la comunidad de desarrollo: ymawky, u

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

Repositorio en C de los juegos clásicos 'BASIC Computer Games' de David Ahl

El repositorio 'bcg', publicado por el usuario proteanthread en GitHub, ofrece un port a C de los programas del libro 'BASIC Computer Games' (y su continuación 'More BASIC Computer Games') de David Ahl, obras de referencia de la informática personal publicadas originalmente por Creative Computing en

Cómo construir un Linux mínimo arrancando solo con kernel e init propio

Un desarrollador documenta paso a paso cómo reducir el arranque de un sistema Linux a su mínima expresión: un kernel y un initrd que contiene únicamente un binario 'init' compilado estáticamente. El objetivo es eliminar la creciente capa de software que, según el autor, ha convertido el arranque de

yserver: un servidor X11 moderno escrito desde cero en Rust

yserver es un servidor X11 escrito desde cero en Rust que busca ofrecer una implementación práctica y moderna del protocolo X11 capaz de ejecutar entornos de escritorio, gestores de ventanas y aplicaciones reales sobre Linux, sin arrastrar el lastre histórico de Xorg. A diferencia de proyectos que c

Free Oberon: un IDE clásico para el lenguaje Oberon

Free Oberon es un entorno de desarrollo integrado (IDE) multiplataforma para el lenguaje de programación Oberon, descendiente directo de Pascal y Modula-2. Diseñado en el clásico estilo pseudográfico de la famosa pantalla azul de Pascal, está disponible para Windows, macOS y Linux. Incluye un compil

La vida antes de main en Rust: inicialización y secciones de enlace

El artículo técnico 'There Is Life Before Main in Rust' explora en detalle lo que sucede antes de que se ejecute la función `main()` en un binario compilado con Rust. Se describe cómo el sistema operativo entrega el control al programa a través de un punto de entrada (`_start` o `WinMainCRTStartup`)

Cómo reducir al mínimo un binario en C con GCC

Este artículo analiza paso a paso cómo reducir el tamaño de un ejecutable ELF en x86-64 compilado con GCC partiendo de un programa mínimo que simplemente devuelve 0 al sistema. El autor, mediante una serie de iteraciones con banderas del compilador y código ensamblador inline, consigue reducir el bi

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

blqsort: quicksort sin ramas con redes de ordenación en C y C++

blqsort es una implementación de quicksort sin saltos condicionales (branchless) escrita en C y C++ que aprovecha redes de ordenación para clasificar pequeños subconjuntos de datos. El proyecto, distribuido en GitHub como biblioteca de cabecera única, está dirigido a desarrolladores que necesitan ru

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

NVIDIA Vera: núcleos Olympus superan a Intel y AMD en ARM

NVIDIA presentó recientemente las primeras pruebas públicas de su nueva CPU de centros de datos, la Vera, diseñada específicamente para cargas de trabajo de inteligencia artificial agente. Durante una visita a las instalaciones de la empresa en Santa Clara, se probaron los núcleos internos 'Olympus'

Herramienta automatiza la creación de código Verilog y VHDL para CRC

El Generador de CRC es una herramienta de línea de comandos diseñada para automatizar la creación de código de hardware para algoritmos de detección de errores CRC (Cyclic Redundancy Check). Su importancia radica en agilizar el desarrollo de sistemas digitales, permitiendo a ingenieros de hardware y

NumExpr multiplica velocidad en cálculos NumPy con optimización multitarea

La biblioteca NumExpr, desarrollada por David M. Cooke, Francesc Alted y otros bajo la dirección del mantenedor Francesc Alted, ofrece aceleración significativa para cálculos numéricos con arrays de NumPy en Python. La herramienta evita asignar memoria para resultados intermedios, lo que mejora el u

El sistema Haiku logra su primer arranque en un Mac con chip M1

El sistema operativo Haiku logró realizar su primer arranque exitoso en arquitectura ARM64. Según сообщалось в форуме разработчиков, пользователь Smrobtzz успешно запустил Haiku на MacBook Air с процессором M1 в режиме «bare metal» без виртуализации, используя загрузчик m1n1 и u-boot для обработки A

El misterio de a++ + ++a: por qué el mismo código C da resultados diferentes

El contenido explora el comportamiento indefinido (UB) en expresiones C/C++ que combinan operadores de incremento pre (++a) y post (a++). El caso central analizado es a = a++ + ++a. Se demuestra teóricamente cómo existen múltiples posibilidades de evaluación: el orden de captura de valores y cuándo

nfs-doctor: Diagnóstico fácil para servidores NFS

Un nuevo desarrollador ha creado 'nfs-doctor', una herramienta de línea de comandos en C diseñada para simplificar la depuración de servidores NFS desde el lado del cliente. La herramienta, disponible en GitHub, verifica aspectos críticos como la red, el funcionamiento de `rpcbind`, las versiones de

Turbo Vision revive: Unicode y compatibilidad moderna

Un desarrollador ha revitalizado Turbo Vision, un marco clásico para interfaces de usuario basadas en texto, con una nueva versión que ofrece soporte Unicode y compatibilidad multiplataforma. El proyecto, iniciado a finales de 2018, busca replicar la funcionalidad del original mientras lo adapta a e

PlanB: Nueva Biblioteca Acelera Enrutamiento IPv6

Un nuevo desarrollador ha creado una biblioteca de código abierto llamada `planb-lpm` que mejora significativamente la eficiencia del enrutamiento IPv6. Basada en un algoritmo publicado recientemente (PlanB) y reimplementada en C++17, la biblioteca utiliza un árbol B+ linealizado con AVX-512 SIMD pa

Criptografía en Cortex-M: incompatibilidad de punto flotante

Desarrolladores que trabajan con microcontroladores (MCUs) Arm Cortex-M están encontrando problemas de compatibilidad al usar bibliotecas criptográficas, específicamente al integrar sistemas de seguridad como el TrustZone CryptoCell 310. El problema surge de la incompatibilidad entre las diferentes

Fuzix OS: Nueva versión mejora red y compatibilidad

El proyecto Fuzix OS ha anunciado una actualización significativa (versión 0.4) centrada en mejoras de red, formatos de archivos binarios y simplificación del proceso de construcción. Esta actualización unifica los formatos binarios para las arquitecturas 8080, 8085 y Z80, permitiendo la ejecución d

Aplicaciones más seguras: optimizan llamadas al sistema

El artículo de Amit Limaye explora un problema fundamental en la seguridad y eficiencia de las aplicaciones modernas, especialmente aquellas que se ejecutan dentro de contenedores. La mayoría de las aplicaciones, incluso las más simples, se ejecutan sobre un kernel de Linux completo, que ofrece alre

Byterun: Intérprete de Python en 500 líneas

Este artículo de Allison Kaptur, ingeniera de Dropbox, explora Byterun, un intérprete de Python escrito en Python. El objetivo principal es desmitificar el funcionamiento interno de un intérprete, demostrando que su estructura fundamental puede caber en un código relativamente corto (menos de 500 lí

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

IA avanzada: ¿acceso limitado frena innovación?

La reciente aparición de modelos de lenguaje grandes (LLM) avanzados como Mythos, que supuestamente pueden identificar vulnerabilidades de seguridad, ha generado preocupación por la restricción del acceso a estas herramientas poderosas. El autor, un programador desde la infancia, reflexiona sobre có

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

Doom en la terminal: ¡juega con curl!

Un desarrollador ha creado una forma inusual de jugar el clásico videojuego Doom: a través de la línea de comandos utilizando `curl`. El sistema, alojado en un servidor HTTP, transmite los fotogramas del juego como bloques ANSI a la terminal, permitiendo a los usuarios interactuar con el juego envia

Linux define reglas para usar IA en su desarrollo

El desarrollador principal de Linux, Linus Torvalds, ha publicado directrices para el uso de herramientas de inteligencia artificial (IA) en el desarrollo del kernel de Linux. Estas pautas, detalladas en un documento en GitHub, buscan integrar la IA de manera responsable y transparente en el proceso

RISC-V: más placas de desarrollo llegarán en 2026

Canonical anticipa una mayor disponibilidad de placas de desarrollo RISC-V a partir de 2026, marcando un hito importante en la adopción de esta arquitectura de conjunto de instrucciones abierta. RISC-V, creada en 2010, ofrece flexibilidad y la posibilidad de innovación, permitiendo a cualquier perso

Glass Cannon: Generador de carga HTTP ultra rápido

Se ha lanzado 'Glass Cannon', un nuevo generador de carga HTTP/1.1 y WebSocket de alto rendimiento, diseñado para pruebas de estrés y rendimiento de servidores web. Desarrollado para [Http Arena](https://www.http-arena.com/), Glass Cannon se distingue por su velocidad, aprovechando la tecnología 'io

Solod: Nuevo Lenguaje Fusiona Go y C para Sistemas

Un nuevo lenguaje de programación llamado Solod (So) ha sido anunciado, diseñado para sistemas que requieren la eficiencia de C pero con la sintaxis y las herramientas de Go. Desarrollado por Solod-Dev en GitHub, So es un subconjunto estricto de Go que se traduce directamente a código C11 legible, e

Anos: Sistema operativo de código abierto avanza a hardware

Un desarrollador ha anunciado un hito significativo en el desarrollo de 'Anos', un nuevo sistema operativo de código abierto. Anos, actualmente en estado de 'kernel de juguete', ahora es capaz de ejecutar multitarea preemptiva en hasta 16 CPUs, lo que permite la ejecución de controladores de disposi

IA crea codec de video alternativo a H.264

Un equipo de ingenieros simulados por inteligencia artificial, utilizando el agente Claude Code de Anthropic, ha desarrollado un nuevo codec de video experimental llamado vibecoded como alternativa sin patente a los codecs H.264 y H.265. El proyecto, descrito como un experimento de aprendizaje y no

Binario Linux de 105 bytes: ¿el mínimo ejecutable?

Un desarrollador ha logrado reducir el tamaño de un archivo ELF (Executable and Linkable Format) de Linux a tan solo 105 bytes, mientras mantiene la capacidad de imprimir el mensaje "Hello, world!". Esta hazaña, impulsada por el trabajo de Josh Triplett, se basa en técnicas de optimización que elimi

QEMU: pruebas con sistemas big-endian

En el mundo de la informática, los términos *big-endian* y *little-endian* describen el orden en que se almacenan los bytes de un valor en la memoria. Imagina el número hexadecimal 0x12345678, compuesto por cuatro bytes. En un sistema *little-endian* (el más común, como los ordenadores personales y

Spaces: Nuevo Asignador de Memoria para Linux

Un nuevo asignador de memoria llamado 'Spaces' ha sido desarrollado para Linux x86-64, ofreciendo una alternativa a malloc con características avanzadas para un control más preciso de la memoria. Spaces, disponible como un único archivo de código fuente, permite la creación de regiones de memoria ex

LLM: Oráculos Ejecutables Mejoran la Calidad del Código

Este artículo explora una técnica prometedora para mejorar la calidad del código generado por modelos de lenguaje grandes (LLMs) como Claude y Codex: el uso de 'oráculos ejecutables' para restringir sus grados de libertad. Actualmente, los LLMs pueden generar código impresionante en tareas muy espec

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

Fatal Core Dump: Resuelve un misterio con código

Fatal Core Dump es una experiencia interactiva única que combina un misterio narrativo con la depuración de código real. En un futuro cercano, tras una catástrofe relacionada con el año 2038 (un problema de desbordamiento de enteros que afecta a sistemas que usan representaciones de tiempo de 32 bit

C++: Optimización de 'asin' Acelera Cálculos

Un desarrollador de C++ ha optimizado la función 'asin' (arcoseno) para mejorar el rendimiento, logrando mejoras significativas en algunas plataformas. El ajuste se basa en una técnica llamada 'Estrin's Scheme', que permite al compilador ejecutar operaciones en paralelo, aprovechando la arquitectura

Herramienta facilita verificación de código RISC-V

Un desarrollador ha presentado una nueva herramienta llamada "Knuckledragger" para simplificar la verificación de código ensamblador RISC-V. La herramienta aborda la complejidad inherente a la verificación de ensamblador, un proceso propenso a errores y con herramientas limitadas, especialmente en e

Luka, 13, crea su propio sistema operativo en dos semanas

Un joven de 13 años, identificado como Luka, ha desarrollado un sistema operativo llamado AurionOS en tan solo dos semanas como proyecto de aprendizaje. El sistema, construido desde cero en C y lenguaje ensamblador x86, está diseñado para usuarios que desean comprender a fondo el funcionamiento inte

Tic-Tac-Toe en una sola línea de código

Este código, creado por Carlini, es una implementación sorprendentemente compacta del juego Tic-Tac-Toe (Tres en Raya) escrita completamente en un único `printf` en C. El objetivo es demostrar la capacidad de `printf` para realizar cálculos complejos y control de flujo, más allá de su función princi

Linux: ¿Adiós a la GPL? Licencia MIT gana terreno

La licencia GNU Public License (GPL), ampliamente utilizada en el desarrollo de software, enfrenta un declive significativo, según un análisis reciente en LowEndBox. La complejidad que impone la GPL, especialmente en la gestión de licencias y la obligación de proporcionar acceso al código fuente, la

C++: Optimiza el polimorfismo con desvirtualización

Este artículo explora el tema de la 'desvirtualización' y el 'polimorfismo estático' en C++, abordando un problema común de rendimiento en diseños polimórficos. La programación polimórfica, a través de funciones virtuales, permite que el código se adapte a diferentes tipos en tiempo de ejecución. Si

Go acelera Tree-sitter: adiós a CGo y más rendimiento

Un desarrollador ha creado una nueva implementación en Go de un runtime para Tree-sitter, una herramienta de análisis sintáctico de código, eliminando la necesidad de CGo y mejorando significativamente el rendimiento. Esta nueva versión, llamada `gotreesitter`, permite la compilación en cualquier pl

Compiladores: ¿Siempre dan el mismo resultado?

El artículo explora la pregunta de si los compiladores son deterministas, un tema crucial en el desarrollo de software, especialmente con la creciente integración de modelos de lenguaje grandes (LLMs). La respuesta, según el autor, depende de si se considera desde una perspectiva teórica (ciencia de

SIMD x86: Evolución tecnológica y estrategias corporativas

Este artículo de bgslabs.org narra la fascinante historia de la evolución de las extensiones SIMD (Single Instruction, Multiple Data) en los procesadores x86, desde MMX hasta AVX-512, revelando que su desarrollo no es solo una cuestión de tecnología, sino también de marketing, política corporativa y

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

GPT en C: modelo más rápido para dispositivos

Un desarrollador ha creado una implementación en lenguaje C99 de un modelo GPT de estilo 'character-level', denominado MicroGPT-C, que permite un entrenamiento y generación de texto significativamente más rápidos que las implementaciones en Python. El proyecto, publicado en GitHub, busca ofrecer una

Picol: intérprete Tcl en C de solo 500 líneas

Picol es un intérprete de lenguaje similar a Tcl, escrito en C por Antirez (conocido por su trabajo en Redis), que se distingue por su tamaño increíblemente pequeño: solo 500 líneas de código. Originalmente creado en 2007, Antirez lo ha puesto a disposición en GitHub como un ejemplo de código C bien

vdb: Biblioteca C simplifica bases de datos vectoriales

Un desarrollador ha presentado 'vdb', una nueva biblioteca en C de código abierto y de un solo archivo (header-only) diseñada para simplificar el desarrollo de bases de datos vectoriales. La biblioteca, disponible en GitHub, permite almacenar y buscar incrustaciones vectoriales de alta dimensión, of

ACK: El Kit de Compilación Retro que Vuelve

El Amsterdam Compiler Kit (ACK) es una herramienta de compilación completa, un conjunto de herramientas (toolchain) diseñado originalmente en la Vrije Universiteit de Ámsterdam en la década de 1980 y revitalizado por David Given. Su objetivo principal es permitir la compilación de código fuente en e

Símbolos ELF: La Guía Esencial para Programadores

Este artículo es una guía introductoria a los símbolos ELF (Executable and Linkable Format), un concepto fundamental en la programación y el análisis de sistemas. Los símbolos son esencialmente nombres que representan funciones, variables u otros elementos del código, utilizados por el enlazador par

Fedora: Error en actualización afecta a DOOM

Este artículo relata un problema inesperado encontrado al actualizar paquetes de software para Fedora Linux, específicamente relacionado con el juego clásico DOOM y su derivado Chocolate-DOOM. El incidente, denominado humorísticamente "The little bool of doom", surge durante un 'Mass Rebuild', un pr

ga68: Reviven Algol 68 con Compilador para GCC

## FOSDEM 2026: Descubriendo ga68, el Compilador Algol 68 para GCC **¿Qué es Algol 68 y por qué deberíamos prestarle atención?** Algol 68 es un lenguaje de programación histórico, diseñado a mediados de la década de 1960 como sucesor de Algol 50. Aunque nunca alcanzó la popularidad de otros lengua

Compilador de OpenAI falla con 'Hola Mundo'

Un nuevo compilador de código C, denominado 'Claudes-C-Compiler' (CCC), desarrollado por OpenAI, ha fallado al intentar compilar un programa básico de 'Hola Mundo', según reportes recientes. El problema, detectado en diferentes entornos (Fedora 43, Ubuntu 26.04 y Fedora 42), impide que el compilador