comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Forcing GNAT to use 32-bit load/store instructions on ARM?
Date: Tue, 8 Jul 2014 15:34:04 -0500
Date: 2014-07-08T15:34:04-05:00	[thread overview]
Message-ID: <lphkjt$s6a$1@loke.gir.dk> (raw)
In-Reply-To: lpgn76$u7h$1@dont-email.me

"Simon Clubley" <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote in 
message news:lpgn76$u7h$1@dont-email.me...
> On 2014-07-07, Randy Brukardt <randy@rrsoftware.com> wrote:
>>
>> Clearly, we need a partial aggregate syntax (it's the only way for an 
>> atomic
>> record write to make sense), and that needs to be clear that it includes
>> both a read and a write of the object for the purposes of volatile
>> variables. Probably someone should submit this problem to Ada-Comment for
>> study in the next version of Ada (whenever that might be).
>>
>
> What are the submission details for Ada-Comment ? (Searching for Ada
> Comments just points to links about using comments in Ada code.)

Others have answered this.

> What is the level of formality and problem detail required in the
> submission ?

Well, it's English, so there's no way to enforce anything. :-)

The expectation is that people report the problems they have, that are 
either hard or impossible to solve with Ada as it stands. A sufficient level 
of detail is needed so that we can understand the problem. It's not 
necessary to provide solutions (although few people can resist offering up 
their pet ideas).

> I also wonder if "Atomic" is the correct word here; perhaps something like
> "Non_Segmented_Access" would be a better attribute name when we
> _must_ access the register in units of the record size and don't really
> care about the Read-Modify-Write sequence itself being indivisible.

We discussed that years ago, that's why C.6(22/2) was added. And the answer 
was, yes, "Atomic" is the concept that we want to use for this. It's 
essentially the same idea. As far as the "Read-Modify-Write" sequence being 
indivisble, that definitely is *not* the purpose of Atomic. It just makes 
Read indivisible (and the same for Write, of course). To make 
"Read-Modify-Write" indivisible, you'd need a test-and-set instruction, 
which would require far more restrictions than Atomic does. (I don't see any 
way to make a general Read-Modify-Write to be indivisible on Windows or 
Linux, for instance, as that requires shutting off interrupts.)

I think the only reason that we'd consider adding yet another classification 
would be in case we were worried about compatibility (which certainly is 
possible) with the previous definition of Atomic.

                                                 Randy.


  parent reply	other threads:[~2014-07-08 20:34 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-30 22:11 Forcing GNAT to use 32-bit load/store instructions on ARM? daniel.dmk
2014-06-30 23:41 ` Jeffrey Carter
2014-07-01 12:06   ` Simon Clubley
2014-07-01 15:44     ` Niklas Holsti
2014-07-01 17:26       ` Simon Clubley
2014-07-01 17:18     ` Simon Wright
2014-07-01 19:43       ` Simon Wright
2014-07-01 17:28     ` Jeffrey Carter
2014-07-01  0:55 ` anon
2014-07-01  4:30 ` Niklas Holsti
2014-07-01  8:11 ` Dmitry A. Kazakov
2014-07-01 12:09   ` Simon Clubley
2014-07-01 12:20     ` Dmitry A. Kazakov
2014-07-01 17:00       ` Simon Clubley
2014-07-01 19:36         ` Dmitry A. Kazakov
2014-07-01 20:08           ` Simon Clubley
2014-07-02 22:24             ` Randy Brukardt
2014-07-06 20:40               ` MatthiasR
2014-07-07  0:25                 ` Simon Clubley
2014-07-07 22:38                 ` Randy Brukardt
2014-07-08  6:51                   ` Simon Wright
2014-07-10 11:47                     ` Simon Wright
2014-07-10 13:06                       ` Simon Clubley
2014-07-11 18:05                         ` Simon Wright
2014-07-11 20:22                           ` Simon Clubley
2014-07-08  8:50                   ` Brian Drummond
2014-07-08 12:12                   ` Simon Clubley
2014-07-08 13:26                     ` G.B.
2014-07-08 17:13                       ` Simon Clubley
2014-07-08 15:36                     ` Adam Beneschan
2014-07-08 15:40                       ` Adam Beneschan
2014-07-08 20:34                     ` Randy Brukardt [this message]
2014-07-09  7:31                       ` Dmitry A. Kazakov
2014-07-10  0:11                         ` Simon Clubley
2014-07-20 11:35                   ` MatthiasR
2014-07-20 15:49                     ` Simon Clubley
2014-07-26 11:05                       ` MatthiasR
2014-08-10 11:20                         ` MatthiasR
2014-07-01 12:03 ` Simon Clubley
2014-07-01 19:52   ` daniel.dmk
2014-07-01 20:40     ` Simon Clubley
2014-07-01 20:55       ` Simon Clubley
2014-07-01 21:01       ` Niklas Holsti
2014-07-01 21:20         ` Simon Clubley
2014-07-01 22:38           ` Niklas Holsti
2014-07-02 16:49             ` Simon Clubley
2014-07-01 21:55         ` daniel.dmk
2014-07-02  7:30     ` Simon Wright
2014-07-02 18:52       ` daniel.dmk
2014-07-04 23:51       ` Niklas Holsti
2014-07-05  0:18         ` Niklas Holsti
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox