1.1 --- a/docs/assignment.txt Sun May 24 00:21:41 2009 +0200
1.2 +++ b/docs/assignment.txt Sun May 24 02:16:33 2009 +0200
1.3 @@ -37,8 +37,10 @@
1.4 local preserved StoreName
1.5 global (module) preserved StoreAddress StoreAttrIndex
1.6 instance preserved StoreAttr StoreAttrIndex
1.7 + class -> class StoreAddressContext
1.8
1.9 - Class assignments are not permitted
1.10 + Class assignments are not permitted except during initialisation and hence
1.11 + employ no unoptimised instruction
1.12
1.13 Access types:
1.14
1.15 @@ -47,7 +49,7 @@
1.16 local preserved LoadName
1.17 global (module) preserved LoadAddress LoadAttrIndex
1.18 class preserved LoadAddress LoadAttrIndex
1.19 - class via instance overridden LoadAddressContext(Cond) LoadAttrIndexContext(Cond)
1.20 + class via instance -> instance LoadAddressContext(Cond) LoadAttrIndexContext(Cond)
1.21 instance preserved LoadAttr LoadAttrIndex
1.22
1.23 Access to a namespace may not preserve the stored context
1.24 @@ -56,7 +58,7 @@
1.25
1.26 Access to stored value with... Effect on context
1.27 ------------------------------ -----------------
1.28 - compatible class as context overridden
1.29 + compatible class as context -> instance
1.30 incompatible class as context preserved
1.31 null context preserved
1.32 other context (instance) preserved
1.33 @@ -66,12 +68,12 @@
1.34 Class Class attribute Context of attribute Instruction
1.35 ----- --------------- -------------------- -----------
1.36 known constant preserved LoadAddress
1.37 - known constant overridden LoadAddressContext
1.38 + known constant -> instance LoadAddressContext
1.39 known not constant preserved LoadAddress (attribute may always be preserved)
1.40 - known not constant overridden LoadAddressContext (attribute may always be overridden)
1.41 + known not constant -> instance LoadAddressContext (attribute may always be overridden)
1.42 known not constant not known LoadAddressContextCond (perform context check)
1.43 not known not known preserved LoadAttrIndex (attribute may have preserved context in all classes)
1.44 - not known not known overridden LoadAttrIndexContext (attribute may have overridden context in all classes)
1.45 + not known not known -> instance LoadAttrIndexContext (attribute may have overridden context in all classes)
1.46 not known not known not known LoadAttrIndexContextCond (perform context check for class attribute access)
1.47
1.48 Since the object table encodes sufficient information (an instance must be