www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: Front-end release.NEXT

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Fri, Aug 30, 2013 at 12:43:44PM -0700, Walter Bright wrote:
 On 8/30/2013 11:32 AM, H. S. Teoh wrote:

I obtained a +1 Sword of Bisection from a git this morning, and
decided to go commit hunting. I found the specific commits that
introduced the following regressions (see bug notes for the offending
commits):

10687 - Refused cast from uint[] to array of uint-based enums at compile-time
10401 - ICE(ztc/symbol.c 1035) - inline Nullable struct with JSONValue
10425 - Link error with templates
10555 - enumerator can no longer increment beyond maximum of initializer
10617 - contract with -profile -debug is not nothrow
10630 - Structs with disabled default construction can't be used as `out`
parameters

I would fix them myself, except that my dmd-fu level isn't high
enough to take them on yet. ;-)

Thank you. This is great information.

And easily obtained with git bisect, about 5-10 minutes per bug. :) On Fri, Aug 30, 2013 at 12:45:16PM -0700, Walter Bright wrote: [...]
 BTW, please add this information to both the regression issues and
 the issues who's resolution introduced the regression.

Done. The bugs whose resolution introduced the regressions were pretty easy to find, except for 10687: I had to read up on how to work with complicated git revision ranges to isolate it. :) Turns out it's another regression from Don's epic pull: https://github.com/D-Programming-Language/dmd/pull/2136 Unfortunately, for all of its epicness, a change of such magnitude inevitably introduces/exposes other flaws, and this is one of them (already the second one noted on the pull page). One of these days I'll have to research a little more how to more easily identify the merge commit that pulled in a particular commit. Since all commits only refer to their ancestors, git has no easy way of following the chain downstream to the merge point (at least, none that I know of). If anyone knows some git-fu to do this, I'd be very much obliged. :) T -- Кто везде - тот нигде.
Aug 30 2013
parent Justin Whear <justin economicmodeling.com> writes:
On Fri, 30 Aug 2013 14:35:04 -0700, H. S. Teoh wrote:

 On Fri, Aug 30, 2013 at 12:43:44PM -0700, Walter Bright wrote:
 One of these days I'll have to research a little more how to more easily
 identify the merge commit that pulled in a particular commit. Since all
 commits only refer to their ancestors, git has no easy way of following
 the chain downstream to the merge point (at least, none that I know of).
 If anyone knows some git-fu to do this, I'd be very much obliged. :)
 
 
 T

I think you can find the merge which introduced the commit with something like this: git log <commit hash>..master --merges --ancestry-path Though that includes subsequent merges; I think you just want the last one.
Aug 30 2013