[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