Merged revisions 64722,64729,64753,64845-64846,64849,64871,64880-64882,64885,64888,64897,64900-64901,64915,64926-64929,64938-64941,64944,64961,64966,64973 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64722 | georg.brandl | 2008-07-05 12:13:36 +0200 (Sat, 05 Jul 2008) | 4 lines

  #2663: support an *ignore* argument to shutil.copytree(). Patch by Tarek Ziade.

  This is a new feature, but Barry authorized adding it in the beta period.
........
  r64729 | mark.dickinson | 2008-07-05 13:33:52 +0200 (Sat, 05 Jul 2008) | 5 lines

  Issue 3188: accept float('infinity') as well as float('inf').  This
  makes the float constructor behave in the same way as specified
  by various other language standards, including C99, IEEE 754r,
  and the IBM Decimal standard.
........
  r64753 | gregory.p.smith | 2008-07-06 05:35:58 +0200 (Sun, 06 Jul 2008) | 4 lines

  - Issue #2862: Make int and float freelist management consistent with other
    freelists.  Changes their CompactFreeList apis into ClearFreeList apis and
    calls them via gc.collect().
........
  r64845 | raymond.hettinger | 2008-07-10 16:03:19 +0200 (Thu, 10 Jul 2008) | 1 line

  Issue 3301:  Bisect functions behaved badly when lo was negative.
........
  r64846 | raymond.hettinger | 2008-07-10 16:34:57 +0200 (Thu, 10 Jul 2008) | 1 line

  Issue 3285: Fractions from_float() and from_decimal() accept Integral arguments.
........
  r64849 | andrew.kuchling | 2008-07-10 16:43:31 +0200 (Thu, 10 Jul 2008) | 1 line

  Wording changes
........
  r64871 | raymond.hettinger | 2008-07-11 14:00:21 +0200 (Fri, 11 Jul 2008) | 1 line

  Add cautionary note on the use of PySequence_Fast_ITEMS.
........
  r64880 | amaury.forgeotdarc | 2008-07-11 23:28:25 +0200 (Fri, 11 Jul 2008) | 5 lines

  #3317 in zipfile module, restore the previous names of global variables:
  some applications relied on them.

  Also remove duplicated lines.
........
  r64881 | amaury.forgeotdarc | 2008-07-11 23:45:06 +0200 (Fri, 11 Jul 2008) | 3 lines

  #3342: In tracebacks, printed source lines were not indented since r62555.
  #3343: Py_DisplaySourceLine should be a private function. Rename it to _Py_DisplaySourceLine.
........
  r64882 | josiah.carlson | 2008-07-12 00:17:14 +0200 (Sat, 12 Jul 2008) | 2 lines

  Fix for the AttributeError in test_asynchat.
........
  r64885 | josiah.carlson | 2008-07-12 01:26:59 +0200 (Sat, 12 Jul 2008) | 2 lines

  Fixed test for asyncore.
........
  r64888 | matthias.klose | 2008-07-12 09:51:48 +0200 (Sat, 12 Jul 2008) | 2 lines

  - Fix bashisms in Tools/faqwiz/move-faqwiz.sh
........
  r64897 | benjamin.peterson | 2008-07-12 22:16:19 +0200 (Sat, 12 Jul 2008) | 1 line

  fix various doc typos #3320
........
  r64900 | alexandre.vassalotti | 2008-07-13 00:06:53 +0200 (Sun, 13 Jul 2008) | 2 lines

  Fixed typo.
........
  r64901 | benjamin.peterson | 2008-07-13 01:41:19 +0200 (Sun, 13 Jul 2008) | 1 line

  #1778443 robotparser fixes from Aristotelis Mikropoulos
........
  r64915 | nick.coghlan | 2008-07-13 16:52:36 +0200 (Sun, 13 Jul 2008) | 1 line

  Fix issue 3221 by emitting a RuntimeWarning instead of raising SystemError when the parent module can't be found during an absolute import (likely due to non-PEP 361 aware code which sets a module level __package__ attribute)
........
  r64926 | martin.v.loewis | 2008-07-13 22:31:49 +0200 (Sun, 13 Jul 2008) | 2 lines

  Add turtle into the module index.
........
  r64927 | alexandre.vassalotti | 2008-07-13 22:42:44 +0200 (Sun, 13 Jul 2008) | 3 lines

  Issue #3274: Use a less common identifier for the temporary variable
  in Py_CLEAR().
........
  r64928 | andrew.kuchling | 2008-07-13 23:43:25 +0200 (Sun, 13 Jul 2008) | 1 line

  Re-word
........
  r64929 | andrew.kuchling | 2008-07-13 23:43:52 +0200 (Sun, 13 Jul 2008) | 1 line

  Add various items; move ctypes items into a subsection of their own
........
  r64938 | andrew.kuchling | 2008-07-14 02:35:32 +0200 (Mon, 14 Jul 2008) | 1 line

  Typo fixes
........
  r64939 | andrew.kuchling | 2008-07-14 02:40:55 +0200 (Mon, 14 Jul 2008) | 1 line

  Typo fix
........
  r64940 | andrew.kuchling | 2008-07-14 03:18:16 +0200 (Mon, 14 Jul 2008) | 1 line

  Typo fix
........
  r64941 | andrew.kuchling | 2008-07-14 03:18:31 +0200 (Mon, 14 Jul 2008) | 1 line

  Expand the multiprocessing section
........
  r64944 | gregory.p.smith | 2008-07-14 08:06:48 +0200 (Mon, 14 Jul 2008) | 7 lines

  Fix posix.fork1() / os.fork1() to only call PyOS_AfterFork() in the child
  process rather than both parent and child.

  Does anyone actually use fork1()?  It appears to be a Solaris thing
  but if Python is built with pthreads on Solaris, fork1() and fork()
  should be the same.
........
  r64961 | jesse.noller | 2008-07-15 15:47:33 +0200 (Tue, 15 Jul 2008) | 1 line

  multiprocessing/connection.py patch to remove fqdn oddness for issue 3270
........
  r64966 | nick.coghlan | 2008-07-15 17:40:22 +0200 (Tue, 15 Jul 2008) | 1 line

  Add missing NEWS entry for r64962
........
  r64973 | jesse.noller | 2008-07-15 20:29:18 +0200 (Tue, 15 Jul 2008) | 1 line

  Revert 3270 patch: self._address is in pretty widespread use, need to revisit
........
diff --git a/Doc/library/__future__.rst b/Doc/library/__future__.rst
index e2349cc..d6f82a3 100644
--- a/Doc/library/__future__.rst
+++ b/Doc/library/__future__.rst
@@ -16,7 +16,7 @@
 
 * To document when incompatible changes were introduced, and when they will be
   --- or were --- made mandatory.  This is a form of executable documentation, and
-  can be inspected programatically via importing :mod:`__future__` and examining
+  can be inspected programmatically via importing :mod:`__future__` and examining
   its contents.
 
 Each statement in :file:`__future__.py` is of the form::
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index 939bf8f..f422bf3 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -1781,8 +1781,8 @@
 .. function:: byref(obj[, offset])
 
    Returns a light-weight pointer to ``obj``, which must be an
-   instance of a ctypes type.  ``offset`` defaults to zero, it must be
-   an integer which is added to the internal pointer value.
+   instance of a ctypes type.  ``offset`` defaults to zero, and must be
+   an integer that will be added to the internal pointer value.
 
    ``byref(obj, offset)`` corresponds to this C code::
 
diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
index f360c60..d4f8888 100644
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -300,7 +300,7 @@
 
    Send a ``QUIT`` command to the server and close the connection. This is the
    "polite" way to close a connection, but it may raise an exception of the server
-   reponds with an error to the ``QUIT`` command.  This implies a call to the
+   responds with an error to the ``QUIT`` command.  This implies a call to the
    :meth:`close` method which renders the :class:`FTP` instance useless for
    subsequent calls (see below).
 
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 4b1cbc6..ac40ce7 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -1186,6 +1186,7 @@
    care about trailing, unmatched values from the longer iterables.  If those
    values are important, use :func:`itertools.zip_longest` instead.
 
+
 .. rubric:: Footnotes
 
 .. [#] Specifying a buffer size currently has no effect on systems that don't have
diff --git a/Doc/library/gc.rst b/Doc/library/gc.rst
index 99504c6..7c425e3 100644
--- a/Doc/library/gc.rst
+++ b/Doc/library/gc.rst
@@ -44,6 +44,11 @@
    :exc:`ValueError` is raised if the generation number  is invalid. The number of
    unreachable objects found is returned.
 
+   The free lists maintained for a number of builtin types are cleared
+   whenever a full collection or collection of the highest generation (2)
+   is run.  Not all items in some free lists may be freed due to the
+   particular implementation, in particular :class:`float`.
+
 
 .. function:: set_debug(flags)
 
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index be87775..10ccb17 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -158,7 +158,7 @@
 
    The ``'d'`` and ``'i'`` arguments used when creating ``num`` and ``arr`` are
    typecodes of the kind used by the :mod:`array` module: ``'d'`` indicates a
-   double precision float and ``'i'`` inidicates a signed integer.  These shared
+   double precision float and ``'i'`` indicates a signed integer.  These shared
    objects will be process and thread safe.
 
    For more flexibility in using shared memory one can use the
@@ -168,7 +168,7 @@
 **Server process**
 
    A manager object returned by :func:`Manager` controls a server process which
-   holds python objects and allows other processes to manipulate them using
+   holds Python objects and allows other processes to manipulate them using
    proxies.
 
    A manager returned by :func:`Manager` will support types :class:`list`,
@@ -451,7 +451,7 @@
    This means that if you try joining that process you may get a deadlock unless
    you are sure that all items which have been put on the queue have been
    consumed.  Similarly, if the child process is non-daemonic then the parent
-   process may hang on exit when it tries to join all it non-daemonic children.
+   process may hang on exit when it tries to join all its non-daemonic children.
 
    Note that a queue created using a manager does not have this issue.  See
    :ref:`multiprocessing-programming`.
@@ -532,7 +532,8 @@
       Equivalent to ``get(False)``.
 
    :class:`multiprocessing.Queue` has a few additional methods not found in
-   :class:`queue.Queue` which are usually unnecessary:
+   :class:`queue.Queue`.  These methods are usually unnecessary for most
+   code:
 
    .. method:: close()
 
@@ -772,7 +773,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Generally synchronization primitives are not as necessary in a multiprocess
-program as they are in a mulithreaded program.  See the documentation for
+program as they are in a multithreaded program.  See the documentation for
 :mod:`threading` module.
 
 Note that one can also create synchronization primitives by using a manager
@@ -782,7 +783,7 @@
 
    A bounded semaphore object: a clone of :class:`threading.BoundedSemaphore`.
 
-   (On Mac OSX this is indistiguishable from :class:`Semaphore` because
+   (On Mac OSX this is indistinguishable from :class:`Semaphore` because
    ``sem_getvalue()`` is not implemented on that platform).
 
 .. class:: Condition([lock])
@@ -891,8 +892,8 @@
 
 .. note::
 
-   Although it is posible to store a pointer in shared memory remember that this
-   will refer to a location in the address space of a specific process.
+   Although it is possible to store a pointer in shared memory remember that
+   this will refer to a location in the address space of a specific process.
    However, the pointer is quite likely to be invalid in the context of a second
    process and trying to dereference the pointer from the second process may
    cause a crash.
@@ -1081,7 +1082,7 @@
 
       Start a subprocess to start the manager.
 
-   .. method:: server_forever()
+   .. method:: serve_forever()
 
       Run the server in the current process.
 
@@ -1774,7 +1775,7 @@
    handler which sends output to :data:`sys.stderr` using format
    ``'[%(levelname)s/%(processName)s] %(message)s'``.  (The logger allows use of
    the non-standard ``'%(processName)s'`` format.)  Message sent to this logger
-   will not by default propogate to the root logger.
+   will not by default propagate to the root logger.
 
    Note that on Windows child processes will only inherit the level of the
    parent process's logger -- any other customization of the logger will not be
diff --git a/Doc/library/operator.rst b/Doc/library/operator.rst
index 37996e0..a67c6d8 100644
--- a/Doc/library/operator.rst
+++ b/Doc/library/operator.rst
@@ -513,7 +513,7 @@
 +-----------------------+-------------------------+---------------------------------+
 | Right Shift           | ``a >> b``              | ``rshift(a, b)``                |
 +-----------------------+-------------------------+---------------------------------+
-| Sequence Repitition   | ``seq * i``             | ``repeat(seq, i)``              |
+| Sequence Repetition   | ``seq * i``             | ``repeat(seq, i)``              |
 +-----------------------+-------------------------+---------------------------------+
 | String Formatting     | ``s % obj``             | ``mod(s, obj)``                 |
 +-----------------------+-------------------------+---------------------------------+
diff --git a/Doc/library/select.rst b/Doc/library/select.rst
index 102d3ea..f64d6dd 100644
--- a/Doc/library/select.rst
+++ b/Doc/library/select.rst
@@ -330,7 +330,7 @@
    +---------------------------+---------------------------------------------+
    | :const:`KQ_EV_DISABLE`    | Disablesevent                               |
    +---------------------------+---------------------------------------------+
-   | :const:`KQ_EV_ONESHOT`    | Removes event after first occurence         |
+   | :const:`KQ_EV_ONESHOT`    | Removes event after first occurrence        |
    +---------------------------+---------------------------------------------+
    | :const:`KQ_EV_CLEAR`      | Reset the state after an event is retrieved |
    +---------------------------+---------------------------------------------+
@@ -365,7 +365,7 @@
    +============================+============================================+
    | :const:`KQ_NOTE_DELETE`    | *unlink()* was called                      |
    +----------------------------+--------------------------------------------+
-   | :const:`KQ_NOTE_WRITE`     | a write occured                            |
+   | :const:`KQ_NOTE_WRITE`     | a write occurred                           |
    +----------------------------+--------------------------------------------+
    | :const:`KQ_NOTE_EXTEND`    | the file was extended                      |
    +----------------------------+--------------------------------------------+
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 586770a..40417d8 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1565,7 +1565,7 @@
    .. method:: isdisjoint(other)
 
       Return True if the set has no elements in common with *other*.  Sets are
-      disjoint if and only if their interesection is the empty set.
+      disjoint if and only if their intersection is the empty set.
 
    .. method:: issubset(other)
                set <= other
diff --git a/Doc/library/string.rst b/Doc/library/string.rst
index 662541e..07a2c4b 100644
--- a/Doc/library/string.rst
+++ b/Doc/library/string.rst
@@ -266,7 +266,7 @@
 
    "noses     "
    
-Which is subsitituted into the string, yielding::
+Which is substituted into the string, yielding::
    
    "A man with two noses     "
    
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index f92b1e4..3f73ec2 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -54,19 +54,6 @@
    A string containing the copyright pertaining to the Python interpreter.
 
 
-.. function:: _compact_freelists()
-
-   Compact the free list of floats by deallocating unused blocks.
-   It can reduce the memory usage of the Python process several tenth of
-   thousands of integers or floats have been allocated at once.
-
-   The return value is a tuple of tuples each containing three elements,
-   amount of used objects, total block count before the blocks are deallocated
-   and amount of freed blocks. 
-
-   This function should be used for specialized purposes only.
-
-
 .. function:: _clear_type_cache()
 
    Clear the internal type cache. The type cache is used to speed up attribute
diff --git a/Doc/library/tkinter.tix.rst b/Doc/library/tkinter.tix.rst
index a85aeb1..b555376 100644
--- a/Doc/library/tkinter.tix.rst
+++ b/Doc/library/tkinter.tix.rst
@@ -305,8 +305,8 @@
 .. \ulink{FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl}
 
 
-Hierachical ListBox
-^^^^^^^^^^^^^^^^^^^
+Hierarchical ListBox
+^^^^^^^^^^^^^^^^^^^^
 
 
 .. class:: HList()
diff --git a/Doc/library/tkinter.turtle.rst b/Doc/library/tkinter.turtle.rst
index 575c2fc..6bf9c10 100644
--- a/Doc/library/tkinter.turtle.rst
+++ b/Doc/library/tkinter.turtle.rst
@@ -2,6 +2,10 @@
 :mod:`turtle` --- Turtle graphics for Tk
 ========================================
 
+.. module:: tkinter.turtle
+   :synopsis: Turtle graphics for Tk
+.. sectionauthor:: Gregor Lingl <gregor.lingl@aon.at>
+
 Introduction
 ============
 
@@ -1251,7 +1255,7 @@
    ...     left(10)
    ...
    >>> for _ in range(8):
-   ...     left(45); fd(2)   # a regular octogon
+   ...     left(45); fd(2)   # a regular octagon
 
 
 Animation control
@@ -1262,7 +1266,7 @@
    :param delay: positive integer
 
    Set or return the drawing *delay* in milliseconds.  (This is approximately
-   the time interval between two consecutived canvas updates.)  The longer the
+   the time interval between two consecutive canvas updates.)  The longer the
    drawing delay, the slower the animation.
 
    Optional argument:
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
index c506829..3038588 100644
--- a/Doc/library/urllib.request.rst
+++ b/Doc/library/urllib.request.rst
@@ -1062,7 +1062,7 @@
 obtain the HTTP proxy's URL.
 
 This example replaces the default :class:`ProxyHandler` with one that uses
-programatically-supplied proxy URLs, and adds proxy authorization support with
+programmatically-supplied proxy URLs, and adds proxy authorization support with
 :class:`ProxyBasicAuthHandler`. ::
 
    proxy_handler = urllib.request.ProxyHandler({'http': 'http://www.example.com:3128/'})
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index 70064fc..fcfe769 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -413,7 +413,7 @@
       from wsgiref.validate import validator
       from wsgiref.simple_server import make_server
 
-      # Our callable object which is intentionally not compilant to the 
+      # Our callable object which is intentionally not compliant to the 
       # standard, so the validator is going to break
       def simple_app(environ, start_response):
           status = '200 OK' # HTTP Status
diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst
index e249b12..1f18810 100644
--- a/Doc/library/xmlrpc.client.rst
+++ b/Doc/library/xmlrpc.client.rst
@@ -344,7 +344,7 @@
    try:
        proxy.add(2, 5)
    except xmlrpc.client.Fault, err:
-       print("A fault occured")
+       print("A fault occurred")
        print("Fault code: %d" % err.faultCode)
        print("Fault string: %s" % err.faultString)
 
@@ -391,7 +391,7 @@
    try:
        proxy.some_method()
    except xmlrpc.client.ProtocolError, err:
-       print("A protocol error occured")
+       print("A protocol error occurred")
        print("URL: %s" % err.url)
        print("HTTP/HTTPS headers: %s" % err.headers)
        print("Error code: %d" % err.errcode)