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 2s
Eval 3s 17s 17s 21s
Build 10s 11s 10s 20s
Test - - - -
Deploy - - - -
Suite 0s 31s 21s 21s

Timeline

0s0s10s20s