- BrainTools - https://www.braintools.ru -

«Что нового в Swift» Март 2026

“Что нового в Swift” Март 2026

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? Вот подборка свежих материалов:

Основные моменты

  • Как постепенно отказаться от устаревших 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

www.BrainTools.ru

Rambler's Top100