- BrainTools - https://www.braintools.ru -
Swift 6.3: главные особенности релиза
Вышел Swift 6.3, который расширяет возможности языка в новых областях и повышает удобство его использования разработчиками. Одна из главных особенностей релиза — работа над улучшением кроссплатформенных инструментов сборки.
Оуэн Вурхис делится новостями об этой работе:
Привет! Меня зовут Оуэн, я ведущий инженер в команде Core Build в Apple. В прошлом году мы объявили о своей цели — внедрить Swift Build в Swift Package Manager, чтобы устранить дублирование технологий сборки в экосистеме Swift и обеспечить единообразие процесса сборки на всех платформах, поддерживаемых Swift.
С момента объявления мы работали открыто, выпустив сотни патчей для улучшения поддержки Swift Build на различных платформах, включая Linux и Windows, а также для его глубокой интеграции в Swift Package Manager.
Начиная с версии Swift 6.3 разработчики могут включить эту интеграцию и опробовать её на своих пакетах. Чтобы убедиться в том, что новая система сборки не уступает предыдущей, мы использовали список пакетов с сайта swiftpackageindex.com [1] и протестировали тысячи пакетов с открытым исходным кодом с помощью Swift Build.
Совсем недавно основная ветка Swift начала использовать Swift Build в качестве системы сборки по умолчанию, что открывает путь к тому, чтобы в будущих релизах Swift Swift Build стал стандартной системой сборки для разработчиков Swift.
В ближайшие месяцы мы продолжим рассказывать о наших успехах и устранять оставшиеся ошибки [2], чтобы довести систему сборки до идеала. Мы призываем вас попробовать [3]её и сообщать [4]о найденных ошибках. Мы воодушевлены достигнутым прогрессом и с нетерпением ждём возможности улучшить инструменты для всех платформ и моделей проектов, которые выиграют от использования этой системы сборки.
Видеоролики
Интересуетесь системным программированием на Swift? Вот подборка свежих материалов:
В докладе «Containerization [5]» на конференции SCaLE рассказывается о проекте Containerization и опыте [6] внедрения Swift.
На восьмой встрече сообщества Swift [7] были представлены два доклада:
о компьютерном зрении [8] в реальном времени на NVIDIA Jetson;
о производственном конвейере данных для искусственного интеллекта [9], созданном с помощью Vapor.
В новом интервью с Мэттом Массикоттом [10] в подкасте Swift Academy подробно рассказывается о параллельной обработке в Swift.
Основные моменты
Как постепенно отказаться от устаревших API перед выходом новой крупной версии? В блоге Point‑Free рассказывается о «жёстком» и «мягком» устаревании с помощью SwiftPM Traits [11] — продуманном подходе к решению распространённой проблемы устаревания API.
Внедрение TelemetryDeck. Дэниел Джилг рассказал в блоге Swift о внедрении TelemetryDeck [12], в том числе о том, как они используют Swift и Vapor для серверных сервисов.
Релиз Swift для Wasm (март 2026 года). Представлен новый выпуск [13]JavaScriptKit с улучшениями BridgeJS и продолжена работа над WasmKit.
Эволюция [14] Swift
В рамках проекта Swift в язык добавляются новые возможности. Вот некоторые из предложений, которые в настоящее время находятся на рассмотрении или недавно были одобрены для включения в следующий релиз Swift:
На стадии рассмотрения:
SE‑0522. Управление предупреждениями компилятора на уровне исходного кода. Swift позволяет настраивать поведение [15] предупреждений на уровне модуля с помощью флагов компилятора, но это подход по принципу «всё или ничего». Это предложение добавляет возможность детальной настройки предупреждений: атрибут @warn, который позволяет переопределить поведение [16] предупреждений для определённой диагностической группы в рамках одного объявления, с возможностью повышения уровня предупреждения до уровня ошибки, понижения до уровня предупреждения или полного отключения — без влияния на остальную часть модуля.
Недавно одобренные предложения:
SE‑0509. Генерация спецификации программного обеспечения (Software Bill of Materials, SBOM) для Swift Package Manager. SBOM — это стандартизированный перечень всех программных компонентов в проекте, который всё чаще требуется для аудита безопасности и соблюдения нормативных требований. Это предложение добавляет в SwiftPM встроенную функцию генерации SBOM в виде:
флага --sbom-spec для swift build;
отдельной подкоманды swift package generate-sbom с поддержкой форматов CycloneDX и SPDX.
ST‑0021. Целенаправленная совместимость между Swift Testing и XCTest. При переходе с XCTest на Swift Testing часто возникает необходимость вызывать существующие вспомогательные функции XCTest из новых тестов Swift Testing. Сегодня сбой XCTAssert в тесте Swift Testing игнорируется без каких‑либо уведомлений. Это предложение устраняет эту проблему:
API XCTest будут работать должным образом при вызове в Swift Testing;
API Swift Testing — при вызове в XCTest, если XCTest уже предоставляет аналогичную функциональность.
SE‑0515. Разрешить функции reduce возвращать некопируемые результаты. В настоящее время функция reduce в Swift требует, чтобы её начальное значение было копируемым, что делает её несовместимой с некопируемыми типами. В этом предложении функция reduce дополняется:
поддержкой некопируемых исходных значений и результатов;
функцией, которая не заимствует, а использует исходное значение, — что позволяет избежать ненужного копирования даже для копируемых типов.
Автор: Chidorin
Источник [17]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/28194
URLs in this post:
[1] swiftpackageindex.com: http://swiftpackageindex.com
[2] ошибки: http://www.braintools.ru/article/4192
[3] попробовать : https://docs.swift.org/swiftpm/documentation/packagemanagerdocs/swiftbuildpreview/
[4] сообщать : https://docs.swift.org/swiftpm/documentation/packagemanagerdocs/swiftbuildpreview/#Reporting-issues
[5] Containerization: https://www.youtube.com/live/TRw0bsrtCjA?t=13975s
[6] опыте: http://www.braintools.ru/article/6952
[7] восьмой встрече сообщества Swift: https://www.youtube.com/watch?v=wCdE8sPJwTo
[8] зрении: http://www.braintools.ru/article/6238
[9] интеллекта: http://www.braintools.ru/article/7605
[10] интервью с Мэттом Массикоттом: https://www.youtube.com/watch?v=cUu0M5ewpPM
[11] о «жёстком» и «мягком» устаревании с помощью SwiftPM Traits: https://www.pointfree.co/blog/posts/203-hard-deprecations-and-soft-landings-with-swiftpm-traits
[12] о внедрении TelemetryDeck: https://www.swift.org/blog/building-privacy-first-analytics-with-swift/
[13] Представлен новый выпуск : https://forums.swift.org/t/swift-for-wasm-march-2026-updates/85725
[14] Эволюция: http://www.braintools.ru/article/7702
[15] поведение: http://www.braintools.ru/article/9372
[16] поведение: http://www.braintools.ru/article/5593
[17] Источник: https://habr.com/ru/articles/1018698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1018698
Нажмите здесь для печати.