b2fbd1d8

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

Committer: Tom Sydney Kerckhove <NorfairKing@users.noreply.github.com>

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 2s 1s 1s 4s 2s
Eval 4s 9s 9s 13s 0s
Build 12s 0s 0s 12s 0s
Suite 2s 11s 11s 13s 2s

Timeline

0s10s