The OpenNET Project / Index page

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

Facebook опубликовал систему сборки Buck2

07.04.2023 12:49

Facebook* представил новую сборочную систему Buck2, ориентированную на организацию сборки проектов из очень крупных репозиториев, включающих код на разных языках программирования. Ключевыми отличиями новой реализации от ранее применявшейся в Facebook системы Buck является использование языка Rust вместо Java и существенное увеличение эффективности и производительности сборочного процесса (во внутренних тестах в той же инфраструктуре Buck2 выполняет сборочные задания быстрее Buck в два раза). Код распространяется под лицензией Apache 2.0.

Система не привязана к сборке кода на конкретных языках и из коробки поддерживает сборку проектов, написанных на языках C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell и OCaml, используемых в Facebook. Для оформления дополнений, сборочных сценариев и правил применяется язык Starlark, основанный на Python (как в Bazel). Starlark позволяет расширять возможности сборочной системы и абстрагироваться от конкретных языков, применяемых в собираемых проектах.

Высокая производительнось достигается за счёт кэширования результатов, распараллелирования работ и поддержки удалённого выполнения заданий (Remote Build Execution). В сборочном окружении применяется концепция "герметичности" - собираемый код отрезан от внешнего мира, в процессе сборки извне ничего не загружается, а повторные выполнения работ на разных системах приводят к одному и тому же результату (повторяемые сборки, например, результат сборки проекта на машине разработчика будет полностью совпадать со сборкой на сервере непрерывной интеграции). Ситуация отсутствия зависимости воспринимается в Buck2 как ошибка.

Ключевые особенности Buck2:

  • Правила поддержки языков программирования и ядро сборочной системы полностью разделены. Для правил используется язык Starlark, а инструментарий и реализация Starlark написаны на Rust.
  • В сборочной системе применяется единый инкрементальный граф зависимостей (без разделения на стадии), что позволяет повысить глубину распараллеливания работ по сравнению с Buck и Bazel и избежать многих типов ошибок.
  • Опубликованный на GitHub код Buck2 и правила поддержки языков программирования почти идентичны со внутренней версией, применяемой в инфраструктуре Facebook (отличия только в привязке к редакциям компиляторов и сборочным серверам, применяемым в Facebook).
  • Сборочная система спроектирована с оглядкой на интеграцию с системами удалённого выполнения заданий, позволяющими запускать работы на удалённых серверах. API для удалённого выполнения совместим с Bazel и протестирован на совместимость с Buildbarn и EngFlow.
  • Обеспечена интеграция с виртуальными файловыми системами, в которых представлено содержимое всего репозитория, но фактически работа осуществляется с актуальным локальным срезом части репозитория (разработчик видит весь репозиторий, но из репозитория извлекаются только востребованные файлы, к которым выполняется обращение). Поддерживаются VFS на базе EdenFS и Git LFS, которые используются в Sapling.


  1. Главная ссылка к новости (https://engineering.fb.com/202...)
  2. OpenNews: Выпуск сборочной системы Meson 1.0
  3. OpenNews: Проект AlmaLinux представил новую сборочную систему ALBS
  4. OpenNews: Релиз goredo 1.0.0, реализации системы сборки redo, предложенной DJB
  5. OpenNews: Android переходит на сборочную систему Bazel
  6. OpenNews: Сотрудник Red Hat представил сборочную систему Goals
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/58933-buck2
Ключевые слова: buck2, buck, facebook, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (114) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, InuYasha (??), 13:22, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +17 +/
    >> Ключевыми отличиями ... является использование языка Rust

    *сердитое лицо*
    >> вместо Java

    Ну ладно... :-|

    Ох, я уже знаю человека у которого зачешется это применить...

     
     
  • 2.29, Аноним (29), 16:43, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Этим человеком был InuYasha?
     
  • 2.70, Аноним (-), 04:43, 08/04/2023 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.106, Илья (??), 18:26, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я бы попробовал, потому что на расте.

    Хотя, для сборочной системы это не критично.

    Пусть она хоть на каждый чих в панику сваливается

     

  • 1.3, Аноним (3), 13:27, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    >использование языка Rust вместо Java

    Жабогадюкинг в действии.

    >Для правил используется язык Starlark

    К жабе и гадюке присоединяется бычий цепень. Говорю как человек, который патчил этот самый Starlark, чтобы он хотя бы не крашился на openbsd по-умолчанию.

     
     
  • 2.4, Аноним (4), 13:29, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Самое забавное что этот самый фейсбук проводит массовые сокращения, но при это занимает оставшихся людей откровенной фигнёй.  
     
     
  • 3.20, Самый умный из вас (?), 15:11, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Какой фигней?
     
     
  • 4.62, YetAnotherOnanym (ok), 22:11, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Откровенной же.
     
  • 2.6, Мемтейнер (?), 13:34, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > который патчил этот самый Starlark

    а какую из его реализаций ?

     
     
  • 3.19, Аноним (3), 15:08, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    google/starlark-go

    Там проблема была, как обычно, в оверкоммите. Настоящий язык программирования, естественно, первым делом должен при старте выделить 2^32 памяти, иначе что это за язык какой-то жалкий и смешной.

     
     
  • 4.34, Аноним (34), 17:07, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У ФБ своя реализация на Rust: https://github.com/facebookexperimental/starlark-rust
     
     
  • 5.71, Аноним (3), 05:11, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какая разница, где именно nih синдром?
     
  • 4.57, An2 (?), 21:02, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А в плюсах? Firefox: куча процессов по 2+ GB VIRT, несколько по 20 GB, есть ещё даже 48 GB! И это при всего лишь 4 GB реальной оперативки.
     
     
  • 5.72, Аноним (3), 05:13, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не в плюсах же, а в Firefox. Никто не запрещает стрелять себе в ногу. И даже так, Firefox работает под openbsd без моего (анонимного) участия.
     
  • 2.30, Аноним (29), 16:44, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я вообще не понимаю, нафига какой-то starlark с несуществующей экосистемой, если есть python с существующей? Особо тяжёлая форма NIH-синдрома видимо.
     
     
  • 3.49, 11 (?), 18:59, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    еще и потхон тащить в зависимостях со всеми его кактусами-модулями.

    Жрите сами.

    Тока сегодня собирал на маке redis-json. Официальная версия требует не просто потхон, но и brew и 10 раз проверит чо он там есть... Хотя если закомметировать то все работает и так <3 facepalm here>

     
     
  • 4.75, Бывалый смузихлёб (?), 06:01, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но ведь жабу в проект они тащили )

    На днях хотел побаловаться с webrtc - вот там говнища целая куча тянется вплоть до хромиума со всеми пожитками как одна из зависимостей
    В общем где-то на 15 Гб
    А в итоге - вылет с ошибкой, ведь сборка для андройда возможна только из под линукса

     
     
  • 5.78, Аноним (3), 07:45, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Там не совсем тривиально собирать, но в репе jabber-клиента Conversations есть интрукция по сборке .aar файла. Но да, нужно примерно 20 гигабайт хз-чего. Но существует ещё реализация WebRTC в gstreamer. Хотя тоже сорта коричневой субстанции, но там, вроде, и сам протокол непростой. Audio, dtls, stun+turn, ICE. Там немало трюков.


     
     
  • 6.88, InuYasha (??), 11:17, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но да, нужно примерно 20 гигабайт хз-чего.

    Мне счас мозг вынесло... (x_x) 20 гигов скачать для сборки проги в 10МБ под андроид?

     
     
  • 7.95, Бывалый смузихлёб (?), 12:16, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    С Yocto не менее весело - 40 гигов и сутки сборки-скачивания ради образа линукса в 30 Мб
     
  • 7.104, Аноним (3), 17:01, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чему там выноситься, дружище? Ты про Google Stadia слышал? Это 300 мегабайт в минуту потребления трафика только. 20 гигов -- это жалкий час игры, хотя геймеры шпилят сутками зачастую.

    Для гугла 20 гигабайт это даже не достойно внимания. 200 секунд качать на гигабитном канале.

     
     
  • 8.130, InuYasha (??), 19:05, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не слышал, но уже стрёмно, спасибо ... текст свёрнут, показать
     
  • 6.100, Бывалый смузихлёб (?), 13:48, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В том и дело что это самому и вручную реализовывать вообще не вариант - это не к... большой текст свёрнут, показать
     
     
  • 7.101, Аноним (101), 15:02, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я чувствую твою боль, бро. С 2006 по 2021 использовал Linux From Scratch в качестве десктопа, и после 2010 года пошёл тренд делать монстров, которых из исходников можно собрать, только если компилировать руками, а не компилятором. У авторов оно, по-видимому, собирается только на машине разработчика, и в прод отправляется получившийся бинарь, вместо сборки релиза на отдельном сервере. Пропади машина и не найдись бэкапов - проект застопорится на пару лет из-за необходимости заново подобрать окружение, на котором оно соберётся, а то и вовсе помрёт.

    Справедливости ради, проприетарь не лучше. А если ещё и поддержки нет, то приходится вообще методом тыка и гуглинга на стеке решать, и то не всегда удаётся.

     
  • 2.41, Аноним (41), 18:11, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Starlark

    Мне кажется попытка слепить из Python "безопасный" кастрированный вариант изначально обречена на провал. Уже сколько раз пытались использовать Python как встроенный язык, и каждый раз это оборачивалось провалом. Python не приручаем, он не для того создан.

     
     
  • 3.80, maximnik0 (?), 08:22, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >кастрированный вариант изначально обречена на провал.

    А вы знаете что игра Х3 (космический шутер) использует подмножество питона для внутренней механики?  Правда продолжение вышло из за этого тормознутым,там в х4 можно было строить промышленные кластера,симулятия которых оказалась на пределе общета тогдашних компьютеров .Так что не все одназначно.

     
     
  • 4.91, Аноним (91), 12:06, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можешь примерно рассказать, почему нельзя было использовать язык получше, кроме очевидного синдрома утёнка разрабов?
     
     
  • 5.109, maximnik0 (?), 21:48, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Можешь примерно рассказать, почему нельзя было использовать язык получше, кроме очевидного
    > синдрома утёнка разрабов?

    Да я откуда знаю что у разработчиков в голове творилось.Но полагаю что Яву из за жора памяти отвергли,а встроенное подмножесттво (пико и нано) стоило слишком дорого.NET задолбала на тот момент неопределенностью - новая версия и что нибудь поломано и народ по полгода ждет когда починят,неопределенность на тот момент с графическим движком (за 5 лет 3 библиотеки выпустили).Полагаю что с питоном знакомо много людей и из за этого и решили использовать встроенное подмножество,благо что  графику решили без наворотов реализовывать.


     
     
  • 6.127, Д (?), 09:49, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Lua же?
     
     
  • 7.131, Аноним (131), 19:07, 13/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Или Squirell, у него синтаксис привычнее. Хотя ничуть не умаляю достоинства Луа.
     
  • 2.43, Аноним (41), 18:18, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > использование языка Rust вместо Java
    > Жабогадюкинг в действии.

    И всё равно любой из этих гадов в тысячу раз лучше простыней на shell script/Makefile.

     
     
  • 3.92, Аноним (91), 12:07, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Потому что ты не выучил ни мейк, ни шелл, но зато глубоко познакомился и с жабой, и с гадюкой?
     
     
  • 4.103, Срыватель покровов (?), 15:49, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Баш по скорости ещё хуже Питона, предлагать питон заменить на баш - надо быть совсем чокнутым.
     
     
  • 5.132, Аноним (131), 19:08, 13/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пила плохо приспособлена, чтобы ей строгать, ага.
     

  • 1.5, Анонус (?), 13:33, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Ну хоть какая-то польза от Фейкбука. Но лучше бы выделили проект в отдельный бизнес или фонд.
     
     
  • 2.93, Аноним (91), 12:08, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Но лучше бы выделили проект в отдельный бизнес или фонд.

    Тогда сразу было бы понятно по сливу фонда, что проект никому не нужен.

     
     
  • 3.120, Прохожий (??), 21:14, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Среди опеннетных "экспертов" - допускаю.
     

  • 1.7, Серб (ok), 13:37, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эта штука может сделать ненужными cmake, cargo и т.д. или это надстройка, которая их использует?
     
     
  • 2.8, Анонус (?), 13:42, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Cargo же не только про сборку, а еще и пакетный менеджер. А так да, можно заменить Cmake, а можно встроить его как еще один язык.
     
     
  • 3.11, Серб (ok), 14:08, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а еще и пакетный менеджер

    Немного не догоняю: каково может быть назначение пакетного менеджера конкретного языка в большом проекте на множестве разных языков?

     

  • 1.9, xsignal (ok), 13:48, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Если эта система сборки такая же кривая и тормозная, как интерфейс ФБ, то спасибо, не надо...
     
     
  • 2.121, Прохожий (??), 21:15, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Такое ощущение, что тебе кто-то навязывает эту систему.
     

  • 1.10, pashev.ru (?), 13:55, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Что только ни делают, лишь бы не использовать Nix.
     
     
  • 2.16, Аноним (4), 14:32, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Nix делает всё что бы не делать платную поддержку.
     
  • 2.21, Самый умный из вас (?), 15:13, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Когда сделают nix без убого nix, сразу перейду)
     
     
  • 3.25, Самый Лучший Гусь (?), 16:05, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Nix самая лучьшая часть nix.
     
     
  • 4.53, Самый умный из вас (?), 19:21, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно его дебажить, прям наслаждаешься
     
  • 3.44, Аноним (44), 18:27, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Уже сделали. GUIX называется вроде.
     
     
  • 4.52, Самый умный из вас (?), 19:20, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ладно, поправка: нормальный императивный nix
     
  • 2.31, Аноним (29), 16:46, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ((lisp ((любят ) только))) ((фанатики ) lisp))
     
     
  • 3.124, 1 (??), 15:47, 10/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И ещё любители скобочек.
    (у тебя операторы попутаны)
     

  • 1.12, Golangdev (?), 14:12, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > из коробки поддерживает сборку проектов, написанных на языках C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell и OCaml, используемых в Facebook

    А где JavaScript, TypeScript ? Они, можно подумать, не используются ни в запрещённом Facebook, нигде.

     
     
  • 2.54, Аноним (34), 19:35, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Фронтенд - это отдельная история, там всё не как у людей. Там не столько компиляторы в привычном понимании слова, сколько транспайлеры и бандлеры.
     

  • 1.17, Иваня (?), 15:02, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Надо учить Rust. Не зря говорят: не можешь победить - возглавь.
     
     
  • 2.18, Аноним (-), 15:04, 07/04/2023 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     
  • 2.22, Ann (??), 15:45, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Лучше учи Си.

    +

     
     
  • 3.23, Tron is Whistling (?), 15:49, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ++
     
  • 3.39, OpenEcho (?), 18:05, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >>Лучше учи Си.

    Си Цзиньпин

     
     
  • 4.50, 11 (?), 19:02, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Калашников
     
  • 4.51, Си Цзинпин (?), 19:12, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это вас поучат в воспитательных лагерях 9600 бод любить.

    С уважением, Пух.

     
  • 2.37, Golangdev (?), 17:46, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен
     

  • 1.28, Аноним (28), 16:23, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ох как же любо рвёт икспердов от рессентимента. Это ж самая настоящая ревность =)
     
  • 1.32, Аноним (32), 17:02, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сразу нафиг Ещё одни неудачники повторяют ошибки всех невзлетевших систем сборо... большой текст свёрнут, показать
     
     
  • 2.33, Аноним (32), 17:06, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вот перечисленный в примерах говнокод можно и на питоне вручную наговнокодить, и никакой системы сборки на расте для этого не нужно, только уже установленный в системе питон, библиотека sh для удобного запуска консольных утилит и библиотека click для удобного парсинга аргументов.
     
  • 2.48, Аноним (48), 18:56, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Предлагаю вам тут найти запуск gcc:

    cxx_binary(
        name = "main",
        srcs = ["main.cpp"],
        link_style = "static",
    )

     
  • 2.76, Аноним (76), 06:29, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У фейсбука не то что все прибито к конкретному компилятору, у них вообще свои компиляторы патченые.

    Смысл этой штуки в максимальной параллелизации сборки кучи бинарей из большой монорепы, с построением графа зависимостей и пересборкой только необходимого. Большинству людей это просто не надо. Выложили в опенсорс и выложили, молодцы, чо

     
     
  • 3.107, ivan_erohin (?), 18:38, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >  максимальной параллелизации сборки кучи бинарей из большой монорепы

    где-то я уже подобное видел. и не один раз.
    называется "вместо оптимизации размазать нагрузку".
    например:
    1) если веб-сайт не справляется с нагрузкой - поставить два или три сайта за реверс прокси с раунд робином.
    2) если браузер типа хром не справляется с нагрузкой - породить кучу процессов, чтобы заняли все ядра CPU, а там пусть планировщик ОС разбирается кого куда.
    3) ... многие вспомнят еще примеры

    внимание вопрос: можно ли такой подход считать антипаттерном ?

     
     
  • 4.111, n00by (ok), 06:58, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > 2) если браузер типа хром не справляется с нагрузкой - породить кучу
    > процессов, чтобы заняли все ядра CPU, а там пусть планировщик ОС

    Это сделано для изоляции адресных пространств.

     
     
  • 5.112, ivan_erohin (?), 08:53, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    CVE-2021-21194 - очень помогла та изоляция, не правда ли ?
    а сколько еще таких CVE не найдено (не исправлено, не опубликовано) ?

    поэтому - отказать, это сделано для "динамичного веб-серфинга по современным сайтам",
    как тут писал один молодой но резкий девляпс.

     
     
  • 6.113, n00by (ok), 09:39, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > CVE-2021-21194 - очень помогла та изоляция, не правда ли ?

    Даже не собираюсь смотреть, что там. Попробуйте как-то тоньше подменять тезис.

    > а сколько еще таких CVE не найдено (не исправлено, не опубликовано) ?

    И что?

     
     
  • 7.115, ivan_erohin (?), 18:08, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже не собираюсь смотреть, что там

    потому что настоящий религиозник не должен читать
    еретические тексты, а тем более их обсуждать.

    > Попробуйте как-то тоньше подменять тезис.

    тезисы все те же:

    1) ''изоляция адресных пространств'' - пздж архитекторов хрома,
    т.к. против реалных дыр не помогает.

    2) следовательно, настоящая цель у них была другая.

    3) какия именно другая ? см выше по треду.

     
     
  • 8.122, n00by (ok), 06:27, 10/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Читать кого Вы вообще кто Есть свои наработки по теме, или только читаете О... большой текст свёрнут, показать
     
  • 2.89, InuYasha (??), 11:25, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так есть же какая-то новая хрень на питоне для сборки. Не помню названия - мне недавно только показывали. Она то-ли проекты генерит, то-ли над симейком рулит... забыл уже.
     
     
  • 3.110, Аноним (110), 01:00, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не meson случаем?
     

  • 1.35, Аноним (35), 17:17, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ≥ использование языка Rust вместо Java и существенное увеличение эффективности и производительности сборочного процесса (во внутренних тестах в той же инфраструктуре Buck2 выполняет сборочные задания быстрее Buck в два раза).


    Всего лишь в два?
    Хвалят его, хвалят.. а в итоге....

     
     
  • 2.36, Аноним (36), 17:29, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зато безопастно
     
     
  • 3.45, Аноним (45), 18:28, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Протекающий, ненадёжный не верефицируемый ржавый это безопасно?

    Посмотри на SPARK как пример безопасного языка.

     
     
  • 4.86, Аноним (86), 10:04, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Раст — небезопасный язык. Все это знают уже давно.  
     
     
  • 5.125, 1 (??), 16:23, 10/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Но это тайна !!!
    Не рассказывай никому !
     

  • 1.40, Аноним (40), 18:11, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем оно нужно, если придумали xtask, идеи которого можно использовать в любом языке
    https://github.com/matklad/cargo-xtask
     
  • 1.46, Аноним (46), 18:32, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > В сборочном окружении применяется концепция "гермитичности" - собираемый код отрезан от внешнего мира, в процессе сборки извне ничего не загружается, а повторные выполнения работ на разных системах приводят к одному и тому же результату

    Этим стоит похвастатся.

    Как человек добавивший воспроизводимость зборок в Gentoo утверждаю, что воспроизводимость в практичном применении снижает безопасность. Речь о рандомизации многих структур во время сборки для безопасности.

     
     
  • 2.55, Аноним (34), 19:38, 07/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе, одно другому не мешает. Вряд ли у вас там рандомизация основана на естественном источнике энтропии, скорее всего, какой-нибудь PRNG. А значит, воспроизводимости можно добиться, используя тот же seed.
     
     
  • 3.73, Аноним (3), 05:20, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Аноним взял и отменил всю прикладную криптографию современности. Сам, видимо, имеет доступ (и не делится) к неограниченному квантовому источнику случайности.

     
     
  • 4.82, Sw00p aka Jerom (?), 08:46, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >имеет доступ

    Курейт продает ведь :)

     
  • 3.77, Аноним (77), 06:43, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Еще раз, воспроизводимость сборок снижает безопасность сборки так как требует от... большой текст свёрнут, показать
     
     
  • 4.116, пох. (?), 18:18, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > /dev/*random в привельных дистрах невопроизводим.

    Учись, джун!

    rm -f /dev/*random
    echo '1234567890abcdef' > /dev/urandom
    ln /dev/urandom /dev/random

    главное - так после себя и оставить.

     
  • 2.83, Sw00p aka Jerom (?), 08:49, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >практичном применении снижает безопасность.

    Эта ваша рандомизация - обскюрити!

     

  • 1.56, VoiD (?), 20:00, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Осталось ещё только понять, кто из людей, проживающих за пределами Сан-Диего, пользуется пейсбуком в 2023 году.
     
     
  • 2.117, пох. (?), 18:20, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    дружище, не хотел бы тебя огорчать, но число мест где не забанен фейсбук существенно шире твоего Сан-Диего.

    А что там на болотах - в общем-то уже всем давно все равно.
    Там скоро вообще очереди к перфораторам будут... хотя не, не будут, перфоратор поди гдрский был, не мог Союз сам сложную механику выпускать.

     

  • 1.58, Аноним (58), 21:04, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    в последнее время Facebook какой-то щедрый
     
     
  • 2.118, пох. (?), 18:25, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    это называется утилизация отходов.

    Мы еще от прошлой их щедрости не отошли, когда они собирались всех удивить своим хрустоаналогом меркуриал, но удивили чем-то что даже не компилируется - и не может в принципе.
    Ручная сборка непосредственно на компьютере единственного разработчика - так у них принято.

     
     
  • 3.128, Аноним (128), 13:04, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот теперь они зарелизили систему сборки и патченный Меркуриал получится собрать.
     
     
  • 4.129, пох. (?), 15:03, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ну как получится - пришли открытку. А пока предположу что ты не соберешь этой системой сборки даже саму систему сборки.
     

  • 1.60, Rock (?), 21:20, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Досадно, что в двадцать первом веке люди все еще изобретают сборочные системы. Видимо, задача, действительно, неимоверно сложная. Также удивительно, но я все еще с интересом и надеждой читаю подобные сообщения.
     
     
  • 2.119, пох. (?), 18:27, 09/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    задача заставить фуллщмякдевелопера выучить что-то помимо жабоскрипта (или хруста, или на чем единственном-неповторимом он фулдей шмякает) - действительно нерешаемая.

    а мэйк или тем более основанные на нем системы - это очень много букв а у него спринт не может ждать.

    Поэтому рожается очередной урод на том единственном что он собственно умеет.

     
  • 2.123, Аноним (-), 15:18, 10/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Досадно будет, когда люди прекратят изобретать велосипеды, потому что к этому мо... большой текст свёрнут, показать
     

  • 1.61, ИмяХ (?), 21:51, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >>Ситуация отсутствия зависимости воспринимается в Buck2 как ошибка.

    От чего нужно быть зависимым, чтобы на этом собирать?

     
  • 1.63, Вы забыли заполнить поле Name (?), 22:28, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну и зоопарк
     
  • 1.65, Ivan_83 (ok), 23:23, 07/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Система сборки которая требует наличия rust чтобы самой собратся - не нужна.
    Даже CMake сливает Meson потому что у CMake зависимостей больше и среди них Meson.

    Что до типа быстроты - фигня.
    99,9% времени сборочная система ждёт когда компиляторы отработают.

     
     
  • 2.66, Аноним (66), 00:08, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Считать граф сборки в огромной монорепе, сравнивать два графа в разных ветках и принимать решения, что за чем собирать, нет ли циклов, какие ресурсы задействовать и что брать из кэша - вполне себе нагрузочка. Это занимает время.
     
     
  • 3.74, Аноним (3), 05:22, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в вашей монорепе. Странная, дурацкая идея.
     

  • 1.67, Kotlin твой любимый язык (?), 02:55, 08/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Gradle умеет это из коробки и можно писать билдскрипты на котлине и груви со всеми плюшками от использования IDE, зачем было городить новый скриптовый язык не понятно.
    Очередная либа со своим очередным dsl с плохой поддержкой IDE.
    Rust только недавно стали хорошо поддерживать, вот его бы и использовали, ну или использовали gradle. Так может он ещё лучше бы стал, чем сейчас.
    Например часть его кода переписали бы на Rust, если уж им так этого хотелось.

     
     
  • 2.96, Аноним (91), 12:16, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ide не нужна
     

  • 1.68, Аноним (68), 03:05, 08/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Отказались от собора в пользу базара? Получайте вавилонскую башню!
     
     
  • 2.97, Аноним (91), 12:18, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так это и есть апофеоз собора, собор городит чудище на питоне, жс и расте, получая очередного сизифа, а базар просто использует мейк.
     

  • 1.87, Аноним (87), 10:16, 08/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Компилируемый язык в два раза быстрее интепретируемого. Вот это новость.
     
     
  • 2.98, Аноним (91), 12:20, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Можно было тогда компилятор гнумейка запилить и AOT в Guile и дело с концом.
     

  • 1.90, Аноним (90), 12:04, 08/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Гениальное решение:

    * требует 20GB диска для сборки - пробовал на железке собрать с 2Гб ну там все перегрелось и отключилось - непригодно;
    * требует ночного диалекта "nightly-2023-01-24" и в случае обновления версий зависимостей сборка выдает несовместимость (если забросят сейчас, то проекту кранты)
    * язык выдуман из пальца и не совместим ни с CMake ни с meson (очередная трата корпоративного время других компаний)

    В целом польза в инвестиции в инструменты разработки конечно полезное дело, но полученный результат пока напоминает какое-то развлечение.

     
     
  • 2.94, Аноним (90), 12:11, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Теперь про пример "Hello, world!" берем создаем файл BUCK кажется этого достаточно в аналогичном meson, но оказалось нужен ".buckconfig", а потом еще оказалось нужно описать в "toolchains" используемые инструменты и это не конец...

    При отсутствии этих файлов операция сборки кстати проходит успешно (BUILD SUCCESS), но не создает никаких результатов работы, но не очень понятно как это интегрировать с CI/CD системы.


     
  • 2.102, Самый умный из вас (?), 15:12, 08/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почитай про базел и старларк, в каких компаниях они используются, и сразу раздуплишь, из какого пальца они сосут
     

  • 1.105, погроммист (?), 17:14, 08/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    То, что выпилили Java конечно плюс. Но Bazel, в отличие от Buck, уже набрал кое-какую популярность и интеграцию в официальные репозитории популярных библиотек. Так что без совместимости с ним не нужно.
     
  • 1.114, Аноним (114), 12:51, 09/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    От плюсов стоит отказаться хотя бы ради того, чтобы не тащить зоопарк билд-систем. Специальные cкриптовые языки придумывают, которые нужны исключительно чтобы программу собрать! Наверно еще чуть-чуть и начнут в эти языки завозить статическую типизацию, сделают их компилируемыми и создадут еще один скриптовой язык для их сборки.
     
     
  • 2.126, Аноним (126), 18:35, 10/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    От жизни на земле стоит отказаться, так как существует много видов животных и ра... большой текст свёрнут, показать
     
  • 2.133, Аноним (131), 19:18, 13/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Какая-то смесь несвязанных фактов и фантазий.
     

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



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

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