Johannes Pfau:

Well as described in the DIP it works just like shared from an
implementation point of view, so I doesn't add much complexity in the compiler / type system.

I am reading blogs about compiler bugs, and I see that the implementation of volatile is the buggiest part of GCC/Clang (and the Intel and Microsoft compilers). Despite numerous bug fixes, it's still a stubbornly buggy part. So it can't be as simple to implement correctly as you say. volatile fights against the optimization stages all the time. And I recognize that Walter has a significant experience on this topic, perhaps higher than yours.


This just shows the priorities of the project leads:
Desktop apps matter, we add @nogc, c++ namespaces, shared, immutable,
const, -cov, ...
but for embedded systems we won't even add one qualifier.

Having priorities is not something to be ashamed of. D has a GC, works only on 32+ bits, and several of its features are not meant for embedded systems. Even if you can restrict it for such restricted memory and CPU usages, D is not designed primarily for them.

Bye,
bearophile

Reply via email to