By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Mutation: per-mutation mitigation hints + binding name in manifest & report
Replace the operator alternative 5-tuple with a MutationAlt record carrying
an extra optional mitigation message (mutAltMitigation), so an operator can
explain how a mutation it produced may be mitigated. All operators are
converted; only SwitchFunctionArguments sets a message (pointing at
skip-calls-to for the symmetric-function case).
Add two optional fields to the manifest record (and the augmented manifest):
* mitigation -- the operator's hint, carried through to the report.
* binding -- the enclosing top-level binding name, threaded through
InstrumentEnv during instrumentation.
The mutation run report now prints, under each surviving mutation, the exact
disable annotation for it ({-# ANN <binding> ("DisableMutation: <Op>" ...) #-})
and any mitigation hint, via the new survivorMitigationLines.
Bumps sydtest to 0.26.1.0 (new export, report output) and documents the
plugin changes. Goldens regenerated; example gen specs unchanged (all swap
mutants still killed).
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 14s | 2s | 2s | 16s | 14s |
| Eval | 32s | 24s | 24s | 57s | 16s |
| Build | 3m06s | 8s | 9s | 3m16s | 2m09s |
| Suite | 14s | 35s | 3m01s | 3m16s | 2m40s |