Saltar al contenido

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.

Por Tech AI Wire Team

4 min de lectura

XLinkedIn
Screenshot of the Zig website's '0.17.0 Released' news post, dated October 02, 2026, citing 206 contributors and 925 commits.

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:

ÁreaCambio en 0.17.0
Sistema de compilaciónLa configuración y la ejecución funcionan ahora como procesos separados
HerramientasUn nuevo Build Server Protocol para herramientas de terceros
CompilaciónCompilaciones incrementales para la mayoría de los proyectos en Linux x86_64
EnlazadorEl enlazador ELF gana soporte completo para x86_64, SPARC64, bibliotecas e información de depuración
LLVMActualizado a LLVM 22.1.8
PlataformasAñ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:

  • @bitCast se ha rediseñado.
  • @intFromEnum y @enumFromInt se sustituyen por @backingInt y @fromBackingInt.
  • Se elimina la sintaxis de multiplicación de arrays.
  • Se elimina la sintaxis void{}.
  • errdefer ya 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

  1. 0.17.0 Release Notes - Zig
  2. 0.17.0 Released - Zig
  3. Zig 0.17 released - LWN.net
  4. Zig Incremental Compilation: Fastest Builds Revealed - Squared Tech
  5. Zig in 2026: Colorless Async I/O and the Road to 1.0 - bokvi

Artículos relacionados