Добавить объявление

Релиз Swift 6.4: главные изменения для разработчиков

Swift 6.4 вышел. Это обновление получилось насыщеннее, чем обычно. Язык продолжает выходить за пределы разработки под Apple: серверы, Android, WebAssembly, embedded и системный код.

Упрощение повседневного кода:


Несколько изменений делают код чище и понятнее:

  • Теперь можно писать some Rocket? вместо (some Rocket)?. Скобки для optional some и any больше не нужны.

  • Появился атрибут @diagnose, который позволяет управлять предупреждениями компилятора прямо в коде: подавлять, повышать до ошибок или включать.

  • Если два модуля экспортируют одно и то же имя, можно указать нужный через селектор модуля ::

  • Асинхронные вызовы теперь разрешены внутри defer. А withTaskCancellationShield позволяет выполнить очистку, даже если задача была отменена.

Новые API для работы с памятью:


Swift 6.4 продолжает развивать тему владения и производительности:

  • UniqueBox - умный указатель, который владеет значением в куче без подсчета ссылок.

  • UniqueArray хранит некопируемые элементы без copy-on-write.

  • Iterable позволяет перебирать элементы без копирования.

  • Ref и MutableRef дают первоклассный контейнер для заимствования или изменения одного значения за раз.

Инструменты и сборка:


  • Swift Build теперь используется по умолчанию в Swift Package Manager на Linux, macOS и Windows. Проекты собираются одинаково на всех платформах.

  • Добавлена генерация SBOM - Software Bill of Materials.

  • Отладка стала лучше. LLDB теперь импортирует модули через точное отслеживание зависимостей. Debug-сборки на Linux и Windows, а также dSYM-бандлы на Darwin значительно уменьшились.

  • Расширение Swift для VS Code теперь доступно на Open VSX Registry. Оно работает в Cursor, Antigravity, Kiro и других инструментах.

Интероп и платформы:


  • Интероп с C и C++ стал глубже. Span теперь напрямую работает с std::span из C++20.

  • Swift/Java interop расширил поддержку асинхронных и throwing функций для протоколов и колбэков.

  • WebAssembly: JavaScriptKit стал до 40 раз быстрее при bridging. Wasm SDK доступен прямо на swift.org.

  • Android: Swift SDK построен на новом LTS NDK 30. Swift Build теперь поддерживает Android в SwiftPM.

Embedded Swift:


Embedded Swift получил несколько важных улучшений:

  • Поддержка any типов. Раньше Embedded Swift поддерживал только any типы с ограничением AnyObject, то есть только для экземпляров классов. Теперь доступны все any типы, включая Any. Это позволяет использовать гетерогенные коллекции и более гибко работать с протоколами.

  • Untyped throws. Раньше Embedded Swift разрешал только конкретные типы ошибок, например throws(ParsingError). Теперь полностью поддерживается untyped throws, что эквивалентно any Error. Это делает обработку ошибок более естественной, хотя для кода, чувствительного к аллокациям, лучше использовать типизированные ошибки.

  • Метатипы. Embedded Swift традиционно позволял использовать метатипы только в узких местах, например для указания типов аргументов в generic-функциях. Теперь поддержка полная: можно создавать и использовать экземпляры метатипов, включая экзистенциальные типы вроде any (DefaultInitializable.Type).

  • Парсинг чисел с плавающей точкой. Теперь доступен в Embedded Swift. Можно парсить Double и Float из строк так же, как в полном Swift.

  • Обработка ошибок в конкурентности. Библиотека конкурентности Embedded Swift теперь поддерживает throwing операции: throwing tasks и task groups.

Subprocess 1.0:


Библиотека Subprocess дошла до стабильной версии 1.0. Это кроссплатформенный способ запускать и взаимодействовать с другими программами Swift.

Hashable:


Некопируемые типы теперь могут соответствовать Equatable, Comparable и Hashable.

Вывод:


Swift 6.4 - насыщенное обновление. Язык становится удобнее для повседневной работы и одновременно расширяет границы: серверы, Android, WebAssembly, embedded. Embedded Swift получил поддержку any типов, untyped throws, метатипов и парсинга чисел с плавающей точкой. Новые API для работы с памятью позволяют писать быстрый код без потери безопасности. Инструменты сборки и отладки становятся лучше.
22.09.2026 53 648