1. 16 May, 2013 1 kayıt (commit)
  2. 30 Nis, 2013 1 kayıt (commit)
  3. 07 Haz, 2012 1 kayıt (commit)
  4. 13 Ock, 2012 1 kayıt (commit)
  5. 18 Tem, 2011 1 kayıt (commit)
  6. 10 Eyl, 2010 1 kayıt (commit)
    • Amaury Forgeot d'Arc's avatar
      #4617: Previously it was illegal to delete a name from the local · ba117ef7
      Amaury Forgeot d'Arc yazdı
      namespace if it occurs as a free variable in a nested block.  This limitation
      of the compiler has been lifted, and a new opcode introduced (DELETE_DEREF).
      
      This sample was valid in 2.6, but fails to compile in 3.x without this change::
      
         >>> def f():
         ...     def print_error():
         ...        print(e)
         ...     try:
         ...        something
         ...     except Exception as e:
         ...        print_error()
         ...        # implicit "del e" here
      
      
      This sample has always been invalid in Python, and now works::
      
         >>> def outer(x):
         ...     def inner():
         ...        return x
         ...     inner()
         ...     del x
      
      There is no need to bump the PYC magic number: the new opcode is used
      for code that did not compile before.
      ba117ef7
  7. 04 Eyl, 2010 1 kayıt (commit)
  8. 11 Ock, 2010 1 kayıt (commit)
  9. 09 Ock, 2010 1 kayıt (commit)
  10. 28 Haz, 2009 1 kayıt (commit)
    • Benjamin Peterson's avatar
      Merged revisions 72912,72920,72940 via svnmerge from · 876b2f28
      Benjamin Peterson yazdı
      svn+ssh://pythondev@svn.python.org/python/trunk
      
      ........
        r72912 | benjamin.peterson | 2009-05-25 08:13:44 -0500 (Mon, 25 May 2009) | 5 lines
      
        add a SETUP_WITH opcode
      
        It speeds up the with statement and correctly looks up the special
        methods involved.
      ........
        r72920 | benjamin.peterson | 2009-05-25 15:12:57 -0500 (Mon, 25 May 2009) | 1 line
      
        take into account the fact that SETUP_WITH pushes a finally block
      ........
        r72940 | benjamin.peterson | 2009-05-26 07:49:59 -0500 (Tue, 26 May 2009) | 1 line
      
        teach the peepholer about SETUP_WITH
      ........
      876b2f28
  11. 25 May, 2009 1 kayıt (commit)
  12. 28 Şub, 2009 1 kayıt (commit)
  13. 25 Şub, 2009 1 kayıt (commit)
    • Jeffrey Yasskin's avatar
      http://bugs.python.org/issue4715 · 9de7ec78
      Jeffrey Yasskin yazdı
      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
  14. 18 Ara, 2008 1 kayıt (commit)
  15. 17 Ara, 2008 1 kayıt (commit)
  16. 20 Tem, 2008 1 kayıt (commit)
  17. 11 Haz, 2008 1 kayıt (commit)
  18. 18 Mar, 2008 1 kayıt (commit)
  19. 19 Ara, 2007 1 kayıt (commit)
    • Christian Heimes's avatar
      Merged revisions 59541-59561 via svnmerge from · 99170a5d
      Christian Heimes yazdı
      svn+ssh://pythondev@svn.python.org/python/trunk
      
      ........
        r59544 | raymond.hettinger | 2007-12-18 01:13:45 +0100 (Tue, 18 Dec 2007) | 1 line
      
        Add more namedtuple() test cases.  Neaten the code and comments.
      ........
        r59545 | christian.heimes | 2007-12-18 04:38:03 +0100 (Tue, 18 Dec 2007) | 3 lines
      
        Fixed for #1601: IDLE not working correctly on Windows (Py30a2/IDLE30a1)
      
        Amaury's ideas works great. Should we build the Python core with WINVER=0x0500 and _WIN32_WINNT=0x0500, too?
      ........
        r59546 | christian.heimes | 2007-12-18 10:00:13 +0100 (Tue, 18 Dec 2007) | 1 line
      
        Make it a bit easier to test Tcl/Tk and idle from a build dir.
      ........
        r59547 | christian.heimes | 2007-12-18 10:12:10 +0100 (Tue, 18 Dec 2007) | 1 line
      
        Removed several unused files from the PCbuild9 directory. They are relics from the past.
      ........
        r59548 | raymond.hettinger | 2007-12-18 19:26:18 +0100 (Tue, 18 Dec 2007) | 29 lines
      
        Speed-up dictionary constructor by about 10%.
      
        New opcode, STORE_MAP saves the compiler from awkward stack manipulations
        and specializes for dicts using PyDict_SetItem instead of PyObject_SetItem.
      
        Old disassembly:
                      0 BUILD_MAP                0
                      3 DUP_TOP
                      4 LOAD_CONST               1 (1)
                      7 ROT_TWO
                      8 LOAD_CONST               2 ('x')
                     11 STORE_SUBSCR
                     12 DUP_TOP
                     13 LOAD_CONST               3 (2)
                     16 ROT_TWO
                     17 LOAD_CONST               4 ('y')
                     20 STORE_SUBSCR
      
        New disassembly:
                      0 BUILD_MAP                0
                      3 LOAD_CONST               1 (1)
                      6 LOAD_CONST               2 ('x')
                      9 STORE_MAP
                     10 LOAD_CONST               3 (2)
                     13 LOAD_CONST               4 ('y')
                     16 STORE_MAP
      ........
        r59549 | thomas.heller | 2007-12-18 20:00:34 +0100 (Tue, 18 Dec 2007) | 2 lines
      
        Issue #1642: Fix segfault in ctypes when trying to delete attributes.
      ........
        r59551 | guido.van.rossum | 2007-12-18 21:10:42 +0100 (Tue, 18 Dec 2007) | 2 lines
      
        Issue #1645 by Alberto Bertogli.  Fix a comment.
      ........
        r59553 | raymond.hettinger | 2007-12-18 22:24:09 +0100 (Tue, 18 Dec 2007) | 12 lines
      
        Give meaning to the oparg for BUILD_MAP:  estimated size of the dictionary.
      
        Allows dictionaries to be pre-sized (upto 255 elements) saving time lost
        to re-sizes with their attendant mallocs and re-insertions.
      
        Has zero effect on small dictionaries (5 elements or fewer), a slight
        benefit for dicts upto 22 elements (because they had to resize once
        anyway), and more benefit for dicts upto 255 elements (saving multiple
        resizes during the build-up and reducing the number of collisions on
        the first insertions).  Beyond 255 elements, there is no addional benefit.
      ........
        r59554 | christian.heimes | 2007-12-18 22:56:09 +0100 (Tue, 18 Dec 2007) | 1 line
      
        Fixed #1649: IDLE error: dictionary changed size during iteration
      ........
        r59557 | raymond.hettinger | 2007-12-18 23:21:27 +0100 (Tue, 18 Dec 2007) | 1 line
      
        Simplify and speedup _asdict() for named tuples.
      ........
        r59558 | christian.heimes | 2007-12-19 00:22:54 +0100 (Wed, 19 Dec 2007) | 3 lines
      
        Applied patch #1635: Float patch for inf and nan on Windows (and other platforms).
      
        The patch unifies float("inf") and repr(float("inf")) on all platforms.
      ........
        r59559 | raymond.hettinger | 2007-12-19 00:51:15 +0100 (Wed, 19 Dec 2007) | 1 line
      
        Users demand iterable input for named tuples. The author capitulates.
      ........
        r59560 | raymond.hettinger | 2007-12-19 01:21:06 +0100 (Wed, 19 Dec 2007) | 1 line
      
        Beef-up tests for dict literals
      ........
        r59561 | raymond.hettinger | 2007-12-19 01:27:21 +0100 (Wed, 19 Dec 2007) | 1 line
      
        Zap a duplicate line
      ........
      99170a5d
  20. 18 Ara, 2007 2 kayıt (commit)
    • Raymond Hettinger's avatar
      Give meaning to the oparg for BUILD_MAP: estimated size of the dictionary. · fd7ed407
      Raymond Hettinger yazdı
      Allows dictionaries to be pre-sized (upto 255 elements) saving time lost
      to re-sizes with their attendant mallocs and re-insertions.
      
      Has zero effect on small dictionaries (5 elements or fewer), a slight
      benefit for dicts upto 22 elements (because they had to resize once
      anyway), and more benefit for dicts upto 255 elements (saving multiple
      resizes during the build-up and reducing the number of collisions on
      the first insertions).  Beyond 255 elements, there is no addional benefit.
      fd7ed407
    • Raymond Hettinger's avatar
      Speed-up dictionary constructor by about 10%. · effde12f
      Raymond Hettinger yazdı
      New opcode, STORE_MAP saves the compiler from awkward stack manipulations
      and specializes for dicts using PyDict_SetItem instead of PyObject_SetItem.
      
      Old disassembly:
                    0 BUILD_MAP                0
                    3 DUP_TOP
                    4 LOAD_CONST               1 (1)
                    7 ROT_TWO
                    8 LOAD_CONST               2 ('x')
                   11 STORE_SUBSCR
                   12 DUP_TOP
                   13 LOAD_CONST               3 (2)
                   16 ROT_TWO
                   17 LOAD_CONST               4 ('y')
                   20 STORE_SUBSCR
      
      New disassembly:
                    0 BUILD_MAP                0
                    3 LOAD_CONST               1 (1)
                    6 LOAD_CONST               2 ('x')
                    9 STORE_MAP
                   10 LOAD_CONST               3 (2)
                   13 LOAD_CONST               4 ('y')
                   16 STORE_MAP
      effde12f
  21. 30 Agu, 2007 1 kayıt (commit)
  22. 15 Nis, 2007 1 kayıt (commit)
  23. 18 Mar, 2007 1 kayıt (commit)
  24. 23 Şub, 2007 1 kayıt (commit)
  25. 09 Şub, 2007 1 kayıt (commit)
    • Georg Brandl's avatar
      * Remove PRINT_ITEM(_TO), PRINT_NEWLINE(_TO) opcodes. · 88fc6646
      Georg Brandl yazdı
      * Fix some docstrings and one Print -> print.
      * Fix test_{class,code,descrtut,dis,extcall,parser,popen,pkg,subprocess,syntax,traceback}.
        These were the ones that generated code with a print statement.
        In most remaining failing tests there's an issue with the soft space.
      88fc6646
  26. 06 Eyl, 2006 1 kayıt (commit)
  27. 28 Agu, 2006 1 kayıt (commit)
  28. 25 Agu, 2006 1 kayıt (commit)
  29. 17 Mar, 2006 1 kayıt (commit)
  30. 16 Mar, 2006 1 kayıt (commit)
  31. 27 Şub, 2006 1 kayıt (commit)
    • Guido van Rossum's avatar
      PEP 343 -- the with-statement. · c2e20744
      Guido van Rossum yazdı
      This was started by Mike Bland and completed by Guido
      (with help from Neal).
      
      This still needs a __future__ statement added;
      Thomas is working on Michael's patch for that aspect.
      
      There's a small amount of code cleanup and refactoring
      in ast.c, compile.c and ceval.c (I fixed the lltrace
      behavior when EXT_POP is used -- however I had to make
      lltrace a static global).
      c2e20744
  32. 21 Haz, 2004 1 kayıt (commit)
  33. 07 Mar, 2004 1 kayıt (commit)
  34. 12 Şub, 2004 1 kayıt (commit)
  35. 24 Nis, 2003 1 kayıt (commit)
  36. 22 Nis, 2003 1 kayıt (commit)
    • Raymond Hettinger's avatar
      Improved the bytecode optimizer. · 060641d5
      Raymond Hettinger yazdı
      * Can now test for basic blocks.
      * Optimize inverted comparisions.
      * Optimize unary_not followed by a conditional jump.
      * Added a new opcode, NOP, to keep code size constant.
      * Applied NOP to previous transformations where appropriate.
      
      Note, the NOP would not be necessary if other functions were
      added to re-target jump addresses and update the co_lnotab mapping.
      That would yield slightly faster and cleaner bytecode at the
      expense of optimizer simplicity and of keeping it decoupled
      from the line-numbering structure.
      060641d5
  37. 27 Şub, 2003 1 kayıt (commit)