Цифровое искусство NFT Стартапы и венчурный капитал

Buck2: Новый уровень эффективности сборок с открытой системой Meta

Цифровое искусство NFT Стартапы и венчурный капитал
Meta

Обзор Buck2 — инновационной системы сборки от Meta, написанной на Rust и ориентированной на повышение скорости и производительности разработчиков. Подробности архитектуры, ключевые особенности и преимущества по сравнению с предыдущими системами сборки.

Meta, одна из ведущих технологических компаний мира, представила Buck2 — новую открытую систему сборки масштаба предприятия, которая стала значительным шагом вперёд по сравнению с её предшественницей Buck1. Buck2 разработана с нуля, написана на языке Rust и ориентирована на значительное ускорение процессов сборки, повышение параллелизма и упрощение архитектуры. Более тысячи инженеров уже используют Buck2 внутри компании, осуществляя миллионы сборок ежедневно, и результаты впечатляют — скорость сборки выросла вдвое по сравнению с Buck1. Основная задача любой системы сборки — максимизировать продуктивность разработчиков, минимизируя время, которое они тратят на ожидание завершения компиляции и тестирования. В случае Meta, где огромные коды и проекты требуют максимальной оптимизации, Buck2 отвечает именно этим требованиям.

Эта система полностью переработана с целью устранить узкие места и повысить общую эффективность. Архитектура Buck2 отличается строгим разделением между ядром системы и языковыми правилами. Все правила, определяющие процессы сборки конкретных языков программирования, реализованы на Starlark, что повышает гибкость и упрощает их изменение и сопровождение. Само ядро, отвечающее за управление зависимостями и выполнением задач, написано на Rust для достижения максимальной производительности и безопасности. Такой подход ярко контрастирует с Buck1, где правила плотно интегрированы в ядро, а также с Bazel, где некоторые языковые правила жестко зашиты в систему.

Система сборки построена вокруг единого инкрементального графа зависимостей. Это позволяет избежать множественных фаз обработки, характерных для предыдущих систем, благодаря чему уменьшается вероятность ошибок и повышается параллелизм. Граф строится и обновляется при изменении исходных файлов или правил, и все вычисления зависят от ключей и значений в этом графе, что позволяет быстро пересобирать только те части проекта, которые действительно были затронуты изменениями. Особое внимание в Buck2 уделено API правил. Оно сочетает в себе возможности для высокой производительности и выразительности, поддерживая динамические зависимости и расширенные функции.

 

Это позволяет не только эффективно создавать стандартные правила, такие как сборка бинарников и библиотек, но и строить сложные последовательности задач без ущерба для скорости и надежности. Уникальная особенность — введение «транситивных множеств» (tsets), которые оптимизируют работу с зависимостями при построении сложных графов, например, в ситуациях со связыванием C++ библиотек, снижая потребление памяти и ускоряя вычисления. Buck2 тесно интегрирована с такими технологиями, как удалённое исполнение и виртуальные файловые системы. Возможности удалённого исполнения позволяют распределять выполнение сборочных задач по удалённым серверам, эффективно обрабатывая интенсивные задачи и ускоряя процесс сборки в масштабах больших репозиториев. Интеграция с виртуальными файловыми системами, например, Sapling, позволяет экономить место на диске, загружая только необходимые файлы по мере необходимости и при этом не теряя в скорости доступа.

 

Пользовательский опыт при работе с Buck2 значительно улучшен благодаря новой консоли на базе библиотеки Superconsole. Она предоставляет подробный и интуитивно понятный интерфейс вывода статуса сборки, полезный для мгновенного понимания текущего состояния процесса и устранения возможных проблем. Кроме того, в Buck2 реализован постоянный демон, поддерживающий единый граф зависимости в памяти, который уменьшает избыточную работу по пересозданию различных графов при каждом запуске команды, что ускоряет повторные сборки. Для разработчиков правил переход на Buck2 означает возможность реализовывать логики сборки гибко и безопасно. Например, сложные внутренние зависимости в проектах на OCaml, которые нелегко выразить традиционными способами, теперь динамически вычисляются с помощью новой примитивной функции dynamic_output, которая запускает внешние команды, считывает результаты и автоматически корректирует зависимости.

 

Buck2 создана с учетом опыта и лучших практик, накопленных в прошлом десятилетии многими системами сборки, включая Bazel, Adapton и Shake. Однако она существенно развивается в сторону увеличения скорости, параллелизма и более чистого и модульного дизайна. Открытый доступ к коду на GitHub, а также предоставление отдельных компонентов как библиотек, позволяет сообществу использовать и развивать отдельные части системы, не привязываясь к Buck2 целиком. Meta ориентируется на широкое применение Buck2 в среде многоплатформенных проектов среднего и большого масштаба. Упрощение архитектуры и прирост производительности дают инженерам возможность быстрее вносить изменения и реализовывать новые функции, снижая время ожидания и повышая общую эффективность командной разработки.

Автоматическая торговля на криптовалютных биржах

Далее
Setting Up Puppy Linux with Ventoy
Суббота, 22 Ноябрь 2025 Настройка Puppy Linux с помощью Ventoy: Полное руководство для мобильных пользователей

Подробное руководство по установке и запуску Puppy Linux с использованием Ventoy, позволяющее создать портативную, гибкую и удобную систему для работы в любом месте с сохранением всех настроек и данных.

Decentralized IMDB
Суббота, 22 Ноябрь 2025 Децентрализованный IMDb: новая эра в оценке и обсуждении фильмов

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

Apple History - specs for every Apple computer, established 1996
Суббота, 22 Ноябрь 2025 История Apple и характеристики компьютеров с 1996 года: Полный обзор эволюции техники

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

At $250M, top AI salaries dwarf the Manhattan Project and the Space Race
Суббота, 22 Ноябрь 2025 Невероятные зарплаты в сфере ИИ: как сотни миллионов долларов превзошли гонорары Манхэттенского проекта и Космической гонки

Современный рынок труда для исследователей в области искусственного интеллекта демонстрирует беспрецедентные размеры компенсаций, существенно превосходящие исторические зарплаты в крупнейших научных проектах XX века. Раскрывается динамика зарплатного рынка, влияние на технологический прогресс и экономику будущего.

Break the quadratic wall of Transformer attention: WERSA, paper+code open source
Суббота, 22 Ноябрь 2025 Прорыв в обработке длинных последовательностей: WERSA – эффективное внимание для трансформеров с линейной сложностью

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

Berkshire Stock Sees Weird Trading. The A Shares Pop While B Shares Dip
Суббота, 22 Ноябрь 2025 Необычная динамика акций Berkshire Hathaway: рост A-класса и падение B-класса

Анализ нестандартного поведения акций Berkshire Hathaway, при котором акции класса A растут, а класса B демонстрируют снижение. Исследование возможных причин и влияния на инвесторов и рынок.

Apple projects tariff costs will hit $1.1B next quarter
Суббота, 22 Ноябрь 2025 Apple прогнозирует рост затрат на тарифы до $1,1 млрд в следующем квартале: что это значит для компании и рынка

Apple сообщает о значительном увеличении расходов из-за тарифов, которые могут достигнуть $1,1 миллиарда в ближайшем квартале. Анализ причин, влияния тарифов на бизнес и стратегий компании по адаптации к новым экономическим условиям.