> From: owner-javamemorymodel@cs.umd.edu
> [mailto:owner-javamemorymodel@cs.umd.edu]On Behalf Of Boehm, Hans
> But while we're at it, can someone summarize how we got here? I'm having
> trouble reconstructing the big picture from reading through recent
messages.
My feelings exactly. Being one of the non-compiler folk out here, I for one
am finding the discussions very bemusing. I can't see how we can possibly
come up with an itemised checklist for allowed and disallowed optimisations.
My view of things is perhaps too simplistic but I thought that the memory
model basically established correctness rules for correct use of
synchronized statements, volatiles and final fields, with some safety rules
thrown in to avoid "very bad things" in incorrectly synchronised programs.
As long as those rules aren't broken a compiler is free to do anything
(within the normal rules of maintaining a "correct" execution). The examples
being used all seem to deal with what could happen if unsynchronized access
occurs without use of final or volatile. Surely in these cases the compiler
has free reign to ignore potential concurrent interactions.
Did I miss something?
David Holmes
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:35 EDT