Jeremy, Sarita and I have managed to put together a new unified proposal
for the Java Memory Model that manages to combine many of the features
of the earlier M/P and SC- proposal. Doug Lea also provided a lot
of important feedback.
Nothing really changes in terms of the behaviors we have previously
discussed. This proposal just about a way of formalizing the behaviors
we've agreed on for some time.
Obviously, we are not thrilled about introducing a new model so close
deadline. But we weren't satisfied with the existing proposals, and the
new proposal seems clearly superior, both in terms of simplicity and
to previous proposals.
We've been working very hard on this, and we are now satisfied enough
it that we would like feedback from the JMM and JSR-133 community.
we are feeling pretty optimistic about this model. As Sarita noted, some
of the important proofs are "absurdly, uncomfortably too simple".
We would also like to encourage people to aggressively "Tiger Team" it,
to break it. So I am personally offering a $100 reward to the first
find a substantial flaw in the model. That doesn't include things like
that needs to be fixed, or something that is unclear or presently
Instead, a flaw would be a behavior allowed by existing and reasonable
and processor optimizations but prohibited by the model, or a behavior
is allowed by the model that needs to be prohibited for clear and
Information about the new model is described on a web page:
At the moment, the documents up there are:
* An overview of the model, including a one page description of the
and descriptions of some behaviors allowed and disallowed by the
* Worked examples of applying the new model to causality test cases
* Proofs that standard compiler reordering transformations are legal,
and that correctly synchronized programs have only sequentially
Sarita has also been working on a proof that an implementation of her
model obeys the new memory model, and I'll add a link to that when it
I should mention that we are still considering different ways of
material that are provably equivalent, but may be easier to understand.
now, we want feedback as to whether our new model has the correct
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:59 EDT