I just got back from a 2 day trip to Sun East. A quick trip report:
I sat down with Guy Steele and went problems with the existing memory
model; in particular my claim that the JMM is stronger than
Coherence. Guy didn't find
any problems with my analysis, agrees that the current JMM has a
serious flaw, didn't see anyway to fix it, and didn't think he could
be confident in any patched version of the current JMM (slightly
putting words into Guy's mouth).
No surprises, but I feel more comfortable now that I've gone over the
problems at length with Guy.
So I think we can declare that the existing JMM is dead, and that it
will need to be replaced, not patched. And I can get rid of my slides
that try to explain the existing JMM.
Anybody trying to understand the current JMM or do research based on
it, your work will be of historical interest only.
I talked about the problems with implementing Java under a relaxed
memory model, and about what guarantees we wanted to make. I got the
* Some people said "That is going to be impossible to implement efficiently
on relaxed memory machines. How can you even think of making that
* Some people said "Not having that would be like not guaranteeing
that reads/writes of integers are atomic. How can you even think of
_not_ making that safety guarantee?"
Another interesting comment is a confirmation of something I've heard
from a number of other people: that all Sparc systems run under TSO
(Total store order); far too much of Sun's software breaks if you use
a more relaxed memory model.
Also see the other note I'm sending out, on why class initialization
safety is hard.
This is the JavaMemoryModel mailing list, managed by Majordomo 1.94.4.
To send a message to the list, email JavaMemoryModel@cs.umd.edu
To send a request to the list, email email@example.com and put
your request in the body of the message (use the request "help" for help).
For more information, visit http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:16 EDT