[Python-Dev] peps 329, 266, 267

Phillip J. Eby pje at telecommunity.com
Wed Apr 21 17:04:43 EDT 2004

At 02:59 PM 4/21/04 -0500, Skip Montanaro wrote:

>     Jim> If you really want to track changes to builtin, it is still faster
>     Jim> to echo builtin changes across each module than it would be to
>     Jim> track every name's referrers in every module (as in PEP 266.)
>This is an interesting idea but still has a problem (which I think can be
>worked around).  Most python apps will rarely create module-level shadows of
>builtins, however if they do you have to recognize that fact when
>propagating new values out to the modules.

Please note that:

1. None of this is needed in order to optimize builtins.  Names that are 
unambiguously builtins can and should be optimized at compile time.  Names 
that are ambiguous can use the existing semantics, and nothing further need 
be done.

2. Modifying builtins is a hack, that needs to be supported for backward 
compatibility, but can and should disappear in 3.0.

3. Having official rules for a Python compiler to decide whether a name 
should be considered builtin or global is much more broadly useful than 
having a trick to speed up CPython.  Several projects could make use of 
this, including Pyrex, Jython, PyPy, and IronPython at the least.

More information about the Python-Dev mailing list