[dmd-internals] Plans for the next release

Don Clugston dclugston at googlemail.com
Thu Jan 7 15:38:36 PST 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>.


More information about the dmd-internals mailing list