CyberShadow / Digger

A tool to build D and bisect old D versions
Other
57 stars 9 forks source link

improve logging to get a better sense of progress during bisect #24

Closed timotheecour closed 9 years ago

timotheecour commented 9 years ago

could we have a --verbose=0 (or --no-compilation-logs ...) to avoid logging the (very verbose) compilation logs to stdout? maybe using std.experimental.logger to log those to a separate file (or just directly writing to logfiles in a temp folder, one per bisect stage)

Also, since we should know ahead of time the maximum stages in bisection (log(n)), we should be able to show indicator progress.

So ideally the trace in the main log file (or stdout) should just show the steps:

stage:1 max_stages: 53 hash:dmd-ddc90f38 needBuild:true status:SUCCESS stage:2 max_stages: 53 hash:dmd-ddc90f48 needBuild:true status:FALSE stage:3 max_stages: 53 hash:dmd-ddc90fa8 needBuild:true status:TRUE ...

timotheecour commented 9 years ago

and also reporting the bisection search range in each step, possible as a time:

stage:4 max_stages: 53 hash:dmd-ddc90f38 needBuild:true status:SUCCESS good: july 1 bad:july 3

CyberShadow commented 9 years ago

maybe using std.experimental.logger to log those to a separate file (or just directly writing to logfiles in a temp folder, one per bisect stage)

These are emitted by a child process, not Digger.

Also, since we should know ahead of time the maximum stages in bisection (log(n)), we should be able to show indicator progress.

It does print an estimated number of tests remaining.

The time is difficult to estimate because a particular D commit might be cached, or unbuildable.

CyberShadow commented 9 years ago

This is what the progress output looks like:

digger: Finding shortest path between 7676a352aba1862f69d0eb8545b59bcc408237fa and feb79e1f2259906d69a94193c9b19f2239caa7ae...
digger: 15 commits (about 4 tests) remaining.
digger: (15 total, 15 cached, 0 untestable)

It is printed after every test.

timotheecour commented 9 years ago

ya, but it's unreadable as it's swamped in logs from compiling dmd.

https://github.com/CyberShadow/ae/pull/19 fixes this.