1.1 --- a/docs/structures.txt Mon Feb 09 01:09:42 2009 +0100
1.2 +++ b/docs/structures.txt Fri Feb 20 01:24:14 2009 +0100
1.3 @@ -73,34 +73,31 @@
1.4
1.5 LoadAddress Load attribute from Classes, functions and modules
1.6 known object cause the loaded attribute to be
1.7 - retrieved unchanged; whereas
1.8 - constants (representing instances)
1.9 + (typically classes and retrieved unchanged; whereas
1.10 + modules) constants (representing instances)
1.11 cause the constant to override the
1.12 attribute's own context (since all
1.13 attributes should belong to the
1.14 constant's class hierarchy)
1.15
1.16 - LoadAddressContext Override loaded context with a
1.17 - predetermined object (provided
1.18 - that the object and context are
1.19 - compatible, which can be tested at
1.20 + LoadAddressContext Load attribute Override loaded context with a
1.21 + from known object predetermined object (provided
1.22 + (typically classes) that the object and context are
1.23 + for an instance compatible, which can be tested at
1.24 compile-time)
1.25
1.26 - LoadAttr Load attribute from Attributes with null contexts or
1.27 - instance contexts compatible with the
1.28 - instance cause loaded attributes
1.29 - to combine the instance as context
1.30 - with the object from the
1.31 - attribute; other attributes have
1.32 - their context preserved
1.33 + LoadAttr Load attribute from Contexts are preserved (since only
1.34 + instance values stored on instances can be
1.35 + accessed in this way, and their
1.36 + contexts would never be overridden
1.37 + upon access
1.38
1.39 - LoadAttrIndex Load attribute from Functions and modules as unknown
1.40 - object the unknown object accessor cause
1.41 - the loaded attribute to be
1.42 - retrieved unchanged; classes and
1.43 - instances cause the LoadAttr rules
1.44 - to apply (class compatibility
1.45 - applies)
1.46 + LoadAttrIndex Load attribute from Classes, functions and modules as
1.47 + object (can be the unknown object accessor cause
1.48 + classes, modules, the loaded attribute to be
1.49 + instances...) retrieved unchanged; instances
1.50 + cause the LoadAttr rules to apply
1.51 + (class compatibility applies)
1.52
1.53 A certain amount of run-time testing might be required for both LoadAttr and
1.54 LoadAttrIndex instructions. However, with certain restrictions in place around
1.55 @@ -152,6 +149,8 @@
1.56 necessary in order to prevent
1.57 assignments to classes
1.58
1.59 +Note that contexts are never changed in the stored value: they are preserved.
1.60 +
1.61 Objects
1.62 -------
1.63