Re: JavaMemoryModel: New Unified JMM Description

From: Jerry Schwarz (
Date: Tue Apr 13 2004 - 00:01:09 EDT

I finally had a chance to look at this in some detail and there is something that I think must be wrong.

Specifically the rules for committing actions include the following (apologies for ASCII notation)

1. Ci is a subset of Ai
6. For any read r in Ai - C(i-1) we have Wi(r) happens-before r
These imply that for any r in Ci - C(i-1) there will need to be a happens-before relationship between the read and the write that it sees.

This is obviously not intended so either (1) or (6) is misstated. My hypothises is that 6 is supposed to apply only to volatile reads, but I'm not terribly confident of that.

At 12:38 PM 4/5/2004, Jeremy Manson wrote:
Hi folks,

After much consultation from a lot of you, Bill, Sarita and I have put together a new description of the memory model.  It is different from, but equivalent to, the last description.  We feel that this one is cleaner, and probably easier to understand.

Victor Luchangco deserves particular credit for his input; his formalization of our model heavily influenced our new document.

As far as the semantics go, even after a great deal of scrutiny and email back-and-forth, no one was able to take Bill up on his $100 bounty, so we are fairly confident in the new model.  There are a couple of tweaks to our treatment of one or two corner cases, but they do not make a substantive difference to the model.

Information about the new description is on the same web page:

JavaMemoryModel mailing list -
------------------------------- JavaMemoryModel mailing list -

This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:01:03 EDT