[Skip]
In the face of exec statements or calls to execfile can't the compiler just generate the usual LOAD_NAME fallback instead of the new- fangled LOAD_GLOBAL opcode?
[Tim]
Note that exec doesn't have to be passed a string: you can pass it a compiled code object just as well. The compiler can't guess how a code object will be used at the time it's compiled. In theory there would be nothing to stop exec from rewriting the bytecode in a compiled code object passed to it, but I doubt we could get Guido to buy that trick until he first buys rewriting bytecode to set debugger breakpoints <wink>.
Arg. So much for that idea. (Although I think the mutable bytecode idea *is* the right idea for setting breakpoints after all.) --Guido van Rossum (home page: http://www.python.org/~guido/)