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 | 1s | 1s | 1s | 3s | 1s |
| Eval | 4m23s | 40s | 40s | 5m03s | 4m19s |
| Build | 21m57s | 27m50s | 12m43s | 34m41s | 16m57s |
| Suite | 1s | 28m32s | 34m39s | 34m41s | 21m18s |