e019e72d

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

The build, before there is anything to build

The flake, the dev shell, and the checks that will hold every rule that comes
after: the warnings this repository is held to, hlint over the whole tree with
partial functions banned, weeder over the package set, and the hooks that keep
the cabal files and the Nix expressions in step with package.yaml.

A library with one function that prints that it has no rules, so that none of
those checks is vacuous. Nothing is enforced yet, and nothing here decides
anything about Haskell.

The warnings are in package.yaml rather than in the overlay, so that a cabal
build in the shell says what a Nix build would; the overlay adds -Werror on
top, which makes the difference between a warning and a failure a property of
how it is built rather than of what it is. -Wunused-packages and weeder are in
that set on purpose: they are what will keep each later PR to the machinery its
rule actually needs.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 16m01s 1s 1s 16m02s 16m01s
Eval 16m11s 17s 17s 16m28s 8s
Build 16m27s 8s 26m56s 43m24s 26m47s
Suite 16m01s 27s 27m22s 43m24s 42m56s

Timeline

0s16m20s43m20s