Thread overview
[dmd-internals] Plans for the next release
Jan 07, 2010
Don Clugston
Jan 07, 2010
Don Clugston
January 07, 2010
Obviously the 'shared' stuff/TLS is Walter's priority.
There have a been a huge number of regressions in the past few
releases. By now, there are patches for most of them. We should get
all of them fixed in the next release.

I have finally got struct constructors working in CTFE; this fixes a several structural bugs. Unfortunately it requires changes in several places throughout the compiler.

I've also made a magic __ctfe variable (bug 3556), but it's a very simple patch.


By the way, some good news: there are currently 96 dead votes in
Bugzilla. It's quite an impressive list.
http://d.puremagic.com/issues/buglist.cgi?query_format=advanced&votes=1&bug_status=RESOLVED
January 07, 2010
Don Clugston wrote:
> Obviously the 'shared' stuff/TLS is Walter's priority. There have a been a huge number of regressions in the past few releases. By now, there are patches for most of them. We should get all of them fixed in the next release.
> 
> I have finally got struct constructors working in CTFE; this fixes a
> several structural bugs. Unfortunately it requires changes in several
>  places throughout the compiler.

This is absolutely huge because we can really claim structs have true literals. So are there still issues with the feature?

> I've also made a magic __ctfe variable (bug 3556), but it's a very
> simple patch.
> 
> 
> By the way, some good news: there are currently 96 dead votes in Bugzilla. It's quite an impressive list. http://d.puremagic.com/issues/buglist.cgi?query_format=advanced&votes=1&bug_status=RESOLVED

What do dead votes mean?

Andrei
January 08, 2010
2010/1/7 Andrei Alexandrescu <andrei at erdani.com>:
> Don Clugston wrote:
>>
>> Obviously the 'shared' stuff/TLS is Walter's priority. There have a been a huge number of regressions in the past few releases. By now, there are patches for most of them. We should get all of them fixed in the next release.
>>
>> I have finally got struct constructors working in CTFE; this fixes a several structural bugs. Unfortunately it requires changes in several ?places throughout the compiler.
>
> This is absolutely huge because we can really claim structs have true literals. So are there still issues with the feature?

Not really. The only thing I know of that doesn't yet work properly is structs with postblits in module scope. The postblit doesn't currently get run when you assign a struct literal to another literal.

enum SomeStruct a = SomeStruct(3,4, "abc");
enum SomeStruct b = a;

The postblit should be run on b, so that a and b won't be identical. It's a bit of a pain to make that work. Might disallow it for now -- it's pretty obscure. BTW that DOES work inside a CTFE function -- it's only in module scope that it fails.

The reason why struct constructors were so difficult is that they're implemented as a compiler-internal extension to comma expressions, which are (declaration, expression) instead of (expression, expression). And the declaration is an lvalue.

>> I've also made a magic __ctfe variable (bug 3556), but it's a very
>> simple patch.
>>
>>
>> By the way, some good news: there are currently 96 dead votes in Bugzilla.
>> It's quite an impressive list.
>> http://d.puremagic.com/issues/buglist.cgi?query_format=advanced&votes=1&bug_status=RESOLVED
>
> What do dead votes mean?

People voted for something, it's now been fixed, but they haven't changed their vote yet. Means the rate of bug fixing is overtaking the voting. <g>.
January 07, 2010
If you could abort compilation (with message) for now inside the implementation so we don't forget, that should be fine.

Pretty cool insight re dead votes, but if most people are like me, they just forget all about the feature most of the time :o).


Andrei

Don Clugston wrote:
> 2010/1/7 Andrei Alexandrescu <andrei at erdani.com>:
>> Don Clugston wrote:
>>> Obviously the 'shared' stuff/TLS is Walter's priority. There have a been a huge number of regressions in the past few releases. By now, there are patches for most of them. We should get all of them fixed in the next release.
>>>
>>> I have finally got struct constructors working in CTFE; this fixes a
>>> several structural bugs. Unfortunately it requires changes in several
>>>  places throughout the compiler.
>> This is absolutely huge because we can really claim structs have true literals. So are there still issues with the feature?
> 
> Not really. The only thing I know of that doesn't yet work properly is structs with postblits in module scope. The postblit doesn't currently get run when you assign a struct literal to another literal.
> 
> enum SomeStruct a = SomeStruct(3,4, "abc");
> enum SomeStruct b = a;
> 
> The postblit should be run on b, so that a and b won't be identical. It's a bit of a pain to make that work. Might disallow it for now -- it's pretty obscure. BTW that DOES work inside a CTFE function -- it's only in module scope that it fails.
> 
> The reason why struct constructors were so difficult is that they're implemented as a compiler-internal extension to comma expressions, which are (declaration, expression) instead of (expression, expression). And the declaration is an lvalue.
> 
>>> I've also made a magic __ctfe variable (bug 3556), but it's a very
>>> simple patch.
>>>
>>>
>>> By the way, some good news: there are currently 96 dead votes in Bugzilla.
>>> It's quite an impressive list.
>>> http://d.puremagic.com/issues/buglist.cgi?query_format=advanced&votes=1&bug_status=RESOLVED
>> What do dead votes mean?
> 
> People voted for something, it's now been fixed, but they haven't
> changed their vote yet. Means the rate of bug fixing is overtaking the
> voting. <g>.
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals