The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Компания Apple открыла код сборочной системы Swift Build

02.02.2025 10:51

Компания Apple объявила об открытии исходного кода сборочной системы Swift Build, применявшейся в проприетарных интегрированных средах разработки Xcode и Swift Playground. Система оптимизирована для сборки проектов на языках Swift, C и Objective-C, но может применяться и с другими языками. Для пакетного менеджера Swift Package Manager подготовлен экспериментальный модуль ("--build-system swiftbuild"), позволяющий использовать Swift Build в качестве альтернативного движка для сборки пакетов. Код Swift Build написан на языке Swift и открыт под лицензией Apache 2.0. Поддерживается сборка проектов для Linux, macOS, iOS, Android, QNX и Windows.

На основе предоставленных сборочных правил Swift Build формирует план сборки и запускает компоненты сборочного процесса. Проект развивается с оглядкой на обеспечение кросс-платформенной сборки для различных операционных систем и типов устройств. Основное назначение сборочной системы описывается, как преобразование предоставленных пользователем входных данных, таких как описание проекта и исходный код, в результирующие артефакты, такие как библиотеки и приложения.

Система реализована в виде надстройки над набором библиотек llbuild (low-level build), реализующих низкоуровневые примитивы для работы с графом зависимостей, определения формата правил сборки, отслеживания пересобираемых объектов и создания манифестов для инструментария Ninja. Из расширенных возможностей Swift Build отмечается: поддержка интеграции с компилятором Swift для эффективной координации сборка проектов на языке Swift; поддержка сборки различных типов продуктов, включая утилиты командной строки, GUI-приложения и библиотеки; оптимизации сборочного графа для повышения эффективности распараллеливания процессов сборки кода на языках Swift и C.

Основу Swift Build составляет процесс SWBBuildService, который запускается после инициирования сборки клиентом, которым может выступать утилита swbuild, среда разработки Xcode или пакетный менеджер Swift Package Manager. Взаимодействие между сборочным сервисом SWBBuildService и клиентским процессом осуществляется через отправку сериализированных сообщений поверх неименованного потока (pipe). На стороне клиента взаимодействие со сборочной системой осуществляется через API SwiftBuild или через утилиту командной строки swbuild.

Функциональность Swift Build определяет набор фреймворков, таких как:

  • SWBLLBuild - надстройка для доступа к функциональности llbuild;
  • SWBUtil - вспомогательные функции, такие как реализация упорядоченных списков;
  • SWBCSupport - поддержка кода на C и Objective-C;
  • SWBCore - движки для обработки макросов, настроек, модели проекта, спецификаций, платформ;
  • SWBTaskConstruction - логика формирования задач;
  • SWBTaskExecution - организация выполнения сборочных задач;
  • SWBBuildSystem - построение и планирования сборочных операций, управление созданием и выполнением задач.


 
  1. Главная ссылка к новости (https://www.swift.org/blog/the...)
  2. OpenNews: Компания Apple представила язык программирования Swift 6.0
  3. OpenNews: Facebook опубликовал систему сборки Buck2
  4. OpenNews: Проект Сicada развивает систему автоматизации сборок, похожую на GitHub Actions
  5. OpenNews: Apple опубликовал Pkl, язык программирования для определения конфигурации
  6. OpenNews: Apple опубликовал открытую библиотеку гомоморфного шифрования
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62661-apple
Ключевые слова: apple, swift, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (134) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:41, 02/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –28 +/
    Вот кто настоящий друг опенсорса так это эпл. Они не орут на каждом шагу какие они друзья, а просто делают.
     
     
  • 2.41, KKK (?), 17:13, 02/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +13 +/
    Ни разу не друзья, но и не враги. Вся их деструктивная деятельность направлена исключительно а адрес адептов их секты и почти никогда не выливается за пределы, чего не скажешь про Google или IBM - вот самые страшные враги рода людского, в компьютерном поле, разумеется.
     
     
  • 3.55, Минона (ok), 23:18, 02/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Ни разу не друзья, но и не враги. Вся их деструктивная деятельность
    > направлена исключительно а адрес адептов их секты и почти никогда не
    > выливается за пределы, чего не скажешь про Google или IBM -
    > вот самые страшные враги рода людского, в компьютерном поле, разумеется.

    Как ты посмел клеветать на межделмаш?!
    Если бы не они у тебя вообще не было бы ПиСи.

     
     
  • 4.100, Аноним (100), 16:25, 03/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Ну не появился бы PC, в своё время, появились бы другие ПК. Например, на проце 68000. Кстати, та же Sinclair Research готовила к выпуску модель Синклера на нём.
     

  • 1.4, Аноним (4), 12:03, 02/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –6 +/
    Забавный язычёк. Жаль что прибит к яблочкной инфраструктуре на порядке крепче чем C# к Windows
     

     ....большая нить свёрнута, показать (67)

  • 1.5, быдло (?), 12:08, 02/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    теперь нужно, чтобы кто-нибудь сделал бесплатный IDE под винду для разработки софта для айфона...
     
     
  • 2.106, Аноним (105), 16:47, 03/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    VS Code + C# plugin + MAUI.NET - и пиши на айфон и андроид одновременно.
     
     
  • 3.123, нейм (?), 20:06, 03/02/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –2 +/
    > VSCode

    на этом этапе уже фатальная ошибка
    уж лучше виндовый блокнот, чем это. жрет меньше, а функциональность та же

     
     
  • 4.124, Аноним (-), 20:11, 03/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >> VSCode
    > на этом этапе уже фатальная ошибка
    > уж лучше виндовый блокнот, чем это. жрет меньше, а функциональность та же

    Мда... или у тебя блокнот стал IDE или ты VSCode знаешь только по рассказам прдоликов с форумов.
    У меня сейчас VSCode кушает 500мб. А Хкод 1,5 гига.
    Так что с учетом его возможностей вполне норм.
    На рабочей машине будет минимум 16 гектаров оперативки, а скорее 32.


     
  • 3.133, быдло (?), 02:26, 04/02/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Delphi удобней, хотя С# и Delphi создал один и тоже человек - Андерс Хейлсберг
     
     
  • 4.140, Аноним (140), 12:56, 04/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    C# он не создавал, он потом присоединился. Это видно по языку, когда появились Windows Forms 2 (вот эти всякие Items.Add). Потом оно кажется благополучно ушло в deprecated (не следил уже за .net, но понял, что продвигали ему замену).
     
     
  • 5.141, быдло (?), 13:35, 04/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    везде на Википедиях написано шо это он разработал
     

  • 1.7, KKK (?), 12:27, 02/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Зачем, если для разработки под ифраструктуру Apple всё равно требуется mac?
     

     ....большая нить свёрнута, показать (49)

  • 1.18, Аноним (18), 14:32, 02/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Язык быстро развивается, так же как rust. В дистрибутивах он мало где опакечен. Непопулярен в Linux. Технический долг в общем.
     
  • 1.20, Аноним (-), 14:52, 02/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    компилятор языка swift написан на C++
    этим многое сказано...
    надо было на OCaml или на Haskell
     
     
  • 2.94, Аноним (-), 15:19, 03/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > компилятор языка swift написан на C++

    Ну так оба компилятора для сишки ядра написаны на плюсах. Более того, один из них был на сишке, но почему-то его дальше стали писать на плюсах... с чего бы это?

    > этим многое сказано...

    ДА, разумные люди не делают работу дважды.

     
  • 2.99, iLya (?), 16:07, 03/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > компилятор языка swift написан на C++
    > этим многое сказано...

    Что именно "многое" сказано? То, что используется llvm в качестве бэкэнда? И что?

     

  • 1.44, Аноним (44), 17:47, 02/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –1 +/
    Если не умеет в подключение зависимостей, установленных через пакетный менеджер, то бесполезно.
     
     
  • 2.139, нах. (?), 08:50, 04/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Как только пропатчишь свой пакетный тебеджер на поиск и подключение зависимостей в swift build - так сразу ж сумеет. Ну, для тех кого опыт игогошечки с миллионом бессмысленных и никому не нужных пакетов не научил ничему.

     
     
  • 3.145, _ (??), 19:33, 04/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Среди нех есть и осмысленные и нужные всем пакеты, просто вы завидуете, не надо тут голозадось за добродетель выдавать :)

    В Го даже core такой что ... вот к примеру net/http, начиная с 1.22.1 просто 90% всех уеб фрамераков сделал тупо ненужными :-) Есть ещё проггеры которые действительно полезные вещи делают...
    Но с другой стороны - итераторы новые ... ППЦ 8-) Всё как у всех живых - что то получается прямо отлично, что то не очень, что то просто ППЦ :)

    А про Swift в Linux ... сказать хорошего - дык нечего. Тогда выпьем молча. И не чокаясь :)

     
     
  • 4.146, нах. (?), 20:31, 04/02/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Среди нех есть и осмысленные и нужные всем пакеты

    наверняка какие-то 4 из этих двухста кому-то нужны.

    > просто вы завидуете,

    нет, я надысь нечаянно build-deps от какой-то (опакеченой) игого-поделки поставил. Причем уже забыл где, что за поделка, и зачем ее ставил - но вот ЭТО вот произвело неизгладимое впечатление.

    > В Го даже core такой что ... вот к примеру net/http, начиная

    ну в баше тоже можно вызвать curl, логично что его замена для девляпсов умеет в http.

    > Есть ещё проггеры которые действительно полезные вещи делают...

    (глядя в окошко с xray - да, определенно, есть. и подвендой, что немаловажно)

    > А про Swift в Linux ... сказать хорошего - дык нечего. Тогда

    не, ну вдруг ты знаешь swift, и не знаешь игого, а у тебя - вот, линукс... хотя конечно, лучше б уж - триппер.
    Это хоть вылечить можно.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру