DIP62: Volatile type qualifier for unoptimizable variables in embedded programming
Johannes Pfau via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jul 15 09:25:52 PDT 2014
You may have seen Mike's talk about D on embedded systems and were
surprised about Iain's comment that using 'shared' as a replacement for
'volatile' is actually only possible because of a bug in gdc.
DIP62 describes how to solve this problem and make embedded programming
a first-class citizen in D:
http://wiki.dlang.org/DIP62
This is the only language change necessary to make D really perfect for
embedded programming, so it's important that we fix this.
There are some more implementation issues, but these aren't language
problems and easy to fix.
The DIP provides detailed descriptions and rationales so I won't
copy/paste this information into this post. But please:
* Read the complete DIP before commenting. I'd took a long time to
write, so it's OK if it takes some time to read ;-) Also your question
might already be answered.
* Although it's explained in the DIP in detail, I must mention this
here again: We need _first-class_ support for embedded programming in
D. Workarounds might be available (peek/poke, inline asm) but it will
be obvious to most C programmers that C has got the better solution
with the volatile qualifier. D enthusiasts might be happy if they can
use workarounds to make D work on microcontrollers. But if we want to
appeal to outsiders we can't confront them with obvious workarounds
and hacks as the first thing they see in D. And if they think embedded
programming is a second class citizen in D, why should they use it
at all?
More information about the Digitalmars-d
mailing list