活动内容
本次直播将分享一篇论文《Build systems à la carte: Theory and practice》。论文的3位作者分别是 Andrey Mokhov, Neil Mitchell 和 Simon Peyton Jones。
这篇论文提供了一个系统的、可执行的框架用于开发和比较不同的构建系统。此外,文章的主要贡献之一是确定了深入影响任何构建系统的两个关键设计选择:
- 构建任务的顺序(调度算法)
- 任务是否重新构建(重建策略)
并通过这两个维度对常见的构建系统进行分类:
- R = Rebuilding strategy
- S = Scheduling algorithm
R/S | Topological | Restarting | Suspending |
---|---|---|---|
Dirty bit | Make | Excel | |
Verifying traces | Ninja | Shake | |
Constructive traces | CloudBuild | Bazel | |
Deep constructive traces | Buck | Nix |
通过本次分享,我们将更深入地了解构建系统的工作原理,同时了解如何用少量 Haskell 代码建立各种构建系统模型。