[clpython-devel] Python just got a bit less dynamic

Willem Broekema metawilm at gmail.com
Fri Jun 13 09:37:20 UTC 2008


Guido just limited the dynamicness of Python in a very sensible way,
by declaring that the attributes of objects can only be regular
strings. For users this does not change much, but for implementors
this has significant benefits, so I like this limitation a lot.

The implementation of attributes in CLPython and other implementations
can now be cleaned up and made more efficient by removing hairy corner
cases. CLPython can now always represent attributes by Lisp symbols.
Also as a result, the five known failures in the CLPython test suite,
which tested some hairy corner cases, are now defined to not be
failures at all.

The decisions:

 - Using non-string keys is undefined behavior;
   non-empty strings that are not valid as identifier according to the
grammar are allowed:
   http://mail.python.org/pipermail/python-dev/2008-June/080309.html

 - String subclasses may be normalized to regular strings:
   http://mail.python.org/pipermail/python-dev/2008-June/080312.html

 - The restriction applies to both class dicts and instance dicts:
   http://mail.python.org/pipermail/python-dev/2008-June/080313.html

 - Frameworks currently using non-string attributes should change
their behavior;
   http://mail.python.org/pipermail/python-dev/2008-June/080319.html

- Willem



More information about the Clpython-devel mailing list