JavaMemoryModel: JSR-133 status, schedule and process

From: Bill Pugh (pugh@cs.umd.edu)
Date: Fri Aug 01 2003 - 00:17:46 EDT


I talked with Tim Lindholm and Gilad Bracha. For a few giddy moments,
we though that I had the schedule wrong and that we might actually
have another month to enter community review. Alas, Gilad had the
schedule wrong and our hopes were soon dashed.

=== JCP Process ===

First, to explain the JCP process. Community review means that the
spec is being reviewed by members of the JCP, although in practice it
often means a wider review by the Java community. It is best thought
of as an alpha release.

We are allowed to make changes after the community review. So long as
none of the changes after the community review will require that
existing JVM implementations be changed, it is almost certain that
nobody will object.

After community review, we go into "public review". Public review is
somewhat misnamed, because it is common for the public to have had a
chance to review the document earlier than during the public review.
At any rate, think of "public review" as a beta release.

After public review, we can make further changes. However, at this
point we would be hoping to have minimal changes that clearly do not
impact the semantics of the spec.

=== Schedule ===

Community review needs to be _completed_ by September 8th in order
for a JSR to make it into Tiger, aka Java 1.5. Tim is going to check
on exactly when we need to ship a document to JCP to meet that
deadline. Sometime next week, almost certainly in the
Tuesday-Thursday window. Tim will get back to us tomorrow on a more
detailed timeline.

=== What we need ===

Both Tim and Gilad were firmly of the option that we did not need a
final, formal semantics for community review.

We do need to convey a good sense of the behavior we intend. In
particular, I think we need to reach agreement on something like the
general rules and specific causality examples I posted to the list on
Tuesday. We should try to come up with additional examples to clarify
the issues. We could even have "don't care" examples in the alpha
release, but I think we need to eliminate all of the "don't care"
examples by the beta release. I would prefer to minimize or eliminate
don't care examples in the alpha release, since it just postpones a
decision. But, if we come up with a truly weird and marginal example,
perhaps asking in the alpha release if anyone cares about it is the
right solution.

As I mentioned in my previous email, I'm going to suggest that we
allow causal examples 1-3 and 6 (Sarita's smoking gun), and prohibit
4-5. I think the only one there is any question about is 5. If anyone
wants to argue for allowing 5, please speak up.

Although this gives us an incredibly tight schedule, I am confident
we can accomplish it if no substantial new issues or arguments come
up. As we work out the differences between the various models, I hope
things will clarify as to which models give us the behavior we desire.

Many thanks to everyone for their hard work recently. I'm sorry (for
myself as well as for you) that all this work hit everyone at the
last moment, but we do what we must.

Bill
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel



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