ARM bare-metal programming in D (cont) - volatile
Timo Sintonen
t.sintonen at luukku.com
Fri Oct 25 12:16:29 PDT 2013
On Friday, 25 October 2013 at 18:12:40 UTC, Johannes Pfau wrote:
> Am Fri, 25 Oct 2013 17:20:23 +0200
> schrieb "Timo Sintonen" <t.sintonen at luukku.com>:
>> It seems that it is two different things here. As far as I
>> understand, sharing means something like 'somebody may change
>> my data' and volatility is something like 'I have to know
>> immediately if the data is changed'. It has become obvious
>> that these two are not easy to fit together and make a working
>> model.
>>
>> The original question in this thread was to have a proper way
>> to access hardware registers. So far, even the top people have
>> offered only workarounds. I wonder how long D can be marketed
>> as system language if it does not have a defined and reliable
>> way to access system hardware.
>>
>> Register access occurs often in time critical places like
>> interrupt routines. A library routine or external function is
>> not a choice. Whatever the feature is, it has to be built in
>> the language. I don't care if it is related to variables,
>> blocks or files as long as I do not have to put these files in
>> a separate directory like I do now.
>>
>> I would like to hear more what would be the options. Then we
>> could make a decision what is the right way to go.
>
> What's wrong with the solution Iain mentioned, i.e the way
> shared
> is implemented in GDC?
>
> http://forum.dlang.org/thread/bifrvifzrhgocrejepvc@forum.dlang.org?page=4#post-mailman.2475.1382646532.1719.digitalmars-d:40puremagic.com
> http://forum.dlang.org/thread/bifrvifzrhgocrejepvc@forum.dlang.org?page=4#post-mailman.2480.1382655175.1719.digitalmars-d:40puremagic.com
There is nothing wrong if it works.
When I last time discussed about this with you and Iain, I do not
remember if this was mentioned. I have been on belief that gdc
has no solution.
The second thing is, as I mentioned, that register access is such
an important feature in system language that it should be in
language specs.
A quick search did not bring any documentation about shared in
general and how gdc version is different. TDPL mentions only that
shared guarantees the order of operations but does not mention
anything about volatility.
Can anybody point to any documentation?
More information about the Digitalmars-d
mailing list