[Python-Dev] Fast access to __builtins__

Raymond Hettinger python@rcn.com
Thu, 27 Mar 2003 19:35:20 -0500

[Jack Diederich]
> The behavior of a program under -O should be as similar as possible to normal
> operation.  This would break that for some programs.
> A per-file pragma directive would work.

[Skip Montanero]
> This is clearly a semantic change, so
> I'd like to see a different command line flag control this behavior

[M.-A. Lemburg]
> Using the -O for this is not a working possibility. -OO
> is reserved for optimizations which can change semantics,
> but even there, I'd rather like a per-module switch than
> a command line switch.

That makes good sense.  
Are you guys thinking of something like this:

__fastbuiltins__ = True  # optimize all subsequent defs in the module

[Jack Diederich]
> The downside of a pragma module or
> keyword would be what people try to add to it later.

Ideally, enabling the pragma would also trigger warnings when the
module shadows a builtin.

[M.-A. Lemburg]
> BTW, why not have a new opcode for symbols in the
> builtins and then only tweak the opcode implementation
> instead of having the compiler generate different code ?

Either way results in changing one opcode/oparg pair, so I
don't see how having a new opcode helps.  At some point,
the name has to be looked-up and a reference to it stored.
Afterwards, LOAD_CONST is all that is needed to fetch
the reference.

Raymond Hettinger