Hasty Briefsbeta

双语

I want a better build executor

a day ago
  • 构建执行器是构建过程的第三阶段,继包管理和配置之后,负责执行进程并报告进度。
  • 变更检测应使用除mtime以外的文件属性以减少误报,受redo等工具启发。
  • 查询操作图(文件依赖关系)是执行器的核心功能;期望的查询语言包括嵌套谓词和用于复杂输出过滤的emit()函数。
  • 追踪能自动添加依赖边并验证封闭构建,通过检查或硬错误支持逐步过渡,无需完全推断。
  • 环境变量追踪具有挑战性;方法包括CPU级追踪(PIN、SPE)或信号处理程序,但各有局限。
  • 提议的工具'ronin'将读取Magma格式,提供连续重建模式、追踪选项、类似Bazel的查询、可插拔后端以及基于SQLite的状态存储。
  • Ronin与Buck2的不同之处在于它是更低层的执行器,可嵌入CMake和Meson等现有构建系统之下,实现逐步采用封闭构建而无需完全重写。