On 6/21/05, Magnus Lycka <[EMAIL PROTECTED]> wrote: > I don't know anything about the Python compiler internals, > but it doesn't seem very hard to identify simple literals following > while and if, and to skip the runtime test. (Perhaps it's done > already?)
True doesn't seem to be a literal, it is looked up by name and can be rebound to, say, 0 anytime: >>> import dis >>> o = compile('while True: pass', '<string>', 'exec') >>> dis.dis(o) 1 0 SETUP_LOOP 12 (to 15) >> 3 LOAD_NAME 0 (True) 6 JUMP_IF_FALSE 4 (to 13) 9 POP_TOP 10 JUMP_ABSOLUTE 3 ... OTOH, >>> p = compile('while 1: pass', '<string>', 'exec') >>> dis.dis(p) 1 0 SETUP_LOOP 5 (to 8) >> 3 JUMP_ABSOLUTE 3 ... - kv -- http://mail.python.org/mailman/listinfo/python-list