Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Exact

This was an experiment I did to test the feasibility of making a simple build system in the style of Bazel - with precise dependency tracking.

This version uses Deno to describe the build graph and Rust to build it. I have a separate project (see the sandbox directory) to provide filesystem sandboxing so dependency links can't be missed.

Deno turned out to be a poor choice. One of the problems with build systems is that in general you can't know the full build graph (DAG) before you start building. For example if you generate come C++ code you're probably going to need to scan that code to see which headers it uses. Some of those might be generated too!

So you always need to be able to run a bit of build system code during the build. Given that it makes way more sense to choose a language that can be properly sandboxed itself. I have some half written code to switch to Starlark, which seems to be the most reasonable option at the moment (Bazel uses it). But I have abandoned this project.

I only abandoned it because of internal company politics. The ideas are good - you should use something like Bazel, Buck or Pants 2 if you are building anything remotely big.

About

Build system experiment

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages