1.1 --- a/docs/rationale.txt Mon Jun 16 01:56:46 2008 +0200
1.2 +++ b/docs/rationale.txt Sat Jun 21 17:23:23 2008 +0200
1.3 @@ -7,8 +7,9 @@
1.4 Motivations
1.5
1.6 * Run Python programs in "small" devices
1.7 - * Small programs
1.8 - * Few executed instructions
1.9 + * Small programs plus few executed instructions
1.10 + * Avoid expensive library code
1.11 + (small footprint, lots of executed instructions)
1.12
1.13 Python's flexibility comes at a cost
1.14
1.15 @@ -17,6 +18,13 @@
1.16 * Difficult to predict eventual behaviour before execution
1.17 * Difficult to generate optimisations when compiling
1.18
1.19 +Not all things are dynamic/equal in Python
1.20 +
1.21 + * Locals, modules and classes are special in some way
1.22 + * Locals don't tend to change unilaterally
1.23 + * Modules usually retain their identity
1.24 + * Classes differ from objects (despite metaclasses)
1.25 +
1.26 Attribute access
1.27
1.28 * Must do a full lookup every time:
1.29 @@ -34,7 +42,7 @@
1.30
1.31 Consequences of revised attribute access
1.32
1.33 - * Cannot extend the range of attributes on objects
1.34 + * Cannot extend the range of attributes on objects of existing classes
1.35 * Further optimisations:
1.36 * Restriction: attempt to control modification of attributes
1.37 * Result: further optimisation of accesses