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.
🔗 Читать подробнее
💡 Вывод:
Swift 6.4 - насыщенное обновление. Язык становится удобнее для повседневной работы и одновременно расширяет границы: серверы, Android, WebAssembly, embedded. Embedded Swift получил поддержку any типов, untyped throws, метатипов и парсинга чисел с плавающей точкой. Новые API для работы с памятью позволяют писать быстрый код без потери безопасности. Инструменты сборки и отладки становятся лучше.
Подписаться на канал:
➡️ Telegram | Max
