Thread overview
[dmd-internals] More patches for severe bugs
Jul 23, 2010
Don Clugston
Jul 23, 2010
Walter Bright
Jul 23, 2010
Don Clugston
Jul 25, 2010
Walter Bright
Jul 25, 2010
Don Clugston
Jul 28, 2010
Don Clugston
July 23, 2010
These two are wrong-code bugs which are a nightmare to debug since they fail in subtle ways.

3560 foreach over nested function generates wrong code
3706 delegates of interfaces with multiple inheritance fail

There's actually not so many remaining severe wrong-code bugs -- most
of the worst ones were fixed in the past few releases.
There are a couple of others which I am still working on (I'm finding
them particularly difficult, which is why I've only got two in this
list).

I would also like to see this patch included in the next release,
since it abolishes a common bug from all D code.
4077 Bugs caused by bitwise operator precedence

There's at least a dozen other worthwhile patches in Bugzilla, but none seem particularly urgent.
July 23, 2010
Thanks, Don!

Don Clugston wrote:
> These two are wrong-code bugs which are a nightmare to debug since they fail in subtle ways.
>
> 3560 foreach over nested function generates wrong code
> 3706 delegates of interfaces with multiple inheritance fail
>
> There's actually not so many remaining severe wrong-code bugs -- most
> of the worst ones were fixed in the past few releases.
> There are a couple of others which I am still working on (I'm finding
> them particularly difficult, which is why I've only got two in this
> list).
>
> I would also like to see this patch included in the next release,
> since it abolishes a common bug from all D code.
> 4077 Bugs caused by bitwise operator precedence
>
> There's at least a dozen other worthwhile patches in Bugzilla, but
> none seem particularly urgent.
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>
>
> 
July 23, 2010
Great work! Also, Don, I recall you implemented disabling a & b == c. Any chance you could put that patch in production? Thanks!

Andrei

Walter Bright wrote:
> Thanks, Don!
> 
> Don Clugston wrote:
>> These two are wrong-code bugs which are a nightmare to debug since they fail in subtle ways.
>>
>> 3560 foreach over nested function generates wrong code
>> 3706 delegates of interfaces with multiple inheritance fail
>>
>> There's actually not so many remaining severe wrong-code bugs -- most
>> of the worst ones were fixed in the past few releases.
>> There are a couple of others which I am still working on (I'm finding
>> them particularly difficult, which is why I've only got two in this
>> list).
>>
>> I would also like to see this patch included in the next release,
>> since it abolishes a common bug from all D code.
>> 4077 Bugs caused by bitwise operator precedence
>>
>> There's at least a dozen other worthwhile patches in Bugzilla, but
>> none seem particularly urgent.
>> _______________________________________________
>> dmd-internals mailing list
>> dmd-internals at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>>
>>
>> 
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
July 23, 2010
On 23 July 2010 15:49, Andrei Alexandrescu <andrei at erdani.com> wrote:
> Great work! Also, Don, I recall you implemented disabling a & b == c. Any chance you could put that patch in production? Thanks!

That's bug 4077, which I mentioned in the list below <g>. I think it's
extremely valuable patch.
I hate to think what the total economic impact of that C misfeature has been...

>
> Andrei
>
> Walter Bright wrote:
>>
>> Thanks, Don!
>>
>> Don Clugston wrote:
>>>
>>> These two are wrong-code bugs which are a nightmare to debug since they fail in subtle ways.
>>>
>>> 3560 foreach over nested function generates wrong code
>>> 3706 delegates of interfaces with multiple inheritance fail
>>>
>>> There's actually not so many remaining severe wrong-code bugs -- most
>>> of the worst ones were fixed in the past few releases.
>>> There are a couple of others which I am still working on (I'm finding
>>> them particularly difficult, which is why I've only got two in this
>>> list).
>>>
>>> I would also like to see this patch included in the next release,
>>> since it abolishes a common bug from all D code.
>>> 4077 Bugs caused by bitwise operator precedence
>>>
>>> There's at least a dozen other worthwhile patches in Bugzilla, but
>>> none seem particularly urgent.
>>> _______________________________________________
>>> dmd-internals mailing list
>>> dmd-internals at puremagic.com
>>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>>>
>>>
>>>
>>
>> _______________________________________________
>> dmd-internals mailing list
>> dmd-internals at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>
July 23, 2010
Don Clugston wrote:
> On 23 July 2010 15:49, Andrei Alexandrescu <andrei at erdani.com> wrote:
>> Great work! Also, Don, I recall you implemented disabling a & b == c. Any chance you could put that patch in production? Thanks!
> 
> That's bug 4077, which I mentioned in the list below <g>. I think it's
> extremely valuable patch.
> I hate to think what the total economic impact of that C misfeature has been...

Frame it differently - think of the positive impact of your fix!

Andrei
July 24, 2010
Done.

Don Clugston wrote:
> These two are wrong-code bugs which are a nightmare to debug since they fail in subtle ways.
>
> 3560 foreach over nested function generates wrong code
> 3706 delegates of interfaces with multiple inheritance fail
>
> There's actually not so many remaining severe wrong-code bugs -- most
> of the worst ones were fixed in the past few releases.
> There are a couple of others which I am still working on (I'm finding
> them particularly difficult, which is why I've only got two in this
> list).
>
> I would also like to see this patch included in the next release,
> since it abolishes a common bug from all D code.
> 4077 Bugs caused by bitwise operator precedence
>
> 
July 26, 2010
This horrific regression just showed up. I've tracked down the offending line of code, but you'll need to run the C++ optimiser test suite on it, because I don't know why it was changed in the first place.

4506 Regression(2.034): -O flag breaks some recursive functions
--------

On 25 July 2010 04:11, Walter Bright <walter at digitalmars.com> wrote:
> Done.
>
> Don Clugston wrote:
>>
>> These two are wrong-code bugs which are a nightmare to debug since they fail in subtle ways.
>>
>> 3560 foreach over nested function generates wrong code
>> 3706 delegates of interfaces with multiple inheritance fail
>>
>> There's actually not so many remaining severe wrong-code bugs -- most
>> of the worst ones were fixed in the past few releases.
>> There are a couple of others which I am still working on (I'm finding
>> them particularly difficult, which is why I've only got two in this
>> list).
>>
>> I would also like to see this patch included in the next release,
>> since it abolishes a common bug from all D code.
>> 4077 Bugs caused by bitwise operator precedence
>>
>>
>
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>
July 28, 2010
And here are two more patches for severe bugs. These are pretty simple patches.

2931 Initialization struct with array from another struct 1678 ref with varargs generates invalid code

There are quite a few closure and struct static initializer wrong-code bugs, and many metaprogramming bugs, but these two are among the last of the unsophisticated wrong-code bugs.


On 26 July 2010 00:34, Don Clugston <dclugston at googlemail.com> wrote:
> This horrific regression just showed up. I've tracked down the offending line of code, but you'll need to run the C++ optimiser test suite on it, because I don't know why it was changed in the first place.
>
> 4506 Regression(2.034): -O flag breaks some recursive functions
> --------
>
> On 25 July 2010 04:11, Walter Bright <walter at digitalmars.com> wrote:
>> Done.
>>
>> Don Clugston wrote:
>>>
>>> These two are wrong-code bugs which are a nightmare to debug since they fail in subtle ways.
>>>
>>> 3560 foreach over nested function generates wrong code
>>> 3706 delegates of interfaces with multiple inheritance fail
>>>
>>> There's actually not so many remaining severe wrong-code bugs -- most
>>> of the worst ones were fixed in the past few releases.
>>> There are a couple of others which I am still working on (I'm finding
>>> them particularly difficult, which is why I've only got two in this
>>> list).
>>>
>>> I would also like to see this patch included in the next release,
>>> since it abolishes a common bug from all D code.
>>> 4077 Bugs caused by bitwise operator precedence
>>>
>>>
>>
>> _______________________________________________
>> dmd-internals mailing list
>> dmd-internals at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>>
>