Apple spendiert Swift 5 erhöhte Memory Safety

Um die Programmiersprache insgesamt sicherer zu gestalten, soll exklusiver Zugriff auf den Speicher zur Laufzeit künftig standardmäßig aktiviert sein.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
Programmiersprache: Das sind wichtigsten Neuerungen von Swift 4.2

(Bild: Apple)

Lesezeit: 2 Min.

Im Vorfeld der Fertigstellung von Swift 5.0 gibt Apple Einblicke in neue Funktionen, die der Programmiersprache zu mehr Sicherheit verhelfen sollen. Dazu zählt beispielsweise das mit Swift 4 eingeführte Exclusivity Enforcement, das auf dem von der Programmiersprache Rust inspirierten Speicher-Ownership-Modell aufsetzt. Bisher ist eine Prüfung auf exklusiven Zugriff auf den Speicher zur Laufzeit lediglich in Debug Builds standardmäßig aktiviert. Ab Swift 5 soll das auch für Release Builds gelten.

Die verschärften Vorgaben haben erhöhte Memory Safety zum Ziel, wie Apples Software Engineer Andrew Trick im Swift-Developer-Blog erläutert. Swift soll dazu exklusiven Zugriff auf eine Variable sicherstellen. So lange eine Variable als inout-Argument oder self innerhalb einer mutating-Methode modifiziert wird, darf nicht über einen anderen Namen auf sie zugegriffen werden. Damit sich darüber hinaus auch das bei Zugriffsverletzungen gelegentlich auftretende unvorhersehbare Verhalten des Compilers unterbinden lässt, sind die Maßnahmen zum Exclusivity Enforcement ab Swift 5 verbindlich.

Eine dynamische Diagnose zur Laufzeit soll vor allem auch typische Exklusivitätsverletzungen abfangen, die in Zusammenhang mit Eigenschaften von Class Types, statischen Eigenschaften oder globalen Variablen stehen und die sich nicht durch statische Diagnose beim Kompilieren ausräumen lassen. Das Exclusivity Enforcement ist Trick zufolge außerdem eine notwendige Voraussetzung für das neue – in der Betaversion von Swift 5.0 bereits verfügbare – Application Binary Interface (ABI), das eine betriebssystemübergreifende Kompatibilität von Swift Runtime, Libraries und Applikationen sicherstellen soll.

Entwickler sollten laufende Projekte auf etwaige Probleme mit Zugriffsverletzungen überprüfen. Denn auch Swift-Anwendungen, die sich bisher korrekt verhalten haben, aber noch nicht im Debug-Modus vollständig getestet wurden, könnten unter den neuen Bedingungen betroffen sein, warnt Trick. Weitere Details zu den Maßnahmen für erhöhte Memory Safety in Swift 5 einschließlich einer Reihe von Beispielen finden sich im Blog-Beitrag. Die Betaversion der Entwicklungsumgebung inklusive der SDKs steht registrierten Entwicklern zum Download bei Apple zur Verfügung.

Siehe hierzu auf heise Developer auch:

(map)