バイトコード比較

$ cat testdata-minipy/003.py 
def foo():
  for i in range(10):
    print i

$ ./vmpy testdata-minipy/003.py -d
   0: VM_GDEFUN( foo )
   1: VM_GOTO( 17 )
   2: VM_IMMVAL_NUM( 0 )
   3: VM_LSET( 0 )
   4: VM_IMMVAL_NUM( 10 )
   5: VM_LSET( 1 )
   6: VM_LREF_PUSH( 0 )
   7: VM_GOTO( 10 )
   8: VM_LINC( 0 )
   9: VM_LREF_PUSH( 0 )
  10: VM_LREF( 1 )
  11: VM_NUMLT2()
  12: VM_GOTOIFNOT( 16 )
  13: VM_LREF( 0 )
  14: VM_PRINT()
  15: VM_GOTO( 8 )
  16: VM_RET()
>>> def foo():
...   for i in range(10):
...     print i
... 
>>> dis.dis(foo)
  2           0 SETUP_LOOP              25 (to 28)
              3 LOAD_GLOBAL              0 (range)
              6 LOAD_CONST               1 (10)
              9 CALL_FUNCTION            1
             12 GET_ITER            
        >>   13 FOR_ITER                11 (to 27)
             16 STORE_FAST               0 (i)

  3          19 LOAD_FAST                0 (i)
             22 PRINT_ITEM          
             23 PRINT_NEWLINE       
             24 JUMP_ABSOLUTE           13
        >>   27 POP_BLOCK           
        >>   28 LOAD_CONST               0 (None)
             31 RETURN_VALUE