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

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