Skip to content
Tech AI Wire

Swift 6.4 bringt async in defer und macht Swift Build zum Standard

Swift 6.4 erlaubt asynchronen Code in defer-Blöcken, bringt Modul-Selektoren und eine 40-mal schnellere WebAssembly-Brücke, und Swift Build ist jetzt Standard im Paketmanager.

Von Tech AI Wire Team

3 Min. Lesezeit

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

Die Zahlen

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 ist am 15. September 2026 erschienen, einen Tag nachdem Apple Xcode 27 zusammen mit iOS 27 ausgeliefert hat. Die Ankündigung auf Swift.org liest sich weniger wie ein Schlagzeilen-Feature und mehr wie eine lange Liste von Dingen, die früher umständlich waren und es jetzt nicht mehr sind. Für Entwickler im Alltag ist das die bessere Art von Release.

Zwei Änderungen wiegen am schwersten. Asynchroner Code funktioniert jetzt innerhalb von defer-Blöcken. Und Swift Build, die quelloffene Build-Engine, ist nun Standard im Swift Package Manager auf Linux, macOS und Windows.

Die Sprachänderungen

Ein defer-Block führt Aufräumarbeiten aus, wenn eine Funktion endet, ob durch Rückgabe oder durch einen Fehler. Bisher durfte er kein await enthalten, sodass asynchrones Aufräumen einen Umweg brauchte. Der Vorschlag SE-0493 hebt diese Einschränkung auf, und Swift.org sagt, der Abschluss sei garantiert.

Der Rest der Spracharbeit dreht sich darum, weniger Zeremonie zu lesen und zu schreiben.

VorschlagWas er tut
SE-0521some- und any-Typen brauchen an optionaler Stelle keine Klammern mehr
SE-0491Modul-Selektoren: :: benennt, aus welchem Modul ein Symbol stammt
SE-0522Ein @diagnose-Attribut, um aus eigenem Code Compiler-Warnungen auszugeben
SE-0493await innerhalb von defer
SE-0504withTaskCancellationShield, um einen Bereich vor Abbruch zu schützen
SE-0517, SE-0527UniqueBox und UniqueArray, Container für nicht kopierbare Elemente
SE-0516Ein Iterable-Protokoll, damit for-in über nicht kopierbare Typen läuft

Nicht kopierbare Typen bekommen außerdem etwas, das ihnen fehlte: Sie können jetzt Equatable, Comparable und Hashable erfüllen. Ein nicht kopierbarer Typ ist einer, den der Compiler nicht zu duplizieren erlaubt, gedacht für Werte, die eine einzigartige Ressource darstellen. Sie vergleichen und hashen zu können, schließt eine Lücke, die sie in gewöhnlichem Code schwer nutzbar machte.

Die Toolchain-Änderungen

Dass Swift Build zum Standard wird, zählt über Apples Plattformen hinaus. Dieselbe Engine treibt jetzt Paket-Builds auf Linux und Windows an, und das Release ergänzt Android-Unterstützung über NDK 30, das aktuelle native Toolkit für Android.

Auch bei WebAssembly hat sich etwas bewegt. Swift.org sagt, die Brücke über JavaScriptKit, die Bibliothek, mit der Swift das JavaScript eines Browsers aufruft, sei 40-mal schneller. Debug-Builds auf Linux und Windows sind kleiner, ebenso dSYM-Bundles, die Dateien mit den Debug-Symbolen.

Subprocess 1.0 ist jetzt stabil und plattformübergreifend. Es ist die Bibliothek zum Starten anderer Prozesse und zur Kommunikation mit ihnen, und ihre Stabilität heißt, dass Server- und Tooling-Code keine privaten Hüllen mehr dafür mitschleppen muss.

Ein weiterer Punkt richtet sich an Compliance-Teams statt an App-Entwickler. Der Vorschlag SE-0509 lässt den Paketmanager eine Software-Stückliste im Format SPDX oder CycloneDX erzeugen. Eine Stückliste ist eine maschinenlesbare Liste jeder Abhängigkeit in einem Build, und regulierte Käufer fragen zunehmend danach.

Was das für Entwickler bedeutet

Beginnen Sie mit defer. Durchsuchen Sie Ihren Code nach Aufräumarbeiten, die in einem aus einem defer-Block gestarteten Task laufen. Suchen Sie auch nach do-catch-Konstrukten, die nur existieren, um auf jedem Ausgangspfad ein asynchrones Schließen auszuführen. Das sind die Umwege, die SE-0493 überflüssig macht, und jeder, den Sie entfernen, ist eine Fehlerklasse weniger.

Behandeln Sie dann die Swift-Build-Änderung als Build-System-Migration, denn genau das ist sie. Wenn Sie ein Paket haben, das sich auf Linux anders verhielt als auf macOS, bauen Sie es jetzt neu und achten Sie auf Warnungen, die Sie noch nie gesehen haben. Die Engine unter Ihnen hat gewechselt, und ein Standard-Umschalten ist genau der Moment, in dem eine still plattformspezifische Annahme auffliegt.

Die Ergänzungen bei WebAssembly und Android sind die, die man für später ablegt. Eine 40-fache Verbesserung der Brücke verändert, was sich vernünftig im Browser ausliefern lässt, aber nur, wenn Sie schon kurz davor waren, es zu versuchen. Android-Unterstützung über NDK 30 ist dasselbe: kein Grund, diese Woche eine Portierung zu beginnen, aber der Grund, warum die Portierung jetzt möglich ist.

Und wenn schließlich jemand in Ihrer Firma nach einer Stückliste gefragt hat, liefert SE-0509 sie Ihnen kostenlos. Erzeugen Sie sie einmal, prüfen Sie, ob die Abhängigkeitsliste zu dem passt, was Sie ausliefern, und nehmen Sie sie in die Release-Pipeline auf. Das ist ein Nachmittag, und es beantwortet eine Frage, die sonst als Tabelle ankommt.

Quellen

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

Ähnliche Artikel