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?
