1. 10

Abstract:

Most build systems start small and simple, but over time grow into hairy monsters that few dare to touch. As we demonstrate in this paper, there are a few issues that cause build systems major scalability challenges, and many pervasively used build systems (e.g. Make) do not scale well.

This paper presents a solution to the challenges we identify. We use functional programming to design abstractions for build systems, and implement them on top of the Shake library, which allows us to describe build rules and dependencies. To substanti- ate our claims, we engineer a new build system for the Glasgow Haskell Compiler. The result is more scalable, faster, and spectac- ularly more maintainable than its Make-based predecessor.

  1.  

  2. 2

    The section on related work is particularly interesting. It gives an overview of modern build tools and how they differ.

    1. 1

      Section 2 on the specific problems GHC ran into with its previous build-system iterations (elaborated a bit in Section 4) is also quite interesting. Overall a great paper.

    2. 1
      1. 6

        In case you did not understand the reference, this is a retort to Recursive Make Considered Harmful(pdf).