Apple выпустила Swift 6.4: сборка кода стала одинаковой на Linux, macOS и Windows

Вышел Swift 6.4, очередной релиз языка программирования Swift от Apple. Разработка продолжает расширять его за пределы приложений для macOS и iOS в сторону кросс-платформенного инструмента, и релиз во вторник продолжил эту работу: Swift Build стал системой сборки по умолчанию для менеджера пакетов Swift Package Manager (SwiftPM).
Это объединяет опыт разработчика независимо от платформы. Теперь весь цикл сборки, что в Xcode, что из обычной командной строки, проходит одинаковыми шагами вне зависимости от того, собирается приложение под Linux, macOS или Windows. Собирать проект можно и из редактора VS Code, благодаря новому расширению, доступному в реестре Open VSX.
В интегрированный пакет также входит инструмент генерации SBOM (Software Bill of Materials, спецификации программных компонентов) для каждого приложения: он перечисляет все зависимости в формате SPDX или CycloneDX, согласно предложению SE-0509 в развитии языка Swift.
SwiftPM был создан Apple в 2015 году как инструмент автоматизации и управления зависимостями из командной строки; сам Swift Build, это набор взаимодействующих инструментов, которые вместе управляют компиляцией (через компилятор swiftc), линковкой и тестированием кода. SwiftPM умеет работать с любым git-репозиторием, а также с приватными сервисами вроде Bitbucket и JFrog Artifactory. Отдельно SwiftPM тесно связан со Swift Package Index (SPI), сервисом поиска Swift-артефактов, созданным в 2020 году и купленным Apple в июне этого года. По данным издания, SPI сейчас размещает свыше 10 400 пакетов и проверяет совместимость каждой зависимости с разными платформами и версиями Swift.
Релиз также ускоряет отладку: дебаггер LLDB теперь экономнее расходует место, ссылаясь на точный путь к используемому модулю вместо того, чтобы встраивать в файл отладки весь модуль целиком, раньше это заметно раздувало такие файлы. Кроме того, в Swift 6.4 улучшена совместимость с C++, Java, JavaScript и WebAssembly, для которого появился отдельный SDK.
Ключевые факты
- В релизе Swift 6.4 Swift Build стал системой сборки по умолчанию для Swift Package Manager (SwiftPM).
- Шаги сборки теперь идентичны для Linux, macOS и Windows, что в Xcode, что из командной строки, а также из VS Code через новое расширение в реестре Open VSX.
- Добавлен инструмент генерации SBOM, списка зависимостей приложения в форматах SPDX или CycloneDX, по предложению SE-0509.
- Отладчик LLDB стал экономнее по памяти: он ссылается на путь к модулю вместо встраивания всего модуля в файл отладки.
- Swift Package Index, купленный Apple в июне, размещает свыше 10 400 пакетов и тесно интегрирован с SwiftPM.
Почему это важно
Swift долгое время воспринимался как язык, привязанный к экосистеме Apple. Появление единой системы сборки по умолчанию, шаг к тому, чтобы Swift конкурировал как самостоятельный кроссплатформенный язык со своим унифицированным набором инструментов, по аналогии с Cargo у Rust или встроенным тулчейном Go, а не оставался набором разрозненных утилит для разных ОС.
Кому это важно
Разработчикам, которые пишут на Swift серверные и кроссплатформенные приложения для Linux и Windows, а не только для iOS и macOS; командам, которым нужен предсказуемый и воспроизводимый процесс сборки на разных операционных системах; специалистам по безопасности и аудиту цепочек поставок, которым теперь проще получить SBOM для каждого Swift-приложения.
Как это применить
Обновиться до Swift 6.4 можно, начав со страницы Install Swift; сам тулчейн версии 6.4 скачивается через утилиту командной строки Swiftly. Для сборки из VS Code нужно установить новое расширение из реестра Open VSX. Команды, которым нужен SBOM для аудита зависимостей, могут использовать встроенный генератор в формате SPDX или CycloneDX, появившийся в рамках предложения SE-0509.
Можно ли доверять
Материал, фактическое описание релиза от The Register, без признаков сатиры или мнения: издание описывает конкретные технические изменения, ссылаясь на формулировки самого релиза Swift 6.4. При этом статья не приводит цифр по ускорению сборки, только качественное описание единого процесса, а точный день выхода релиза указан лишь как «вторник», без календарной даты.
Риски и подводные камни
В источнике нет данных о том, насколько на практике ускорилась или упростилась сборка: заявление о «более быстром процессе сборки» не подкреплено конкретными цифрами. Не указан и год приобретения Apple сервиса Swift Package Index, только месяц (июнь). Командам, использующим другие системы сборки, Bazel, Buck2 или CMake, переход на новый унифицированный подход потребует отдельной оценки миграции.