CyberShadow / Digger

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

Improvement ideas for the bisect mode #55

Closed wilzbach closed 7 years ago

wilzbach commented 7 years ago

@CyberShadow I still think that Digger is an amazing tool, but after using recently for a couple of bisects I have a couple of ideas. Unfortunately I don't have time to help, but I thought posting the ideas is the best option:

CyberShadow commented 7 years ago

For the tester: don't redefine $HOME or paths beginning with/ (it's undocumented and unexpected)

Oops, that's a bug

Allow running the dmd Makefile in parallel (e.g. -j8)

Use --jobs or set makeJobs=auto in digger.ini

Avoid building Phobos as dynamic library (usually only statically is required)

I could add an option, but it takes almost no extra time with 2 or more make jobs.

Filter to look only at commits of a specific subrepo (e.g. DMD).

I don't like this idea. If your assumption is wrong, then the result will be wrong, and a bad bisection result can have unpleasant consequences.

Allow to build multiple versions in parallel (I guess this will be rather hard to do)

Digger does a binary search, can't really parallelize a binary search in a reasonable way. If something goes wrong, it will also be impossible to understand the output.

If you do a lot of bisecting, make sure to enable the cache. Digger will prefer picking cached revisions for bisecting if possible. I could also give you access to the digger@k3 account, which has a Digger instance with all/most revisions to date cached.

CyberShadow commented 7 years ago

Filter to look only at commits of a specific subrepo (e.g. DMD).

You can use --without=phobos --without=druntime --without=rdmd to build only DMD, but you will need to supply your own object.d and libphobos.a in your test command.

CyberShadow commented 7 years ago

For the tester: don't redefine $HOME or paths beginning with/ (it's undocumented and unexpected)

Fixed in 6a75e7e216c64e6135680302bcfe4a8cda8b9d9f.