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