|
|
|
|
|
by sigil
796 days ago
|
|
Good question! Here's a paper, "Build systems à la carte: Theory and practice," that compares Make, Shake, Bazel, and Excel: https://ndmitchell.com/downloads/paper-build_systems_a_la_ca... Yes, Excel can be considered a build system! A cell outputs the result of a computation, but it can also input computation results from other cells. For performance reasons, you don't want to recompute all cells in a spreadsheet when one cell changes. You want to do the minimum – an incremental rebuild. You do that by traversing a DAG with cells as vertices. You might not be "compiling" "files", but it sure looks like a build system in other important ways. I've worked on build systems on & off for most of my career, but your question made me realize I've never read a book that presents build systems in the abstract. Everything I know comes from studying specific build systems and, in some cases, writing my own. The design space for build systems is huge and still expanding. That makes a unified theory of build systems difficult. Can you share what motivated your question and what you're hoping to learn? |
|
Awesome, thank you. I actually had that saved in my files to read later, then started really digging into it after your suggestion. Almost exactly what I was looking for!
> Can you share [1] what motivated your question and [2] what you're hoping to learn?
I suppose the simplest answer is "[1] pure curiosity and [2] whatever I can to slake it." How build systems in particular piqued my interest is a weirder, zig-zaggy story involving a bunch of different things catching my eye at random, and I'm not sure that's what you wanted to know, so I'll omit for now.