db0131dd

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

Root weeder at the tests rather than at a list of the API

The roots were the API written out, twenty regexes copied from the export
lists, which is a list that drifts from what it copies.  With includeTests on
the roots are the test suites, everything the tests reach counts as reached,
and an export no test reaches is reported.

For a library that is the root set worth having: the API is what has to stay
alive, and "no test reaches this" is the report worth getting rather than a
root quietly added to stop it.

It found genDurationVariable immediately, which was added when
DurationVariable came out of genValid and never called by anything.  The hand
written roots had been hiding it.  Gone.

The trade is that dead code inside the test suites is no longer caught.
GitHub

Total

2m50s

Created Started Finished

Time to Start Worker time Duration Time to finish Idle
Config 58s 1s 1s 59s 58s
Eval 1m00s 8s 8s 1m09s 1s
Build 1m08s 32s 2m40s 3m49s 2m14s
Suite 58s 41s 2m50s 3m49s 3m13s