Add diagnose_capture() to provide a unified way to diagnose failures in test runs
Add comments to make explicit why some callers of run_tests() or time_all_compilers() catch exceptions, and some don't
Allow tests to specify expected output, in string or code form, and accept it in time_command()
Pass expected output down to time_command()
Switch over to new protocol between time_all_compilers() and time_command(), including saving much more data about output and failure modes in per-run info hashes.  This protocol (using run_info->{failed} instead of returning undef on command failure) will need to be extended outwards from time_all_compilers(), but I expect that this will end up with a lot of fallout.
Skip runs that failed when computing best times; be braver about pushing failed runs onto timing lists
Add an eager needed to prevent the gather from being entirely too lazy
Allow quickstart to be stopped after a particular step, useful for e.g. getting a clean perl6-bench all ready to begin timings without actually building compilers or running benchmarks
Work around recursive reference oops
Fix warning in two microbenchmarks (and take the opportunity to output a checkable value)
Fix 5-ism in perl6/string-escape
Don't accidentally skip saving any partial data gathered so far for a given compiler on a given test
Add symbolic diagnosis to timeall data

First rule of data producers: Don't force consumers to parse human-friendly
strings to get the data back out.  Thus, add a symbolic diagnosis next to
every human-readable failure reason.
Add first-pass analysis for test diagnoses
Widen text comparison columns to fit diagnoses
Add an icon set for text rendering of diagnoses
Diagnosis 'other' is now 'unknown'; make sure we always have a diagnosis
First pass at showing failures in text summary
Make compare and show-failures independent
Show test name only once per test, no matter which text summary lines are being shown