[Python-Dev] Making builtins more efficient

Raymond Hettinger raymond.hettinger at verizon.net
Thu Mar 9 17:51:16 CET 2006


[Steven Elliott]
> As you probably know each access of a builtin requires two hash table
> lookups.  First, the builtin is not found in the list of globals.  It is
> then found in the list of builtins.

If someone really cared about the double lookup, they could flatten a level by 
starting their modules with:

   from __builtin__ import *

However, we don't see people writing this kind of code.  That could mean that 
the double lookup hasn't been a big concern.


> Why not have a means of referencing the default builtins with some sort
> of index the way the LOAD_FAST op code currently works?

FWIW, there was a PEP proposing a roughly similar idea, but the PEP encountered 
a great deal of resistance:

  http://www.python.org/doc/peps/pep-0329/

When it comes time to write your PEP, it would helpful to highlight how it 
differs from PEP 329 (i.e. implemented through the compiler rather than as a 
bytecode hack, etc.).



> Perhaps what I'm suggesting isn't feasible for reasons that have already
> been discussed.  But it seems like it should be possible to make "while
> True" as efficient as "while 1".

That is going to be difficult as long as it is legal to write:

    True = 0


Raymond 



More information about the Python-Dev mailing list