Zig 0.17.0 llega con un sistema de compilación dividido y recompilaciones rápidas
Zig 0.17.0 salió el 2 de octubre con 925 commits de 206 colaboradores: un sistema de compilación rediseñado, compilaciones incrementales en Linux x86_64 y LLVM 22.1.8.
4 min de lectura

En cifras
- commits in Zig 0.17.0
- 925
- contributors to the release
- 206
- months of work since 0.16
- 5
- LLVM version Zig now builds on
- 22.1.8
El proyecto Zig publicó Zig 0.17.0 el 2 de octubre de 2026, tras cinco meses de trabajo. Su cambio principal es un sistema de compilación reconstruido que separa la configuración de la ejecución, además de una compilación incremental que funciona para la mayoría de los proyectos en Linux x86_64. Zig es un lenguaje de programación de sistemas que a menudo se usa como alternativa moderna a C. Para quienes usan Zig, la versión supone recompilaciones más rápidas, pero también una larga lista de cambios incompatibles y, por ahora, una configuración de editor rota.
Qué incluye Zig 0.17.0
Las notas de la versión dicen que 0.17.0 contiene cambios de 206 colaboradores en 925 commits. LWN.net, que cubrió el lanzamiento el 3 de octubre, señala que el ciclo fue más grande y más largo de lo que se esperaba al principio. Las piezas principales:
| Área | Cambio en 0.17.0 |
|---|---|
| Sistema de compilación | La configuración y la ejecución funcionan ahora como procesos separados |
| Herramientas | Un nuevo Build Server Protocol para herramientas de terceros |
| Compilación | Compilaciones incrementales para la mayoría de los proyectos en Linux x86_64 |
| Enlazador | El enlazador ELF gana soporte completo para x86_64, SPARC64, bibliotecas e información de depuración |
| LLVM | Actualizado a LLVM 22.1.8 |
| Plataformas | Añade loongarch32, aarch64-switch, arm-gba y xtensa-linux |
Sobre LLVM, las notas mencionan una solución provisional para la vectorización de bucles que se mantendrá hasta LLVM 23. LLVM es el conjunto de herramientas de compilación que Zig usa para generar código máquina optimizado.
Cómo funciona el nuevo sistema de compilación
Un proyecto Zig describe su compilación en un archivo llamado build.zig, escrito en el propio Zig. Hasta ahora, un solo proceso compilaba ese archivo y también ejecutaba toda la compilación.
En 0.17.0, ese trabajo se divide en dos. Squared Tech describió el diseño en mayo, cuando aún estaba en desarrollo. Un proceso "configurer" (configurador) compila build.zig en modo debug para determinar los pasos de compilación. Después, un proceso "maker" (constructor) independiente, compilado en modo release, lleva a cabo la compilación.
La división se nota en la velocidad. Una entrada de blog de bokvi informa de que zig build -h bajó de 150 milisegundos a 14,3 milisegundos en mayo de 2026, cuando el rediseño llegó a la rama de desarrollo.
La compilación incremental, ya práctica
La compilación incremental consiste en recompilar solo el código que ha cambiado en lugar de todo el programa. Las notas de la versión dicen que ahora funciona para la mayoría de los proyectos que apuntan a Linux x86_64. Los desarrolladores la activan con zig build -fincremental --watch. El sistema de compilación vigila entonces los archivos fuente y recompila casi al instante tras cada cambio.
Esto se apoya en meses de trabajo. En mayo, Squared Tech informó de recompilaciones incrementales de 228 a 288 milisegundos en un proyecto cuya compilación completa tardaba unos 36 segundos. En ese momento, el modo incremental también funcionaba con bibliotecas externas y archivos fuente en C. Aún le faltaba la información de depuración DWARF, los datos que usan los depuradores para relacionar el código máquina con las líneas del código fuente. Las notas de 0.17.0 incluyen el soporte de DWARF como parte del enlazador ELF mejorado.
El modo incremental está desactivado por defecto y solo funciona en Linux x86_64, según Squared Tech.
Los cambios incompatibles
Zig no ha llegado a la 1.0, y esta versión rompe mucho código. Las notas de la versión incluyen estos entre los cambios:
@bitCastse ha rediseñado.@intFromEnumy@enumFromIntse sustituyen por@backingInty@fromBackingInt.- Se elimina la sintaxis de multiplicación de arrays.
- Se elimina la sintaxis
void{}. errdeferya no puede capturar valores.@cImport, la función integrada para importar cabeceras de C directamente, queda obsoleta.
Se retiraron dos plataformas de destino: powerpc-linux-gnueabi y powerpc64-linux-gnu.
El soporte en editores está roto por ahora
La nueva división de procesos tiene un coste. Las notas de la versión dicen que la separación de los procesos maker y configurer rompe la integración con ZLS, el Zig Language Server. ZLS es lo que da a los editores el autocompletado y la función de ir a la definición para Zig. Las notas dicen que el trabajo en el Build Server Protocol está en marcha para restaurarla.
Qué significa esto para los desarrolladores
No actualices un proyecto que funciona en mitad de una fecha de entrega. La lista de sintaxis eliminada y funciones integradas renombradas implica que la mayoría de los proyectos no triviales necesitarán cambios. Ten especial cuidado con @bitCast, porque una conversión rediseñada puede cambiar el comportamiento de formas que una revisión rápida no detecta. Lee esa sección de las notas de la versión antes de confiar en las conversiones antiguas.
Ten en cuenta tu editor. Si dependes de ZLS para el autocompletado, quédate en 0.16 hasta que ZLS sea compatible con 0.17.0, o acepta por ahora editar como si fuera texto plano.
Prueba las compilaciones incrementales si trabajas en Linux x86_64. Ejecuta zig build -fincremental --watch en una rama y mide tu propio tiempo desde la edición hasta la ejecución. Las recompilaciones de menos de 300 milisegundos de Squared Tech salieron de un solo proyecto, así que tus cifras serán distintas.
Si usas Zig sobre todo como compilador de C o para llamar a código C, revisa cada @cImport. Está obsoleto en 0.17.0, así que planifica el cambio antes de que una versión posterior lo elimine.
Fuentes
- 0.17.0 Release Notes - Zig
- 0.17.0 Released - Zig
- Zig 0.17 released - LWN.net
- Zig Incremental Compilation: Fastest Builds Revealed - Squared Tech
- Zig in 2026: Colorless Async I/O and the Road to 1.0 - bokvi
Artículos relacionados

Debian Code Search elimina su última dependencia de cgo
Michael Stapelberg sustituyó una biblioteca en C de 7 años por Go puro usando el paquete SIMD experimental, y alcanzó la velocidad de la versión en C.

Un binario strip manipulado puede colar una puerta trasera en todo NixOS
Unos investigadores han construido el ataque trusting-trust de Ken Thompson con GNU strip, no con un compilador, y han colado puertas traseras en casi todo un instalador de NixOS.

La reescritura de mold en Rust aspira a ser el enlazador de Linux
Mold enlaza 4,9 veces más rápido que LLVM lld. Su autor lo está reescribiendo en Rust y quiere que las distribuciones lo instalen como /usr/bin/ld.