dmd 2.068, 2.069, 2.0xx Evil Plan going forward

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Mon Jul 20 12:44:52 PDT 2015


On Monday, 20 July 2015 at 04:02:04 UTC, Walter Bright wrote:
> 2.068 - resolve remaining regressions and release
>
> 2.069 - translate to D. No new features, no refactoring. Only 
> regression fixes and what's already in HEAD. This should give 
> us a solid baseline. It also means that open PRs that address 
> other issues will not be pulled for 2.069.
>
> Perhaps we should name this 2.100, to signify such a milestone.
>
> 2.101+ -
> 1. Take advantage of D features to improve quality.
> 2. Go to full lazy semantic analysis of imports, rather than 
> the current "analyze them all"
> 3. Rethink what "speculative instantiation" of templates means 
> so we can have a coherent process of compiling them.
> 4. Redo CTFE interpreter so it only rarely needs to allocate 
> memory. This was already done for constant folding, but now 
> it's time for the rest of the interpreter.
> 5. Get rid of reliance on the global error count. This has been 
> mostly done, it just hast to be finished.
> 6. Convert the back end to D as well.

It'll be fantastic to get a lot of that done. The CTFE 
improvements in particular are likely to be huge. It'll be 
interesting to see how much faster some of the compiler 
improvements will get done once we don't have to worry about 
maintaining it in C++ anymore.

One big item that we've never quite managed to get far with is 
removing opEquals, opCmp, toString, and toHash from Object:

https://issues.dlang.org/show_bug.cgi?id=9769
https://issues.dlang.org/show_bug.cgi?id=9770
https://issues.dlang.org/show_bug.cgi?id=9771
https://issues.dlang.org/show_bug.cgi?id=9772

Without that, attributes on classes are kind of borked - 
particularly with regards to const. As it is, druntime is 
violating the type system by casting away const to compare const 
Objects.

Making that work without breaking code is going to require some 
changes in both dmd and druntime (probably including the work on 
AAs that Martin's been working on), and it'll likely be fairly 
interesting to pull off, but I think that it's pretty clear that 
we need to find a way to do it if we don't want classes to be too 
restrictive with regards to attributes - both with regards to 
which ones are permitted and which ones are required.

- Jonathan M Davis


More information about the Digitalmars-d mailing list