As we've been pushing towards completion of the spec, Jeremy and I have
been
looking at ways to make the semantics of final fields more
understandable. The previously
presentation was rather difficult to understand, and done in a style
quite different from
the rest of the semantics.
I think we have found a way to present/describe the semantics that is
much better, shorter
and more in keeping with the rest of the semantics. We've put up a
document that contains
a one page description of the semantics, along with two pages for
working an example,
at:
http://www.cs.umd.edu/~pugh/java/memoryModel/may-12.pdf
Please take a look at it.
Except for some minor and well understood differences in corner cases,
the semantics
are identical to the previous semantics for final fields. The
difference in the presentation is that
rather than being based on sets, it is based on partial orders. Those
of you with long
memories will remember that at one point we used sets for
happens-before, and changed
over to using partial orders. This new presentation of final fields is
just catching them up
with the way the rest of the spec changed.
If we are going to switch to this new presentation of final field
semantics, we need to
decide so in the next few days. Please try to take a look at it. If you
were previously
intimidated by the final field semantics, please give it another try.
Of course, significant changes in the presentation at this late state
are undesirable.
But we think the benefit gained from having a more understanding final
field semantics
makes the change worthwhile
Bill
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:01:06 EDT