Write a Blog >>
ICFP 2018
Sun 23 - Sat 29 September 2018 St. Louis, Missouri, United States
Sun 23 Sep 2018 15:30 - 15:55 at Illinois Central - Tools and Hardware Chair(s): Joachim Breitner

Pier is a command-line tool for building Haskell projects. Pier is similar in purpose to Stack; it uses *.cabal files to configure individual packages, and uses Stackage to get consistent sets of package dependencies. However, Pier attempts to address some of Stack’s limitations by exploring a different approach:

  • Pier invokes tools such as ghc directly, implementing the fine-grained Haskell build logic from (nearly) scratch. In contrast, Stack relies on a separate framework to implement most of its build steps (i.e., Cabal-the-library’s Distribution.Simple), giving it a more coarse control over the build.

  • Pier layers its Haskell-specific logic on top of a general-purpose library for hermetic, parallel builds and dependency tracking. That library is motivated by tools such as Nix and Bazel, and implemented using Shake. In contrast, Stack’s build and dependency logic is more specific to Haskell projects.

Though still experimental, Pier is already able to build most of the packages in Stackage (specifically, 90% of the more than 2600 packages in lts-10.3) as well as itself (i.e., pier build pier).

This talk will demo Pier and discuss some of its design choices and implementation details.

Project Source

Pier: Yet Another Haskell Build Tool [slides] (Pier - Yet Another Haskell Build Tool.pdf)235KiB

Sun 23 Sep

Displayed time zone: Guadalajara, Mexico City, Monterrey change