Shake swMATH ID: 9394 Software Authors: Mitchell, Neil Description: Shake before building, replacing make with Haskell. Most complex software projects are compiled using a build tool (e.g. make), which runs commands in an order satisfying user-defined dependencies. Unfortunately, most build tools require all dependencies to be specified before the build starts. This restriction makes many dependency patterns difficult to express, especially those involving files generated at build time. We show how to eliminate this restriction, allowing additional dependencies to be specified while building. We have implemented our ideas in the Haskell library Shake, and have used Shake to write a complex build system which compiles millions of lines of code. Homepage: https://hackage.haskell.org/package/shake Keywords: build-system; compilation; Haskell Related Software: redo; Ninja; Dune; Incremental; fabricate; Reflow; Bazel; Buck; Nix; GitHub; Docker; Excel; GHC; RepLib; Haskell Cited in: 2 Publications all top 5 Cited by 6 Authors 2 Peyton Jones, Simon L. 1 Eisenberg, Richard A. 1 Mitchell, Neil 1 Mokhov, Andrey 1 Vytiniotis, Dimitrios 1 Weirich, Stephanie Cited in 1 Serial 1 Journal of Functional Programming Cited in 1 Field 2 Computer science (68-XX) Citations by Year