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