[dmd-beta] dmd 1.062 and 2.047 beta

Steve Schveighoffer schveiguy at yahoo.com
Fri Aug 27 06:39:58 PDT 2010


I realized that I broke this right away and fixed it, but I forgot to check in.  
Try again now:

http://www.dsource.org/projects/phobos/changeset/1934

-Steve


----- Original Message ----
> From: Rainer Schuetze <r.sagitario at gmx.de>
> 
> Hi Andrei,
> 
> I think Walter has just committed a fix for this. See  
> http://d.puremagic.com/issues/show_bug.cgi?id=4302
> 
> I could not verify  it yet, because the current dmd/phobos combination 
> causes an error for  me
> 
> std\xml.d(373): Error: cannot implicitly convert expression 
> (result.data()) of type string to char[]
> std\xml.d(1148): Error: template  instance std.xml.encode!(char[]) error 
> instantiating
> 
> This seems to  have to crept in with the recent Appender changes.
> 
> Rainer
> 
> Andrei  Alexandrescu wrote:
> > Hello Rainer,
> >
> > Catching up with my  email backlog. Was there a fix on this issue?
> >
> >  Andrei
> >
> > On 6/11/10 11:30 PDT, Rainer Schuetze wrote:
> >>  Hi,
> >>
> >> I've tried to untangle the startsWith code, and  here's the minimal test
> >> case I could come up with so  far:
> >>
> >> ///////////////////////
> >> template  binaryFunImpl(bool b)
> >> {
> >> template Body()
> >>  {
> >> static assert(b);
> >> alias bool BodyType;
> >>  }
> >> alias Body!().BodyType ReturnType; // line 9
> >>  }
> >>
> >> uint startsWith(A)(A a) if (is(binaryFunImpl!(true  ).ReturnType)) {
> >> return 1; }
> >> uint startsWith(A)(A a) if  (is(binaryFunImpl!(false).ReturnType)) {
> >> return 0; } // line  13
> >>
> >> const uint var = startsWith(1);
> >>  ///////////////////////
> >> dmd produces:
> >>
> >>  test.d(6): Error: static assert (b) is false
> >> test.d(9): instantiated  from here: Body!()
> >> test.d(13): instantiated from here:  binaryFunImpl!(false)
> >>
> >> The error does not show up if var  is not const. Also, dmd 2.032 to 2.045
> >> do not produce this error  (2.046 fails), so it must be some compiler
> >>  regression.
> >>
> >> As it seems, the compile time evaluation of  startsWith uses the wrong
> >> specialization. Maybe, it is just not  gagging error output?
> >>
> >> Any other ideas? I have not yet  dived too deep into the template code of
> >> the compiler, but if nobody  has a better clue (and time), I can give it
> >> a  try.
> >>
> >> Rainer
> >>
> >> Andrei Alexandrescu  wrote:
> >>> Thanks. It may take a while before I can tend to this.  Could someone
> >>> else look at it?
> >>>
> >>>  Andrei
> >>>
> >>> On 06/10/2010 12:53 PM, Rainer Schuetze  wrote:
> >>>> Sorry, but it still doesn't work. The error occurs  when the expression
> >>>> is evaluated at compile time, so the  code added to the unittest 
> >>>> does not
> >>>>  cover the issue.
> >>>>
> >>>>  Rainer
> >>>>
> >>>> Andrei Alexandrescu  wrote:
> >>>>> Apologies. svn up should fix it, and bring some  more goodies too :o).
> >>>>>
> >>>>>  Andrei
> >>>>>
> >>>>> On 06/10/2010 10:14 AM,  Don Clugston wrote:
> >>>>>> const bool fails =  startsWith("ab", "a");
> >>>>>  _______________________________________________
> >>>>> dmd-beta  mailing list
> >>>>> dmd-beta at puremagic.com
> >>>>> http://lists.puremagic.com/mailman/listinfo/dmd-beta
> >>>>>
> >>>>
> >>>> ; _______________________________________________
> >>>> dmd-beta  mailing list
> >>>> dmd-beta at puremagic.com
> >>>> http://lists.puremagic.com/mailman/listinfo/dmd-beta
> >>>
> >>
> >>  _______________________________________________
> >> dmd-beta mailing  list
> >> dmd-beta at puremagic.com
> >> http://lists.puremagic.com/mailman/listinfo/dmd-beta
> >  _______________________________________________
> > dmd-beta mailing  list
> > dmd-beta at puremagic.com
> > http://lists.puremagic.com/mailman/listinfo/dmd-beta
> >
> 
> _______________________________________________
> dmd-beta  mailing list
> dmd-beta at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-beta
> 


      


More information about the dmd-beta mailing list