I enclose 3 Referee reports on your paper. We would be pleased to accept it and could you please send me a new version before November 5 99 Please send a memo describing any suggestions of the referees that you did not address Ignore any aggressive remarks you don't think appropriate but please tell me. I trust you! Thank you for your help in writing and refereeing papers! Referee 1 *********************************************************** Subject: C442 JGSI Review The Java Memory Model is Fatally Flawed William Pugh a)Overall Recommendation Probably a significant paper, but I hope the author can expand on some of the points mentioned below. A summary of the organization and conclusions of the paper would be helpful (either in the introduction or conclusion). b)Words suitable for authors I suspect this paper raises important issues. Perhaps some of the points could be made in ways that would be clearer to a general audience. The abstract gives a very brief summary of the highlights of the paper. Section 1 reviews some basic properties of the Java Memory Model as it stands. Section 2 explains some apparently unintended features of the model, which make important compiler optimizations difficult. The example of section 2.1 seems simple and could probably be made clearer by adding a few more sentences (for example explaining the importance of the aliasing). Javasoft bug report #4242244 by Pugh contains a simple concrete program based on the example. It apparently detects violation of the Java specification in several major optimizing JVMs. Some words in the paper about this program would make the discussion more concrete to me. The example in Section 2.2 is more complicated. Again I think it needs more words. I suppose the constraint that is specially worrisome is that the read of `r.y' must precede the write of `p.x', even though there is no data dependence between the relevant assignments. But I can't see where the text actually states this. I wish the difficulties were stated more explicitly, and specifics of the situation could be compared with weaker models, such as coherence (mentioned earlier in the section). The author goes on to deduce that byte code reorderings are illegal. Again I would have liked more explanation. Section 3 discusses weak memory models. I wasn't sure whether the problems with weak memory models also present with the JMM, or whether the points in 3.1.1 actually arguments against weaker models? Section 4 discusses unsafe idioms with the standard Java Memory Model. I would have liked more explanation about the security issues connected with Strings being atomic and immutable (which apparently they aren't, really, with the current JMM). In section 5 I would have liked to have known who are the "group of people" discussing the safety guarantees. Referee 2 **************************************************************** C442: The Java Memory Model is Fatally Flawed The paper reveals a number of problems with the Java memory model. I appreciate very much author's insights into the issue. My only concern is with its presentation. Since it is being considered for journal publication, I would suggest the author present the idea in a self-contained way and refer to publications, instead of to informal conversations, as motivations. In paragraph 1 of Page 1, the author mentioned "Guy Steele was unaware that ... but after several days of discussions at OOPSLA98 agrees that it does". Since there's are no written record about this, it may not be a fair treatment. At least to some readers like me, this may not be good way to motivate the work. In paragraph 1 of Page 3, the author said: "In talking with a number of people at OOPSLA98, I found that most people were not aware of the implications for compilers of Coherence in the JMM". I cann't understand the point either. Originality, I believe, is what all research should have. Referee 3 ********************************************************************* Subject: C442 JGSI Review Title: The Java Memory Model is Fatally Flawed Author: William Pugh a) Recommendation: accept it b) Comments to Author This paper describes and discusses problems in the specification of the Java Memory Model and has been reviewed by the own designers of the language as pointed out in the paper by the author. I have no further coments. c) Comments to Committee I recommend acceptance. The paper has its value as it points out prolems in the specification of the Java language.