Skip to content
Tech AI Wire

Swift 6.4 trae async en defer y hace de Swift Build el valor por defecto

Swift 6.4 permite código asíncrono en bloques defer, añade selectores de módulo y un puente WebAssembly 40 veces más rápido, y Swift Build pasa a ser el predeterminado del gestor de paquetes.

Por Tech AI Wire Team

3 min de lectura

XLinkedIn
A closed space-black MacBook Pro on a gray studio backdrop, the Apple logo on its lid.

En cifras

faster WebAssembly bridging through JavaScriptKit
40x
platforms where Swift Build is now the package manager default
3
the Android toolchain Swift Build now supports
NDK 30

Swift 6.4 se publicó el 15 de septiembre de 2026, un día después de que Apple entregara Xcode 27 junto con iOS 27. El anuncio de Swift.org se lee menos como una función estrella y más como una larga lista de cosas que antes eran incómodas y ya no lo son. Para quien desarrolla a diario, esa es la mejor clase de versión.

Dos cambios pesan más. El código asíncrono ya funciona dentro de los bloques defer. Y Swift Build, el motor de compilación de código abierto, es ahora el predeterminado en Swift Package Manager en Linux, macOS y Windows.

Los cambios del lenguaje

Un bloque defer ejecuta la limpieza cuando una función termina, tanto si devuelve como si lanza un error. Hasta ahora no podía contener await, así que la limpieza asíncrona necesitaba un rodeo. La propuesta SE-0493 elimina esa restricción, y Swift.org dice que la finalización está garantizada.

El resto del trabajo en el lenguaje va de leer y escribir menos ceremonia.

PropuestaQué hace
SE-0521Los tipos some y any ya no necesitan paréntesis en posición opcional
SE-0491Selectores de módulo: :: indica de qué módulo viene un símbolo
SE-0522Un atributo @diagnose para emitir avisos del compilador desde su propio código
SE-0493await dentro de defer
SE-0504withTaskCancellationShield, para proteger una región de la cancelación
SE-0517, SE-0527UniqueBox y UniqueArray, contenedores para elementos no copiables
SE-0516Un protocolo Iterable para que for-in funcione sobre tipos no copiables

Los tipos no copiables ganan además algo que les faltaba: ahora pueden conformar Equatable, Comparable y Hashable. Un tipo no copiable es uno que el compilador se niega a duplicar, usado cuando un valor representa un recurso único. Poder compararlos y calcular su hash cierra un hueco que los hacía difíciles de usar en código corriente.

Los cambios en la cadena de herramientas

Que Swift Build sea el predeterminado importa más allá de las plataformas de Apple. El mismo motor mueve ahora las compilaciones de paquetes en Linux y Windows, y la versión añade soporte para Android a través del NDK 30, el kit nativo actual de Android.

El frente de WebAssembly también avanzó. Swift.org dice que el puente a través de JavaScriptKit, la biblioteca que permite a Swift llamar al JavaScript de un navegador, es 40 veces más rápido. Las compilaciones de depuración en Linux y Windows son más pequeñas, y también los paquetes dSYM, los archivos que guardan los símbolos de depuración.

Subprocess 1.0 es ya estable y multiplataforma. Es la biblioteca para lanzar otros procesos y comunicarse con ellos, y su estabilidad significa que el código de servidor y de herramientas puede dejar de cargar envoltorios privados para ello.

Un punto más va dirigido a los equipos de cumplimiento y no a los desarrolladores de aplicaciones. La propuesta SE-0509 permite al gestor de paquetes generar una lista de materiales de software en formato SPDX o CycloneDX. Una lista de materiales es una relación legible por máquina de cada dependencia de una compilación, y los compradores regulados la piden cada vez más.

Qué significa esto para los desarrolladores

Empiece por defer. Busque en su código la limpieza que corre en una Task lanzada desde un bloque defer. Busque también estructuras do-catch que existen solo para ejecutar un cierre asíncrono en cada ruta de salida. Esos son los rodeos que SE-0493 jubila, y cada uno que elimine es una clase de error que deja de existir.

Después trate el cambio de Swift Build como una migración del sistema de compilación, porque eso es. Si tiene un paquete que se comportaba distinto en Linux que en macOS, recompílelo ahora y busque avisos que no haya visto antes. El motor cambió por debajo, y un cambio del valor predeterminado es justo cuando aflora una suposición silenciosamente específica de una plataforma.

Las incorporaciones de WebAssembly y Android son las que hay que archivar para después. Una mejora de 40x en el puente cambia lo que es razonable publicar en un navegador, pero solo si ya estaba a punto de intentarlo. El soporte de Android vía NDK 30 es igual: no es motivo para empezar una migración esta semana, pero sí el motivo de que ahora sea posible.

Por último, si alguien en su empresa ha pedido una lista de materiales, SE-0509 le da una gratis. Génerela una vez, compruebe que la lista de dependencias coincide con lo que cree que publica, y añádala a la canalización de lanzamiento. Es una tarde, y responde a una pregunta que de otro modo llega en forma de hoja de cálculo.

Fuentes

  1. Swift 6.4 Released - Swift.org
  2. Swift 6.4: What's New in Concurrency - SwiftLee

Artículos relacionados