On 14-11-2012 21:00, Sean Kelly wrote:
On Nov 14, 2012, at 6:16 AM, Andrei Alexandrescu 
<[email protected]> wrote:

On 11/14/12 1:20 AM, Walter Bright wrote:
On 11/13/2012 11:37 PM, Jacob Carlborg wrote:
If the compiler should/does not add memory barriers, then is there a
reason for
having it built into the language? Can a library solution be enough?

Memory barriers can certainly be added using library functions.

The compiler must understand the semantics of barriers such as e.g. it doesn't 
hoist code above an acquire barrier or below a release barrier.

That was the point of the now deprecated "volatile" statement.  I still don't 
entirely understand why it was deprecated.


The volatile statement was too general. All relevant compiler back ends today only know of two kinds of volatile operations: Loads and stores. Volatile statements couldn't ever be properly implemented in GDC and LDC for example.

See also: http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP20

--
Alex Rønne Petersen
[email protected]
http://lycus.org

Reply via email to