4 hours ago
- 该帖子讨论了为永久计算设计构建系统,重点关注../lua/civ构建系统和提议的包管理器。
- 一个好的构建系统必须明确每个构建阶段的所有输入和输出。
- Make受到批评,因为它是一组带有特定平台语法的shell脚本集合,缺乏整体结构。
- 另一个原则是构建系统应允许以编程方式配置不同目标系统的输入和输出。
- Civ的解决方案使用了一个可配置的“系统中心”,通过最小化且定义明确的API抽象了文件位置和构建逻辑。
- Civ的实现轻量级(1000行C实用库和约100行Lua),不像Bazel那样会派生Python且更复杂。
- 提议的包管理器包含一个“hubrepo”(一个git仓库),用于存储中心和依赖项,并通过.civ.lockfile进行版本锁定。
- 要向中心提交代码,开发者必须创建一个包含测试和文档的拉取请求,由机器人自动合并。