582f1fe4

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

Add `ignore` config option to skip mutating selected calls

The plugin now reads an `ignore` list from the YAML config (`--config=PATH`).
An expression whose syntactic head matches any name on the list is left
untouched, and so are all of its sub-expressions. Use this to silence noisy
mutations on calls whose removal or modification does not affect observable
behaviour, e.g.

    ignore:
      - logDebug
      - logInfo

Without this, the `RemoveAction` operator turns
`do { logDebug "x"; doWork }` into `do { doWork }`, which no test will fail
on, producing surviving mutants that are pure noise.

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 3s 3s 3s
Eval 3s 31s 31s 35s
Build 6s 41s 21s 28s
Test - - - -
Deploy - - - -
Suite 0s 1m16s 35s 35s

Timeline

0s10s20s30s