On Mon, 16 Aug 2010 23:33:26 +0900, Jordi wrote: > On 08/16/2010 04:11 PM, Don wrote: >> Brad Roberts wrote: >>> On 8/15/2010 12:54 PM, Walter Bright wrote: >>>> Nick Sabalausky wrote: >>>>> This may be a pain to do, but you could narrow it down from the >>>>> other direction: recompile DMD from various trunk revisions between >>>>> 2.046 and 2.047 >>>>> and see which actual commit created the problem. >>>> Try mixing/matching the compiler & Phobos to see which one of those >>>> caused the >>>> issue. >>> >>> While I agree that it's worth trying a bisection -- it's generally >>> really quick >>> and easy to do (the compiler and libraries build rather fast -- about >>> a minute >>> for me). It can be a very useful technique for finding where bugs were >>> introduced. >>> >>> That said, it's likely to be rather difficult for this release due to >>> the number >>> of fixes in the compiler that the library requires and for the periods >>> during >>> which the two didn't work together. >>> >>> Do try it.. worst case is you've wasted a little bit of time. Best >>> case you've >>> found the cause of the bug. >>> >>> Later, >>> Brad >> >> The latest compiler should work with the old Phobos, except that it >> will complain about the a&b==c bugs. That's simple to do, it just >> involves copying the 2.048 compiler onto the 2.047 release. Knowing if >> it is the compiler or Phobos/druntime would be an enormous help. > > Found it. It took me 7 iterations of binary search across the svn > repositories for dmd, druntime and phobos. The commit causing the issue > is 505 in dmd. It is related to structs returning *this, which indeed i > do in my maths structs. > > Now, i don't know if the bug is in dmd or in my code, but i suspect that > something is being treated as a reference when it shouldn't. Should i > add an issue even if i am not sure?
Since DMD 2.021, 'this' for structs _is_ a reference. -Lars
