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

Brad Roberts braddr at puremagic.com
Sat Jun 12 01:18:05 PDT 2010


Which is exactly what I said about 6 hours ago and Rainer said 14 hours ago. :)

On 6/12/2010 1:18 AM, Andrei Alexandrescu wrote:
> 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");
>>>>> _______________________________________________



More information about the phobos mailing list