[phobos] release candidate - please, no more changes!

Andrei Alexandrescu andrei at erdani.com
Sat Jun 12 01:18:12 PDT 2010


Looks like a compiler problem.

Andrei

Brad Roberts wrote:
> On 6/11/2010 9:40 PM, Don Clugston wrote:
>> On 12 June 2010 04:18, Walter Bright <walter at digitalmars.com> wrote:
>>> Brad Roberts wrote:
>>>> On Fri, 11 Jun 2010, Walter Bright wrote:
>>>>> I'm working on that now, so please no more changes unless there's some
>>>>> disaster. Thanks!
>>>> It looks like from the startsWith thread, that the problem is at the
>>>> compiler level regression.  Have you followed that issue and if so, found a
>>>> fix?  I haven't seen a dmd submit with a fix yet.
>>>>
>>>> Just making sure we've handled all the discovered issues.
>>> As far as I know, nobody has figured out where the problem is.
>> The original startWith() bug was a Phobos change, which is now fixed.
>> The CustomFloat bug has been fixed. Is there another regression?
>> _______________________________________________
> 
> The attached email is the last one I saw on the startsWith thread.  It was in
> the dmd-beta list earlier today.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> Subject:
> Re: [dmd-beta] dmd 1.062 and 2.047 beta
> From:
> Rainer Schuetze <r.sagitario at gmx.de>
> Date:
> Fri, 11 Jun 2010 20:30:07 +0200
> To:
> Discuss the dmd beta releases for D <dmd-beta at puremagic.com>
> 
> To:
> Discuss the dmd beta releases for D <dmd-beta at puremagic.com>
> 
> 
> 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
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos


More information about the phobos mailing list