# HG changeset patch # User Paul Boddie # Date 1383233460 -3600 # Node ID 33458599a1a14bd6a5d164fbfdb1819a126dae27 # Parent 8fff693519529c0021fb23b35bc2baa8cb7a1217 Added remarks about local namespaces and name usage observations. diff -r 8fff69351952 -r 33458599a1a1 docs/concepts.txt --- a/docs/concepts.txt Mon Oct 28 12:12:55 2013 +0100 +++ b/docs/concepts.txt Thu Oct 31 16:31:00 2013 +0100 @@ -24,6 +24,8 @@ * Class attributes are defined only within class statements. * Instance attributes are defined only by assignments to attributes of self or tentatively as references to attributes of self. + * Locals are effectively attributes of the local namespace and are not + accessible externally (and thus cannot support closures). These restrictions apply because such attributes are thus explicitly declared, permitting the use of tables (described below). Module and class attributes @@ -37,6 +39,13 @@ objects for those attributes under the assumption that they will not be changed. +Observations during initial program inspection populate namespaces in a +simplistic fashion. If a loop is active, definitions record that the value of +a name can be set potentially many times. In local namespaces, definitions are +also recorded using the mechanisms employed to track attribute usage, and such +observations may provide a more sophisticated view of the potential values of +local names. + See rejected.txt for complicating mechanisms which could be applied to mitigate the effects of these restrictions on optimisations.