An error occurred fetching the project authors.
  1. 20 Jul, 2010 2 commits
  2. 28 Jun, 2009 1 commit
    • Benjamin Peterson's avatar
      Merged revisions 72912,72920,72940 via svnmerge from · 876b2f28
      Benjamin Peterson authored
      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
  3. 25 Feb, 2009 1 commit
    • 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
  4. 18 Dec, 2008 1 commit
  5. 11 Jun, 2008 1 commit
  6. 19 Dec, 2007 1 commit
    • Christian Heimes's avatar
      Merged revisions 59541-59561 via svnmerge from · 99170a5d
      Christian Heimes authored
      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
  7. 06 Nov, 2007 1 commit
    • Guido van Rossum's avatar
      Merging the py3k-pep3137 branch back into the py3k branch. · 98297ee7
      Guido van Rossum authored
      No detailed change log; just check out the change log for the py3k-pep3137
      branch.  The most obvious changes:
      
        - str8 renamed to bytes (PyString at the C level);
        - bytes renamed to buffer (PyBytes at the C level);
        - PyString and PyUnicode are no longer compatible.
      
      I.e. we now have an immutable bytes type and a mutable bytes type.
      
      The behavior of PyString was modified quite a bit, to make it more
      bytes-like.  Some changes are still on the to-do list.
      98297ee7
  8. 30 Aug, 2007 1 commit
  9. 18 Jul, 2007 1 commit
    • Guido van Rossum's avatar
      Merged revisions 56301-56442 via svnmerge from · b5a755e4
      Guido van Rossum authored
      svn+ssh://pythondev@svn.python.org/python/branches/p3yk
      
      ................
        r56322 | kurt.kaiser | 2007-07-12 11:35:03 -0700 (Thu, 12 Jul 2007) | 2 lines
      
        Replace obscure code which was failing in py3k.
      ................
        r56323 | kurt.kaiser | 2007-07-12 11:44:12 -0700 (Thu, 12 Jul 2007) | 3 lines
      
        1. Remove new division option
        2. Update IDLE version to 3.0x
      ................
        r56327 | kurt.kaiser | 2007-07-12 12:20:20 -0700 (Thu, 12 Jul 2007) | 5 lines
      
        Fix another instance of this defect in Tkinter, and one in IDLE.
      
        Patch 1724999 by Ali Gholami Rudi -- avoid complaints about dict size
        change during iter in destroy call.
      ................
        r56339 | georg.brandl | 2007-07-13 03:07:25 -0700 (Fri, 13 Jul 2007) | 2 lines
      
        Fix #1753310: regrtest -x doesn't work anymore
      ................
        r56361 | kurt.kaiser | 2007-07-13 18:25:24 -0700 (Fri, 13 Jul 2007) | 2 lines
      
        convert a map() iterator to a list to get this working.
      ................
        r56362 | kurt.kaiser | 2007-07-13 18:53:45 -0700 (Fri, 13 Jul 2007) | 2 lines
      
        Was modifying dict during iteration.
      ................
        r56376 | collin.winter | 2007-07-14 11:56:19 -0700 (Sat, 14 Jul 2007) | 1 line
      
        Add an example of class decorators to test_grammar.
      ................
        r56377 | collin.winter | 2007-07-14 12:00:17 -0700 (Sat, 14 Jul 2007) | 1 line
      
        Add a basic example of dictcomps to test_grammar.
      ................
        r56413 | neal.norwitz | 2007-07-17 00:21:18 -0700 (Tue, 17 Jul 2007) | 149 lines
      
        Merged revisions 56202-56412 via svnmerge from
        svn+ssh://pythondev@svn.python.org/python/trunk
      
        ........
          r56204 | ronald.oussoren | 2007-07-08 23:02:21 -0700 (Sun, 08 Jul 2007) | 2 lines
      
          Patch 1693258: Fix for duplicate "preferences" menu-OS X
        ........
          r56207 | ronald.oussoren | 2007-07-09 01:41:15 -0700 (Mon, 09 Jul 2007) | 4 lines
      
          Patch 1673122: be explicit about which libtool to use, to avoid name clashes
          when a users install GNU libtool early in his PATH
        ........
          r56280 | georg.brandl | 2007-07-11 12:41:49 -0700 (Wed, 11 Jul 2007) | 2 lines
      
          Fix #1752132: wrong comment in opcode description.
        ........
          r56293 | georg.brandl | 2007-07-12 01:05:45 -0700 (Thu, 12 Jul 2007) | 3 lines
      
          Patch #1752270, #1750931: complain if urllib2 add_handler called
          without handler.
        ........
          r56296 | georg.brandl | 2007-07-12 01:11:29 -0700 (Thu, 12 Jul 2007) | 2 lines
      
          Patch #1739696: use code.co_code only if really necessary
        ........
          r56298 | georg.brandl | 2007-07-12 01:38:00 -0700 (Thu, 12 Jul 2007) | 3 lines
      
          Patch #1673759: add a missing overflow check when formatting floats
          with %G.
        ........
          r56302 | georg.brandl | 2007-07-12 02:06:41 -0700 (Thu, 12 Jul 2007) | 2 lines
      
          Patch #1731659: improve time.strptime docs.
        ........
          r56304 | georg.brandl | 2007-07-12 02:24:04 -0700 (Thu, 12 Jul 2007) | 2 lines
      
          Patch #1731169: clean up expected skips list.
        ........
          r56306 | georg.brandl | 2007-07-12 02:37:49 -0700 (Thu, 12 Jul 2007) | 3 lines
      
          Bug #1637365: add subsection about "__name__ == __main__" to the
          Python tutorial.
        ........
          r56308 | georg.brandl | 2007-07-12 02:59:22 -0700 (Thu, 12 Jul 2007) | 5 lines
      
          Patch #1675424: Added tests for uncovered code in the zipfile module.
            The KeyError raised by Zipfile.getinfo for nonexistent names now has
            a descriptive message.
        ........
          r56340 | facundo.batista | 2007-07-13 03:43:44 -0700 (Fri, 13 Jul 2007) | 6 lines
      
      
          Added tests for basic behavior of DateTime, Binary, and Fault classes
          and the escape function. Check that marshalling recursive sequences &
          dicts raises TypeError. Check that marshalling out-of-range ints
          raises OverflowError [Alan McIntyre - GSoC]
        ........
          r56345 | raymond.hettinger | 2007-07-13 05:09:41 -0700 (Fri, 13 Jul 2007) | 1 line
      
          Correct the docs for takewhile().  Improve the recipe for nth().  Should be backported
        ........
          r56348 | thomas.heller | 2007-07-13 06:59:39 -0700 (Fri, 13 Jul 2007) | 4 lines
      
          Repair COMError.  Since exceptions are new style classes now, setting
          the methods and docstring after the type creation does not work, they
          must be in the dictionary before creating the type.
        ........
          r56349 | thomas.heller | 2007-07-13 07:18:06 -0700 (Fri, 13 Jul 2007) | 1 line
      
          Add tests for _ctypes.COMError.
        ........
          r56350 | thomas.heller | 2007-07-13 09:50:43 -0700 (Fri, 13 Jul 2007) | 4 lines
      
          Do not try to load the GLUT library in the ctypes tests.  This test
          adds little value, but has a large problem on OS X, as explained in
          SF# 1581906.
        ........
          r56352 | thomas.heller | 2007-07-13 10:12:23 -0700 (Fri, 13 Jul 2007) | 3 lines
      
          Fix for SF# 1701409: segfault in c_char_p of ctypes.  The repr output
          of c_char_p and c_wchar_p has changed as a sideeffect.
        ........
          r56355 | thomas.heller | 2007-07-13 10:46:54 -0700 (Fri, 13 Jul 2007) | 3 lines
      
          Fix for SF# 1649098: avoid zero-sized array declaration in structure.
        ........
          r56357 | thomas.heller | 2007-07-13 12:51:55 -0700 (Fri, 13 Jul 2007) | 3 lines
      
          PyType_stgdict() returns a borrowed reference which must not be
          Py_DECREF'd.
        ........
          r56360 | barry.warsaw | 2007-07-13 15:12:58 -0700 (Fri, 13 Jul 2007) | 10 lines
      
          In response to this SF bug:
      
          [ 1752723 ] email.message_from_string: initial line gets discarded
      
          I added a test to assert that when the first line of text passed to
          message_from_string() contains a leading space, the message ends up with the
          appropriate FirstHeaderLineIsContinuationDefect on its defects list.
      
          The bug is invalid.
        ........
          r56364 | georg.brandl | 2007-07-14 10:12:23 -0700 (Sat, 14 Jul 2007) | 2 lines
      
          Bug #1753406: missing \versionadded for subprocess.check_call.
        ........
          r56366 | georg.brandl | 2007-07-14 10:32:41 -0700 (Sat, 14 Jul 2007) | 2 lines
      
          Clarify webbrowser.open description.
        ........
          r56380 | andrew.kuchling | 2007-07-14 13:58:21 -0700 (Sat, 14 Jul 2007) | 1 line
      
          Typo fix
        ........
          r56382 | andrew.kuchling | 2007-07-14 14:56:19 -0700 (Sat, 14 Jul 2007) | 7 lines
      
          Avoid exception if there's a stray directory inside a Maildir folder.
      
          The Maildir specification doesn't seem to say anything about this
          situation, and it can happen if you're keeping a Maildir mailbox in
          Subversion (.svn directories) or some similar system.  The patch just
          ignores directories in the cur/, new/, tmp/ folders.
        ........
          r56392 | facundo.batista | 2007-07-14 15:41:45 -0700 (Sat, 14 Jul 2007) | 6 lines
      
      
          First version.  Includes tests for helper functions: read, write,
          _exception, readwrite, closeall, compact_traceback; and for classes
          dispatcher, dispatcher_with_send, and file_wrapper.
          [Alan McIntyre - GSoC]
        ........
          r56399 | facundo.batista | 2007-07-15 13:30:39 -0700 (Sun, 15 Jul 2007) | 5 lines
      
      
          Changed the used port and commented out some tests that uses
          a non documented function that appers to uses resources
          not present in Windows.
        ........
          r56412 | facundo.batista | 2007-07-16 19:19:39 -0700 (Mon, 16 Jul 2007) | 6 lines
      
      
          Prevent asyncore.dispatcher tests from hanging by adding loop counters
          to server & client, and by adding asyncore.close_all calls in
          tearDown. Also choose correct expected logging results based on the
          value of __debug__  [Alan McIntyre - GSoC]
        ........
      ................
        r56442 | guido.van.rossum | 2007-07-18 10:26:38 -0700 (Wed, 18 Jul 2007) | 14 lines
      
        Merged revisions 56413-56441 via svnmerge from
        svn+ssh://pythondev@svn.python.org/python/trunk
      
        ........
          r56439 | georg.brandl | 2007-07-17 23:37:55 -0700 (Tue, 17 Jul 2007) | 2 lines
      
          Use "Unix" as platform name, not "UNIX".
        ........
          r56441 | guido.van.rossum | 2007-07-18 10:19:14 -0700 (Wed, 18 Jul 2007) | 3 lines
      
          SF patch# 1755885 by Kurt Kaiser: show location of Unicode escape errors.
          (Slightly tweaked for style and refcounts.)
        ........
      ................
      b5a755e4
  10. 11 May, 2007 1 commit
    • Guido van Rossum's avatar
      Merged revisions 55225-55227,55229-55269 via svnmerge from · 0368b726
      Guido van Rossum authored
      svn+ssh://pythondev@svn.python.org/python/branches/p3yk
      
      ................
        r55238 | guido.van.rossum | 2007-05-10 16:46:05 -0700 (Thu, 10 May 2007) | 9 lines
      
        Merged revisions 55227 via svnmerge from
        svn+ssh://pythondev@svn.python.org/python/trunk
      
        ........
          r55227 | guido.van.rossum | 2007-05-10 10:20:15 -0700 (Thu, 10 May 2007) | 2 lines
      
          Fix a bug in test_c_api() that caused a negative refcount.
        ........
      ................
        r55246 | neal.norwitz | 2007-05-11 00:01:52 -0700 (Fri, 11 May 2007) | 1 line
      
        Remove commands.getstatus() it is obsolete.
      ................
        r55248 | neal.norwitz | 2007-05-11 00:29:05 -0700 (Fri, 11 May 2007) | 2 lines
      
        Remove bsddb185 support.
      ................
        r55249 | neal.norwitz | 2007-05-11 00:29:50 -0700 (Fri, 11 May 2007) | 1 line
      
        Remove bsddb185 module too
      ................
        r55250 | neal.norwitz | 2007-05-11 00:32:13 -0700 (Fri, 11 May 2007) | 1 line
      
        bsddb185: Gotta remove from the file checked in, not Setup
      ................
        r55251 | neal.norwitz | 2007-05-11 00:53:26 -0700 (Fri, 11 May 2007) | 1 line
      
        Remove obsolete IRIX modules (as much as I could find, there is probably more)
      ................
        r55252 | neal.norwitz | 2007-05-11 00:55:35 -0700 (Fri, 11 May 2007) | 1 line
      
        Remove SGI turd.
      ................
        r55254 | georg.brandl | 2007-05-11 03:11:01 -0700 (Fri, 11 May 2007) | 2 lines
      
        Add a case for set comprehensions to the "cannot assign to" switch.
      ................
        r55255 | georg.brandl | 2007-05-11 03:11:25 -0700 (Fri, 11 May 2007) | 2 lines
      
        Fix wrong imports.
      ................
        r55261 | georg.brandl | 2007-05-11 07:37:48 -0700 (Fri, 11 May 2007) | 2 lines
      
        Remove removed tex files.
      ................
        r55262 | georg.brandl | 2007-05-11 08:28:41 -0700 (Fri, 11 May 2007) | 2 lines
      
        Commit PEP 3132 implementation.
      ................
        r55264 | georg.brandl | 2007-05-11 08:50:19 -0700 (Fri, 11 May 2007) | 2 lines
      
        Check in the inevitable AST version number and format Py_ssize_t with %zd.
      ................
        r55265 | neal.norwitz | 2007-05-11 09:12:22 -0700 (Fri, 11 May 2007) | 1 line
      
        Remove mention of os.popen* and popen2.* since these will be removed.
      ................
        r55266 | neal.norwitz | 2007-05-11 09:19:57 -0700 (Fri, 11 May 2007) | 1 line
      
        Get doc to build again (almost, the doc is fine)
      ................
        r55267 | neal.norwitz | 2007-05-11 09:21:02 -0700 (Fri, 11 May 2007) | 1 line
      
        Really get doc to build (remove use of string module)
      ................
        r55269 | neal.norwitz | 2007-05-11 09:29:43 -0700 (Fri, 11 May 2007) | 1 line
      
        Add some notes to cleanup later
      ................
      0368b726
  11. 15 Apr, 2007 1 commit
  12. 18 Mar, 2007 1 commit
  13. 23 Feb, 2007 1 commit
  14. 09 Feb, 2007 1 commit
    • Georg Brandl's avatar
      * Remove PRINT_ITEM(_TO), PRINT_NEWLINE(_TO) opcodes. · 88fc6646
      Georg Brandl authored
      * 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
  15. 06 Sep, 2006 1 commit
  16. 28 Aug, 2006 1 commit
  17. 25 Aug, 2006 1 commit
  18. 17 Mar, 2006 1 commit
  19. 16 Mar, 2006 1 commit
  20. 27 Feb, 2006 1 commit
    • Guido van Rossum's avatar
      PEP 343 -- the with-statement. · c2e20744
      Guido van Rossum authored
      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
  21. 21 Jun, 2004 1 commit
  22. 07 Mar, 2004 1 commit
  23. 24 Apr, 2003 1 commit
  24. 22 Apr, 2003 1 commit
    • Raymond Hettinger's avatar
      Improved the bytecode optimizer. · 060641d5
      Raymond Hettinger authored
      * 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
  25. 30 Aug, 2002 1 commit
    • Michael W. Hudson's avatar
      Further SET_LINENO reomval fixes. See comments in patch #587933. · 53d58bb3
      Michael W. Hudson authored
      Use a slightly different strategy to determine when not to call the line
      trace function.  This removes the need for the RETURN_NONE opcode, so
      that's gone again.  Update docs and comments to match.
      
      Thanks to Neal and Armin!
      
      Also add a test suite.  This should have come with the original patch...
      53d58bb3
  26. 15 Aug, 2002 1 commit
    • Michael W. Hudson's avatar
      This is my patch · dd32a91c
      Michael W. Hudson authored
      [ 587993 ] SET_LINENO killer
      
      Remove SET_LINENO.  Tracing is now supported by inspecting co_lnotab.
      
      Many sundry changes to document and adapt to this change.
      dd32a91c
  27. 13 Jun, 2002 1 commit
  28. 01 Jan, 2002 1 commit
  29. 08 Aug, 2001 1 commit
    • Guido van Rossum's avatar
      Implement PEP 238 in its (almost) full glory. · 4668b000
      Guido van Rossum authored
      This introduces:
      
      - A new operator // that means floor division (the kind of division
        where 1/2 is 0).
      
      - The "future division" statement ("from __future__ import division)
        which changes the meaning of the / operator to implement "true
        division" (where 1/2 is 0.5).
      
      - New overloadable operators __truediv__ and __floordiv__.
      
      - New slots in the PyNumberMethods struct for true and floor division,
        new abstract APIs for them, new opcodes, and so on.
      
      I emphasize that without the future division statement, the semantics
      of / will remain unchanged until Python 3.0.
      
      Not yet implemented are warnings (default off) when / is used with int
      or long arguments.
      
      This has been on display since 7/31 as SF patch #443474.
      
      Flames to /dev/null.
      4668b000
  30. 18 Jun, 2001 1 commit
  31. 20 Apr, 2001 1 commit
    • Guido van Rossum's avatar
      Iterators phase 1. This comprises: · 59d1d2b4
      Guido van Rossum authored
      new slot tp_iter in type object, plus new flag Py_TPFLAGS_HAVE_ITER
      new C API PyObject_GetIter(), calls tp_iter
      new builtin iter(), with two forms: iter(obj), and iter(function, sentinel)
      new internal object types iterobject and calliterobject
      new exception StopIteration
      new opcodes for "for" loops, GET_ITER and FOR_ITER (also supported by dis.py)
      new magic number for .pyc files
      new special method for instances: __iter__() returns an iterator
      iteration over dictionaries: "for x in dict" iterates over the keys
      iteration over files: "for x in file" iterates over lines
      
      TODO:
      
      documentation
      test suite
      decide whether to use a different way to spell iter(function, sentinal)
      decide whether "for key in dict" is a good idea
      use iterators in map/filter/reduce, min/max, and elsewhere (in/not in?)
      speed tuning (make next() a slot tp_next???)
      59d1d2b4
  32. 01 Feb, 2001 1 commit
  33. 25 Jan, 2001 1 commit
    • Jeremy Hylton's avatar
      PEP 227 implementation · 64949cb7
      Jeremy Hylton authored
      The majority of the changes are in the compiler.  The mainloop changes
      primarily to implement the new opcodes and to pass a function's
      closure to eval_code2().  Frames and functions got new slots to hold
      the closure.
      
      Include/compile.h
          Add co_freevars and co_cellvars slots to code objects.
          Update PyCode_New() to take freevars and cellvars as arguments
      Include/funcobject.h
          Add func_closure slot to function objects.
          Add GetClosure()/SetClosure() functions (and corresponding
          macros) for getting at the closure.
      Include/frameobject.h
          PyFrame_New() now takes a closure.
      Include/opcode.h
          Add four new opcodes: MAKE_CLOSURE, LOAD_CLOSURE, LOAD_DEREF,
          STORE_DEREF.
          Remove comment about old requirement for opcodes to fit in 7
          bits.
      compile.c
          Implement changes to code objects for co_freevars and co_cellvars.
      
          Modify symbol table to use st_cur_name (string object for the name
          of the current scope) and st_cur_children (list of nested blocks).
          Also define st_nested, which might more properly be called
          st_cur_nested.  Add several DEF_XXX flags to track def-use
          information for free variables.
      
          New or modified functions of note:
          com_make_closure(struct compiling *, PyCodeObject *)
              Emit LOAD_CLOSURE opcodes as needed to pass cells for free
              variables into nested scope.
          com_addop_varname(struct compiling *, int, char *)
              Emits opcodes for LOAD_DEREF and STORE_DEREF.
          get_ref_type(struct compiling *, char *name)
              Return NAME_CLOSURE if ref type is FREE or CELL
          symtable_load_symbols(struct compiling *)
              Decides what variables are cell or free based on def-use info.
              Can now raise SyntaxError if nested scopes are mixed with
              exec or from blah import *.
          make_scope_info(PyObject *, PyObject *, int, int)
              Helper functions for symtable scope stack.
          symtable_update_free_vars(struct symtable *)
              After a code block has been analyzed, it must check each of
              its children for free variables that are not defined in the
              block.  If a variable is free in a child and not defined in
              the parent, then it is defined by block the enclosing the
              current one or it is a global.  This does the right logic.
          symtable_add_use() is now a macro for symtable_add_def()
          symtable_assign(struct symtable *, node *)
              Use goto instead of for (;;)
      
          Fixed bug in symtable where name of keyword argument in function
          call was treated as assignment in the scope of the call site. Ex:
              def f():
                  g(a=2) # a was considered a local of f
      
      ceval.c
          eval_code2() now take one more argument, a closure.
          Implement LOAD_CLOSURE, LOAD_DEREF, STORE_DEREF, MAKE_CLOSURE>
      
          Also: When name error occurs for global variable, report that the
          name was global in the error mesage.
      
      Objects/frameobject.c
          Initialize f_closure to be a tuple containing space for cellvars
          and freevars.  f_closure is NULL if neither are present.
      Objects/funcobject.c
          Add support for func_closure.
      Python/import.c
          Change the magic number.
      Python/marshal.c
          Track changes to code objects.
      64949cb7
  34. 17 Jan, 2001 1 commit
  35. 01 Sep, 2000 1 commit
  36. 24 Aug, 2000 2 commits
  37. 21 Aug, 2000 1 commit
  38. 17 Aug, 2000 1 commit