What's missing to make D2 feature complete?

via Digitalmars-d digitalmars-d at puremagic.com
Sat Dec 20 12:14:20 PST 2014


On Saturday, 20 December 2014 at 17:40:06 UTC, Martin Nowak wrote:
> Just wondering what the general sentiment is.

I think the main problem is what is there already, which prevents 
more sensible performance features from being added and also is 
at odds with ensuring correctness.

By priority:

1. A well thought out ownership system to replace GC with 
compiler protocols/mechanisms that makes good static analysis 
possible and pointers alias free.  It should be designed before 
"scope" is added and a GC-free runtime should be available.

2. Redesign features and libraries to better support AVX 
auto-vectorization as well as explicit AVX programming.

3. Streamlined syntax.

4. Fast compiler-generated allocators with pre-initialization for 
class instancing (get rid off emplace). Profiling based.

5. Monotonic integers (get rid of modular arithmetics) with range 
constraints.

6. Constraints/logic based programming for templates

7. Either explict virtual or de-virtualizing class functions 
(whole program optimization).

8. Clean up the function signatures: ref, in, out, inout and get 
rid of call-by-name lazy which has been known to be a bug 
inducing feature since Algol60. There is a reason for why other 
languages avoid it.

9. Local precise GC with explicit collection for catching cycles 
in graph data-structures.

10. An alternative to try-catch exceptions that enforce 
error-checking without a performance penalty. E.g. separate error 
tracking on returns or "transaction style" exceptions (jump to 
root and free all resources on failure).


More information about the Digitalmars-d mailing list