3f249f18

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

Use stm-containers for plugin and mutation-mode shared state

Replace the IORef-of-Map process globals in the mutation plugin with
stm-containers maps, and collapse the config cache to a single TVar
slot now that every module in one GHC invocation sees the same
--config flag.  Also swap the mutation runner's per-group results TVar
for an StmContainers.Map keyed by group index.

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 3s 3s 3s
Eval 3s 33s 33s 37s
Build 10s 1m11s - -
Test - - - -
Deploy - - - -
Suite 0s 1m48s - -

Timeline

0s10s20s30s40s