On Fri, Nov 15, 2013 at 11:51:03PM +0100, qznc wrote: [...] > It is sad that D history cannot be nicely tracked, because it is > split into three repositories without git having a clue about > dependencies between them. > > At work we have a C compiler frontend [0] and a backend [1] in > different repos. The frontend includes the backend as a git > submodule. Therefore the frontend always uses a specific revision > of the backend. Bisecting is trivial now. Faulty commits to the > backend cannot not break the frontend, because it still points to > a previous revision. [...]
Yeah, I ran into this propblem too. Since druntime/phobos changes quite often depend on new compiler features, this means that you can't effectively git bisect bugs that go back more than a few months ago, since druntime/phobos will stop compiling. I've been working around this (imperfectly) by checking out druntime/phobos by approximate dates of the current dmd version being bisected, but the result from this kind of bisection is on shaky ground since it may not represent the actual state of things at that particular juncture (it may not even represent any actual combination of dmd/druntime/phobos that was actually in use at any time!). Maybe we should incorporate druntime/phobos as submodules in the dmd repos? This will greatly help in tracking down regressions with git bisect (I remember there were a few that I couldn't track down because of the difficulty of finding the correct druntime/phobos versions needed for a particular version of dmd). This will also give us a much better history of D development. T -- This is not a sentence.
