Ola Fosheim Grøstad:

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).

This sounds more ambitious than the hypothetical D3 language :-)

Modular arithmetics is handy, when you want it.

I don't understand enough some of your points, so you should popularize better your ideas :-)

Bye,
bearophile

Reply via email to