开源构建系统Buck2发布

news2024/11/16 19:06:33
看来最近 Meta 的工程师是一点都没有闲着,前两天刚开源 AI 图像分割模型,这不就又发布了名为 Buck2 的开源构建系统。

Buck2 是一个已经在 Meta 内部使用了一段时间的大型构建系统,目前 Meta 有数千名开发人员正在使用该构建系统,每天执行数百万次的构建。在 Meta 的内部测试中,Buck2 完成构建的速度是 Buck1 的 2 倍。

虽然 Buck2 跟 Buck1 使用了相同的名称,也是 Buck1 构建系统的继任者,但前者并不是后者简单的升级版,Buck2 用 Rust 完全重写(Buck1 用的 Java),目标是使构建速度更快、更有效。

正因如此,Buck2 有一个单独的 GitHub 仓库和单独的官方网站,为的就是跟 Buck1 进行区分。

我们自己的内部分析表明,当 Buck2 执行构建时,工程师能够生成更多有意义的代码,我们希望更广泛的行业也能从中受益。

Buck2 的设计基于以下原则:

  • 完全分离了核心规则和特定于语言的规则,将语言规则从核心中分离出来意味着规则更容易改变和理解。Buck2 的核心是用 Rust 编写的,它的语言规则(比如如何构建 C++)是用 Starlark 编写的。这种分离与 Buck1(所有规则都写在核心中)和 Bazel(C++/Java 写在核心中)形成对比。
  • 构建系统消除了许多类型的错误并增加了并行性。
  • 规则 API 被设计为包含先进的性能特征,以及动态依赖特征。
  • 开源版本与 Meta 的内部版本几乎相同,唯一替换掉的部分是工具链(指向 Meta 编译器的内部副本)和远程执行(指向 Meta 内部服务器) —— 两者都提供了开源替代品。还发布了与内部使用完全相同的所有规则。
  • Buck2 的编写是为了与远程执行相结合,能够在远程机器上运行操作,使用与 Bazel 相同的 API,并且一直在用 Buildbarn 和 EngFlow 测试远程执行。
  • Buck2 还可以与虚拟文件系统集成。

上述所有这些更改都是想要帮助工程师和开发者减少等待时间,将更多时间用于迭代他们的代码。

目前 Buck2 为以下这些语言附带了对应的规则:Assembly、C/C++、Erlang、Go、Haskell、Java、JavaScript、Julia、OCaml、Python 和 Rust。开发者可以使用 Starlark 脚本语言,向 Buck2 添加或重新实现语言规则。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IP地址配置

1.vi /etc/sysconfig/network-scripts/ifcfg-ens33 (在配置文件中修改) 配置文件内容为: IPADDR:配置IP地址 NETMASK:配置子网掩码 GATEWAY:配置网关 DNS:配置dns地址 BOOTPROTO:设置获取ip的方式\DHCP为动态获取\ static为…

C++(GCC)生成和使用静态库

C(GCC)生成和使用静态库 文章目录 C(GCC)生成和使用静态库1、前言1.1 什么是静态库1.2 静态库优缺点1.3 C使用静态库的方法1.4 注意事项 2、linux下C生成静态库.a3、链接使用静态库 更多精彩内容👉个人内容分类汇总 &a…

可算是熬出头了,测试4年,费时8个月,入职阿里,涨薪14K

前言 你的努力,终将成就无可替代的自己。 本科毕业后就一直从事测试的工作,和多数人一样,最开始从事点点点的工作,看着自己的同学一步一步往上走,自己还是在原地踏步,说实话这不是自己想要的状态。 一年半…

蓝牙耳机接打电话哪个比较好?接打电话最好的蓝牙耳机

技术已经发展到如此程度,耳机可以淹没嘈杂环境中不断出现的杂音,同时还能让我们在通话、音乐和娱乐方面保持清晰,既然如此,我们就来整理一下2023年适合通话和娱乐的无线耳机清单。 一、南卡小音舱Lite2蓝牙耳机 参考价格&#x…

Ubuntu系统下Python的虚拟环境搭建方法

文章目录 参考链接:一、Python虚拟环境的作用及创建方法简介1. 创建虚拟环境的必要性2. venv、virtualenv、pipenv三种创建虚拟环境方法比较2.1 搭建Python虚拟环境的方法2.2 venv、virtualenv方法2.3 pipenv方法 二、 virtualenv搭建虚拟环境1. 环境准备1.1 安装vi…

AI数字人产品“世优BOTA”发布会落幕,世优科技纪智辉演讲回顾

4月20日,世优科技式发布了新一代AI数字人产品——“世优BOTA”。在会上,世优科技创始人纪智辉介绍了数字人技术、驱动形式、数字人应用、“世优BOTA”的前世今生及未来。 以下是纪智辉的演讲内容概要: 各位嘉宾、各位朋友:大家下…

Storm proxies动态SEO监测优化为什么要大量用到http代理ip?

SEO监测和优化通常需要大量使用HTTP代理IP来实现以下几个方面的需求: 模拟不同地区的搜索结果:搜索引擎通常会根据用户所在地区提供不同的搜索结果,因此需要使用HTTP代理IP模拟不同地区的搜索结果,以便监测和优化针对不同地区的SE…

Matlab 相机标定

详细的原理可以看这篇 计算机视觉-相机标定,写的很赞 Step1. 准备 首先准备打印好的黑白棋盘格图片,并且保证表面的平整,例如35*35的棋盘格,贴在亚克力板上。 Step2. 拍摄 用相机拍摄棋盘格分别在取景框左上角、右上角、左下…

openGauss数据库pg_xlog爆满问题解决

文章目录 问题现象问题定位解决办法总结 问题现象 最近有一个之前搭的环境登不上了,好久没用想拿来测试的时候发现启动不了。启动时报错: [Errno 28] No space left on device query也不行了,提示没有空间了。 查询磁盘使用情况 df -h …

车间设备能源管理系统作用有哪些?

由于能源消耗不断的增加,对于高耗能企业要实现节能转型,淘汰落后高耗能产业,提供能源的有效利用,实现节能减排,合理利用能源,从而促进企业的经营绩效。 车间设备能源管理系统优点 1.精细化管理 可以对车…

探索【Stable-Diffusion WEBUI】的附加功能:图片缩放抠图

文章目录 (零)前言(一)附加功能(图片处理)(1.1)处理对象(Source)(1.2)缩放(Scale)(1.2.1&#xff…

【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述

【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述 【论文原文】:A Survey on Deep Learning Event Extraction Approaches and Applications 【作者信息】:Li, Qian and Li, Jianxin and Sheng, Jiawei and Cui, Shiyao and Wu, Jia and Hei,…

畅谈自然语言处理——初识NLP技术

畅谈自然语言处理——初识NLP 文章目录 畅谈自然语言处理——初识NLP一、引言二、NLP技术的定义分类三、三个发展阶段1、基于规则的算法2、基于统计的NLP算法3、基于深度学习的NLP算法 结语 一、引言 最近,一个名为ChatGPT的模型将计算机领域震撼,它以对…

Linux系统之部署webmin开源管理工具

Linux系统之部署webmin开源管理工具 一、webmin简介1.webmin简介2.webmin特点 二、本地环境介绍1.本次实践目的2.本地环境规划 三、检查本地环境1.检查操作系统版本2.检查系统内核版本 四、配置webmin的yum仓库1.编辑webmin.repo仓库文件2.查看yum仓库状态 五、部署webmin1.添加…

在docker安装Python环境提供给其他docker使用

1. 在宿主机新建一个目录2. 在app目录下新建一个Dockerfile文件本文永久更新地址: 1. 在宿主机新建一个目录 在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包 在项目根目录下输入命令,导出python项目所有的依赖包 pip freeze > r…

(二十二)查找算法-斐波那契算法

1 基本介绍 (1)黄金分割点是指一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618.由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神奇…

Android Fragment懒加载机制分析与详解

一、介绍 Fragment是Android3.0以后引进,称为碎片。它与Activity非常相似,用一个Activity中描述一些行为或者一部分用户界面,使用多个Fragment可以在一个单独的Activity中建立多个UI面板,也可以在多个Activity中使用Fragment。 Fr…

Linux I/O复用函数的使用情况和select接口的介绍

I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。通常, 网络程序在下列情况下需要使用 I/O 复用技术: 1.TCP服务器同时要处理监听套接字和连接套接字 2.服务器同时要处理TCP请求和UDP请求。 3.程序同时要处理多个套…

档案库房温湿度管理暂行规定

档案馆温湿度管理暂行规定 来源:本站 日期:2021-8-27 浏览量:1067 档案馆温湿度管理暂行规定 (1985年11月23日国家档案局 国档发〔1985〕42号通知印发) 档案馆是永久保管档案的基地,档案馆建筑是档案馆工作的基础…

用Flutter你得了解的七个问题

Flutter是Google推出的一款用于构建高性能、高保真度移动应用程序、Web和桌面应用程序的开源UI工具包。Flutter使用自己的渲染引擎绘制UI,为用户提供更快的性能和更好的体验。 Flutter使用Dart语言,具有强大的类型、效率和易学能力,基本上你…