首页 > 其他分享 >开源构建系统Buck2发布

开源构建系统Buck2发布

时间:2023-04-21 13:01:41浏览次数:46  
标签:开源 Meta 构建 规则 Buck2 Buck1

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

开源构建系统Buck2发布开源构建系统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 添加或重新实现语言规则。

标签:开源,Meta,构建,规则,Buck2,Buck1
From: https://www.cnblogs.com/cainiaoyige1/p/17339972.html

相关文章

  • 开源构建系统Buck2发布
    看来最近Meta的工程师是一点都没有闲着,前两天刚开源AI图像分割模型,这不就又发布了名为Buck2的开源构建系统。Buck2是一个已经在Meta内部使用了一段时间的大型构建系统,目前Meta有数千名开发人员正在使用该构建系统,每天执行数百万次的构建。在Meta的内部测试中......
  • 开源构建系统Buck2发布
    看来最近Meta的工程师是一点都没有闲着,前两天刚开源AI图像分割模型,这不就又发布了名为Buck2的开源构建系统。Buck2是一个已经在Meta内部使用了一段时间的大型构建系统,目前Meta有数千名开发人员正在使用该构建系统,每天执行数百万次的构建。在Meta的内部测试中......
  • What...MiniGPT-4居然开源了,提前感受 GPT-4 的图像对话能力!
    说在前面的话:一个月前,OpenAI向外界展示了GPT-4如何通过手绘草图直接生成网站,令当时的观众瞠目结舌。在GPT-4发布会之后,相信大家对ChatGPT的对话能力已有所了解。圈内的朋友们应该已经亲身体验过无论是文本生成、编写代码,还是上下文关联对话能力,这些功能都一次又一次地震撼着我们......
  • 3D Diffusion模型来了!OpenAI出品,已开源
    文|天于刀刀2022年不愧是AIGC行业元年。伴随着ChatGPT的大火使得谷歌一周之内改口“会认真评估ChatGPT对搜索引擎的影响”,OpenAI在3D图像生成领域进一步放出了大招开源项目“Point-E”[1],可玩程度不下于ChatGPT!简单来说,用户可以输入一连串文字prompt内容,只需要短短18......
  • 什么配置的电脑可满足基因组索引构建的需求?
    经常有朋友问起自己要做什么分析,推荐一个电脑的配置。通常限制程序运行的最主要因素是内存,内存不足程序会直接运行不起来,CPU性能弱顶多是运行的慢,硬盘比较便宜,不需要特别评估。针对这个问题,我们准备推出一系列测试推文,统计计算常用软件的运行时间、所需的最大物理内存(后面统计的都......
  • Docker翻脸,不再开源!
    导读前几日,DockerHub出了一件大事!但凡创建了“organisation”的用户都收到了一封含有简短PDF链接的邮件。邮件的内容“金钱味”十足:如果不按照要求升级付费,用户就将失去对数据的访问权限。此举不仅会破坏开源项目的自动化构建,还为一直依赖于开源的用户带来巨大的焦虑和麻烦。......
  • 如何使用Webpack工具构建项目
    起步webpack用于编译JavaScript模块。一旦完成 安装,你就可以通过webpack CLI 或 API 与其配合交互。如果你还不熟悉webpack,请阅读 核心概念 和 对比,了解为什么要使用webpack,而不是社区中的其他工具。运行webpack5的Node.js最低版本是10.13.0(LTS)。基本......
  • 华为云 OpenTiny 跨端、跨框架企业级开源组件库项目落地实践直播即将开启!
    大家好,我是Kagol,公众号:前端开源星球。“你们这个产品怎么只能在电脑上适配呀?我想在手机上看都不行,太麻烦了!!”“你们这个产品看起来太简单了,我想要@@功能,你们这都不能实现吗?”“你们这个产品到底安全不安全呀,不会填一点信息然后全给我泄露出去了吧!”我们前端开发同学在工作过......
  • TransformMine图像表格化构建系统
    今日团队任务:图片转excel(5天)前端开发(需团队风格统一)调用接口(后端),json数据->excel前后端连接           任烁玚(进行中)            图片转html(8天)前端开发(需团队风格统一)图片转为pdf(存储)pdf转html(调用接口)[html存储到数据库]前后台数据同......
  • LeetCode-Go:一个使用 Go 语言题解 LeetCode 的开源项目
    在中国的IT环境里,大多数场景下,学习算法的目的在于通过笔试算法题。但算法书林林总总,有时候乱花渐欲迷人眼。杜甫有诗云:读书破万卷,下笔如有神。不管选择哪本书,只要深入学习,分层次,逐层进阶,一定可以将算法攻克。笔者强烈推荐一个Github开源项目LeetCode-Go,你不仅可以把他当做......