1.1 --- a/docs/concepts.txt Tue Jun 02 20:17:59 2009 +0200
1.2 +++ b/docs/concepts.txt Wed Jun 03 00:48:57 2009 +0200
1.3 @@ -67,21 +67,47 @@
1.4
1.5 See invocation.txt for details.
1.6
1.7 +Context Value Types
1.8 +-------------------
1.9 +
1.10 +The following types of context value exist:
1.11 +
1.12 + Type Usage Transformations
1.13 + ---- ----- ---------------
1.14 +
1.15 + Replaceable With functions (not methods) May be replaced with an
1.16 + instance or a class when a
1.17 + value is stored on an
1.18 + instance or class
1.19 +
1.20 + Placeholder With classes May not be replaced
1.21 +
1.22 + Instance With instances (and constants) May not be replaced
1.23 + or functions as methods
1.24 +
1.25 + Class With functions as methods May be replaced when a
1.26 + value is loaded from a
1.27 + class attribute via an
1.28 + instance
1.29 +
1.30 Contexts in Acquired Values
1.31 ---------------------------
1.32
1.33 -There are three classes of instructions which provide values:
1.34 +There are four classes of instructions which provide values:
1.35
1.36 Instruction Purpose Context Operations
1.37 ----------- ------- ------------------
1.38
1.39 -1) LoadConst Load class, module, Use loaded object with itself
1.40 - constant as context
1.41 +1) LoadConst Load module, constant Use loaded object with itself
1.42 + as context
1.43
1.44 -2) LoadFunction Load function Combine null context with
1.45 - loaded object
1.46 +2) LoadFunction Load function Combine replaceable context
1.47 + with loaded object
1.48
1.49 -3) LoadAddress* Load attribute from Preserve or override stored
1.50 +3) LoadClass Load class Combine placeholder context
1.51 + with loaded object
1.52 +
1.53 +4) LoadAddress* Load attribute from Preserve or override stored
1.54 LoadAttr* class, module, context (as described in
1.55 instance assignment.txt)
1.56
1.57 @@ -118,9 +144,9 @@
1.58 assignments to classes
1.59
1.60 2) StoreAddressContext Store attribute in a Override context if appropriate;
1.61 - known object if the value has a null context,
1.62 - permit the target to take
1.63 - ownership of the value
1.64 + known object if the value has a replaceable
1.65 + context, permit the target to
1.66 + take ownership of the value
1.67
1.68 See assignment.txt for details.
1.69