1. 25 Feb, 2009 5 commits
    • Tarek Ziadé's avatar
      Merged revisions 69976 via svnmerge from · 0f31e6db
      Tarek Ziadé authored
      svn+ssh://pythondev@svn.python.org/python/trunk
      
      ........
        r69976 | tarek.ziade | 2009-02-25 23:29:27 +0100 (Wed, 25 Feb 2009) | 1 line
      
        Fixed #5316 : test failure in test_site
      ........
      0f31e6db
    • Mark Dickinson's avatar
      Merged revisions 69974 via svnmerge from · 134708ab
      Mark Dickinson authored
      svn+ssh://pythondev@svn.python.org/python/trunk
      
      ........
        r69974 | mark.dickinson | 2009-02-25 20:29:50 +0000 (Wed, 25 Feb 2009) | 3 lines
      
        Replace long with twodigits, to avoid depending
        on sizeof(digit) < sizeof(long)
      ........
      134708ab
    • Jeffrey Yasskin's avatar
      http://bugs.python.org/issue4715 · 9de7ec78
      Jeffrey Yasskin authored
      This patch by Antoine Pitrou optimizes the bytecode for conditional branches by
      merging the following "POP_TOP" instruction into the conditional jump.  For
      example, the list comprehension "[x for x in l if not x]" produced the
      following bytecode:
      
        1           0 BUILD_LIST               0
                    3 LOAD_FAST                0 (.0)
              >>    6 FOR_ITER                23 (to 32)
                    9 STORE_FAST               1 (x)
                   12 LOAD_FAST                1 (x)
                   15 JUMP_IF_TRUE            10 (to 28)
                   18 POP_TOP
                   19 LOAD_FAST                1 (x)
                   22 LIST_APPEND              2
                   25 JUMP_ABSOLUTE            6
              >>   28 POP_TOP
                   29 JUMP_ABSOLUTE            6
              >>   32 RETURN_VALUE
      
      but after the patch it produces the following bytecode:
      
        1           0 BUILD_LIST               0
                    3 LOAD_FAST                0 (.0)
              >>    6 FOR_ITER                18 (to 27)
                    9 STORE_FAST               1 (x)
                   12 LOAD_FAST                1 (x)
                   15 POP_JUMP_IF_TRUE         6
                   18 LOAD_FAST                1 (x)
                   21 LIST_APPEND              2
                   24 JUMP_ABSOLUTE            6
              >>   27 RETURN_VALUE
      
      Notice that not only the code is shorter, but the conditional jump
      (POP_JUMP_IF_TRUE) jumps right to the start of the loop instead of going through
      the JUMP_ABSOLUTE at the end. "continue" statements are helped
      similarly.
      
      Furthermore, the old jump opcodes (JUMP_IF_FALSE, JUMP_IF_TRUE) have been
      replaced by two new opcodes:
      - JUMP_IF_TRUE_OR_POP, which jumps if true and pops otherwise
      - JUMP_IF_FALSE_OR_POP, which jumps if false and pops otherwise
      9de7ec78
    • Raymond Hettinger's avatar
      More markup and spelling fixes. · 0a68b01d
      Raymond Hettinger authored
      0a68b01d
    • Raymond Hettinger's avatar
      79d0434a
  2. 24 Feb, 2009 6 commits
  3. 23 Feb, 2009 5 commits
  4. 22 Feb, 2009 6 commits
  5. 21 Feb, 2009 13 commits
  6. 20 Feb, 2009 5 commits