dmd 1.047 and 2.032 releases

Don nospam at nospam.com
Fri Sep 4 00:45:15 PDT 2009


Leandro Lucarella wrote:
> Don, el  3 de septiembre a las 17:30 me escribiste:
>> Leandro Lucarella wrote:
>>> Walter Bright, el  3 de septiembre a las 01:16 me escribiste:
>>>> This will probably be the last OSX 10.5 release, the next should be 10.6.
>>>>
>>>> http://www.digitalmars.com/d/1.0/changelog.html
>>>> http://ftp.digitalmars.com/dmd.1.047.zip
>>>>
>>>>
>>>> http://www.digitalmars.com/d/2.0/changelog.html
>>>> http://ftp.digitalmars.com/dmd.2.032.zip
>>>>
>>>> Many thanks to the numerous people who contributed to this update.
>>> These are a very good release, thanks for your work.
>>> Aren't the new CTFE capabilities new features? 
>> They're basically bug fixes. All that stuff should have worked.
> 
> Not all of them, I've seen the spacs have changed for D2:
> http://www.dsource.org/projects/phobos/changeset/1262
> 
> I'm just talking about the changes that relaxed the CTFE restrictions
> imposed in the specs. Again, that can be called simply a non-standard DMD
> extension to D1 and that would be fine with me.
> 
>>> Don't get me wrong, as I stated before, I'm really glad D1 get some new
>>> features/improvements, I just think the changes should be a little more
>>> tested before hit D1 (and new aditions to D1 should be more planned, for
>>> example, leaving them in D2 for a few releases only, so you can get real
>>> feedback from users before puting them in D1, and having some version
>>> scheme to indicate when new features are added).
>> I believe you will find the new CTFE very stable. In implementing the
>> improvements, many structural problems were fixed. It turns out to be
>> a very effective way of diagnosing bugs.
> 
> You never know. People use features in extremely different ways, sometimes
> in ways you can't possibly foreseen (I think once Walter said that about
> the kind of magic you do with CTFE =). Maybe you break some code that
> relied on something that doesn't compile (as Bartoz shows in his last post
> =).

Yes, but that's true of ANY bug fix. In fact, the CTFE "features" are 
much smaller changes than many of the bug fixes. The biggest CTFE change 
was actually the fact that references didn't work properly. (They 
compiled but generated wrong code).

I'm not so worried about CTFE stuff, because the compiler behaviour has, 
up to now, departed so radically from the spec that it hasn't been 
possible to depend on it.  Eg, x[x.length - 4]='c'; compiled, but 
x[$-4]='c' did not compile! More importantly, CTFE is almost completely 
isolated from the rest of the compiler: it can't break anything that's 
not CTFE.

AFAIK, the only areas where DMD1 can still get "new features" is CTFE, 
array operations, and contract inheritance. They are the three areas 
where the implementation wasn't finished when D2 began, and where the 
compiler behaviour has never been close to the spec. It is likely, for 
example, that unions will need to be disallowed in CTFE, but there's 
absolutely no reason why 'new' expressions should be disallowed.
Similarly, the specs say nothing about whether array expressions are 
legal in CTFE.

> I'm not saying that would happen, I'm just saying that there is a lot
> of D out there, and even a simple change should be taken with care. 

Indeed. There are still D1 bugs which can only be fixed by some fairly 
large compiler changes. On the CTFE side, fixing bug 1330 is going to be 
far more disruptive than anything in this release.

> There
> are 2 versions of D, one stable and one in development, I think that
> should be used and put new features out there in the development version
> only for some time, just to be sure, and then move them to the stable
> version (some sort of Debian testing/stable =P).

In theory, that already happens to an extent. The version recommended 
for download is not the latest one. I do wonder if anyone actually 
*uses* the recommended one, though!

> And I want to say again that all your contribution, in this release in the
> CTFE front specially, is really impressive, and I hope you keep doing what
> you're doing for a long time, even if changes are folded in D1 with blind
> trust =)

Thanks. I figured that right now, the most useful thing I can do is to 
patch the compiler. So I've put everything else on hold.


More information about the Digitalmars-d-announce mailing list