[Python-checkins] r64268 - in python/branches/tlee-ast-optimize: Doc/library/ctypes.rst Doc/library/future_builtins.rst Doc/library/mimetools.rst Doc/library/optparse.rst Doc/library/rfc822.rst Doc/library/threading.rst Doc/using/cmdline.rst Include/Python.h Include/pythonrun.h Include/pythread.h Lib/Queue.py Lib/_threading_local.py Lib/logging/__init__.py Lib/mimetools.py Lib/multiprocessing/dummy/__init__.py Lib/multiprocessing/managers.py Lib/multiprocessing/pool.py Lib/multiprocessing/queues.py Lib/multiprocessing/reduction.py Lib/multiprocessing/synchronize.py Lib/rfc822.py Lib/test/crashers/loosing_mro_ref.py Lib/test/test_dummy_threading.py Lib/test/test_heapq.py Lib/test/test_mimetools.py Lib/test/test_multiprocessing.py Lib/test/test_py3kwarn.py Lib/test/test_queue.py Lib/test/test_rfc822.py Lib/test/test_smtplib.py Lib/test/test_socket.py Lib/test/test_socketserver.py Lib/test/test_sys.py Lib/test/test_threading.py Lib/test/threaded_import_hangers.py Lib/threading.py Misc/ACKS Misc/NEWS Modules/_collectionsmodule.c Modules/_ctypes/callproc.c Modules/_localemodule.c Modules/_multiprocessing/multiprocessing.c Modules/_tkinter.c Modules/arraymodule.c Modules/errnomodule.c Modules/future_builtins.c Modules/signalmodule.c Modules/socketmodule.c Modules/socketmodule.h Modules/unicodedata_db.h Objects/tupleobject.c PC/VC6/_socket.dsp PC/VC6/pythoncore.dsp PC/VS8.0/_bsddb.vcproj PC/VS8.0/_bsddb44.vcproj PC/VS8.0/_elementtree.vcproj PC/VS8.0/_sqlite3.vcproj PC/VS8.0/kill_python.c PC/VS8.0/make_versioninfo.vcproj PC/VS8.0/pcbuild.sln PC/VS8.0/pyproject.vsprops PC/VS8.0/python.vcproj PC/VS8.0/sqlite3.vcproj PC/msvcrtmodule.c PC/pyconfig.h PCbuild/_elementtree.vcproj PCbuild/_multiprocessing.vcproj PCbuild/build_tkinter.py PCbuild/make_versioninfo.vcproj PCbuild/pcbuild.sln PCbuild/pyproject.vsprops PCbuild/python.vcproj PCbuild/vs9to8.py Parser/intrcheck.c Python/thread.c Tools/buildbot/external-amd64.bat Tools/buildbot/external-common.bat Tools/buildbot/external.bat Tools/msi/msi.py Tools/msi/msilib.py Tools/unicode/makeunicodedata.py

thomas.lee python-checkins at python.org
Sat Jun 14 10:07:25 CEST 2008


Author: thomas.lee
Date: Sat Jun 14 10:07:22 2008
New Revision: 64268

Log:
Merged revisions 64121-64232 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64123 | benjamin.peterson | 2008-06-12 02:50:57 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  fix Windows building for multiprocessing
........
  r64125 | benjamin.peterson | 2008-06-12 03:27:50 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  give the threading API PEP 8 names
........
  r64128 | benjamin.peterson | 2008-06-12 03:50:00 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  add aliases to threading module
........
  r64129 | georg.brandl | 2008-06-12 03:53:38 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  Fix typos.
........
  r64130 | georg.brandl | 2008-06-12 03:57:44 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  Clarify what ":errorhandler" refers to.
........
  r64131 | thomas.heller | 2008-06-12 03:58:19 +1000 (Thu, 12 Jun 2008) | 1 line
  
  Markup fixes, spelling corrections, and better wordings. Hopefully.
........
  r64132 | gregory.p.smith | 2008-06-12 04:00:52 +1000 (Thu, 12 Jun 2008) | 3 lines
  
  Correct an incorrect comment about our #include of stddef.h.
  (see Doug Evans' comment on python-dev 2008-06-10)
........
  r64133 | benjamin.peterson | 2008-06-12 04:02:31 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  add old names back into __all__
........
  r64135 | thomas.heller | 2008-06-12 04:10:43 +1000 (Thu, 12 Jun 2008) | 1 line
  
  More doc fixes.
........
  r64139 | thomas.heller | 2008-06-12 04:40:51 +1000 (Thu, 12 Jun 2008) | 1 line
  
  Smaller doc fixes.
........
  r64142 | georg.brandl | 2008-06-12 04:55:38 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  Add future_builtins.ascii().
........
  r64143 | thomas.heller | 2008-06-12 05:10:22 +1000 (Thu, 12 Jun 2008) | 1 line
  
  Add versionadded marker to ctypes.c_longdouble.
........
  r64146 | thomas.heller | 2008-06-12 05:58:22 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  Markup fixes, thanks Georg for the help.
  Document ctypes.util.find_library() and ctypes.util.find_msvcrt().
........
  r64147 | benjamin.peterson | 2008-06-12 06:04:30 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  update ACKS and NEWs for multiprocessing
........
  r64150 | georg.brandl | 2008-06-12 06:28:06 +1000 (Thu, 12 Jun 2008) | 2 lines
  
  Can we agree to put dots at entry ends? Thanks.
........
  r64165 | armin.rigo | 2008-06-12 19:50:58 +1000 (Thu, 12 Jun 2008) | 3 lines
  
  Sounds obvious, but I didn't even realize that you can put non-string
  keys in type dictionaries without using this locals() hack.
........
  r64169 | benjamin.peterson | 2008-06-13 00:23:49 +1000 (Fri, 13 Jun 2008) | 1 line
  
  deprecated mimetools
........
  r64185 | martin.v.loewis | 2008-06-13 04:38:47 +1000 (Fri, 13 Jun 2008) | 1 line
  
  Switch to Tcl/Tk 8.5.2.
........
  r64189 | martin.v.loewis | 2008-06-13 04:52:00 +1000 (Fri, 13 Jun 2008) | 1 line
  
  Switch to Tcl/Tk 8.5.
........
  r64191 | martin.v.loewis | 2008-06-13 05:00:14 +1000 (Fri, 13 Jun 2008) | 1 line
  
  Revert bogus disabling of Tcl and Tk.
........
  r64194 | martin.v.loewis | 2008-06-13 05:51:59 +1000 (Fri, 13 Jun 2008) | 1 line
  
  Split Tcl make targets into separate ones.
........
  r64195 | martin.v.loewis | 2008-06-13 06:06:18 +1000 (Fri, 13 Jun 2008) | 1 line
  
  Support file names which include '+' (for Tk 8.5).
........
  r64196 | martin.v.loewis | 2008-06-13 06:07:53 +1000 (Fri, 13 Jun 2008) | 1 line
  
  Fix Tcl/Tk license file in tcl8*/tk8*, include Tix license.
........
  r64197 | amaury.forgeotdarc | 2008-06-13 06:27:42 +1000 (Fri, 13 Jun 2008) | 3 lines
  
  It seems that my VS2008 Express does not include a project in the build configuration,
  if its UUID has lowercase letters.
........
  r64202 | amaury.forgeotdarc | 2008-06-13 07:58:20 +1000 (Fri, 13 Jun 2008) | 5 lines
  
  Update VS8.0 build files, using the script vs9to8.py.
  
  Also remove references to odbc libraries, which are not shipped with vs2003 express.
  (and certainly not useful)
........
  r64206 | benjamin.peterson | 2008-06-13 08:33:06 +1000 (Fri, 13 Jun 2008) | 2 lines
  
  add py3k warnings to  rfc822
........
  r64212 | benjamin.peterson | 2008-06-13 10:09:47 +1000 (Fri, 13 Jun 2008) | 3 lines
  
  #1683 prevent forking from interfering in threading storage
  This should prevent some test_multiprocessing failures
........
  r64214 | amaury.forgeotdarc | 2008-06-13 10:42:22 +1000 (Fri, 13 Jun 2008) | 6 lines
  
  Restore support for Microsoft VC6 compiler.
  Some functions in the msvcrt module are skipped,
  and socket.ioctl is enabled only when using a more recent Platform SDK.
  
  (and yes, there are still companies that use a 10-years old compiler)
........
  r64219 | neal.norwitz | 2008-06-13 16:00:46 +1000 (Fri, 13 Jun 2008) | 1 line
  
  Check for memory alloc failure
........
  r64220 | neal.norwitz | 2008-06-13 16:02:26 +1000 (Fri, 13 Jun 2008) | 3 lines
  
  Fix some memory dealloc problems when exceptions occur.
  It caused: "Fatal Python error: UNREF invalid object" in the DoubleTest.
........
  r64221 | neal.norwitz | 2008-06-13 16:03:25 +1000 (Fri, 13 Jun 2008) | 3 lines
  
  Fix typo in method name.  The LT class implemented less than.  The LE class
  should implement less than or equal to (as the code does).
........
  r64223 | georg.brandl | 2008-06-13 16:56:50 +1000 (Fri, 13 Jun 2008) | 2 lines
  
  #3095: don't leak values from Py_BuildValue.
........
  r64224 | georg.brandl | 2008-06-13 17:08:48 +1000 (Fri, 13 Jun 2008) | 2 lines
  
  Typo.
........
  r64226 | martin.v.loewis | 2008-06-13 17:47:47 +1000 (Fri, 13 Jun 2008) | 2 lines
  
  Make more symbols static.
........
  r64229 | georg.brandl | 2008-06-13 23:26:54 +1000 (Fri, 13 Jun 2008) | 2 lines
  
  Clarification.
........
  r64230 | robert.schuppenies | 2008-06-13 23:29:37 +1000 (Fri, 13 Jun 2008) | 2 lines
  
  Fixed: sys.getsizeof does not take the actual length of the tuples into account.
........


Added:
   python/branches/tlee-ast-optimize/PC/VS8.0/kill_python.c
      - copied unchanged from r64230, /python/trunk/PC/VS8.0/kill_python.c
   python/branches/tlee-ast-optimize/PCbuild/_multiprocessing.vcproj
      - copied unchanged from r64230, /python/trunk/PCbuild/_multiprocessing.vcproj
Modified:
   python/branches/tlee-ast-optimize/   (props changed)
   python/branches/tlee-ast-optimize/Doc/library/ctypes.rst
   python/branches/tlee-ast-optimize/Doc/library/future_builtins.rst
   python/branches/tlee-ast-optimize/Doc/library/mimetools.rst
   python/branches/tlee-ast-optimize/Doc/library/optparse.rst
   python/branches/tlee-ast-optimize/Doc/library/rfc822.rst
   python/branches/tlee-ast-optimize/Doc/library/threading.rst
   python/branches/tlee-ast-optimize/Doc/using/cmdline.rst
   python/branches/tlee-ast-optimize/Include/Python.h
   python/branches/tlee-ast-optimize/Include/pythonrun.h
   python/branches/tlee-ast-optimize/Include/pythread.h
   python/branches/tlee-ast-optimize/Lib/Queue.py
   python/branches/tlee-ast-optimize/Lib/_threading_local.py
   python/branches/tlee-ast-optimize/Lib/logging/__init__.py
   python/branches/tlee-ast-optimize/Lib/mimetools.py
   python/branches/tlee-ast-optimize/Lib/multiprocessing/dummy/__init__.py
   python/branches/tlee-ast-optimize/Lib/multiprocessing/managers.py
   python/branches/tlee-ast-optimize/Lib/multiprocessing/pool.py
   python/branches/tlee-ast-optimize/Lib/multiprocessing/queues.py
   python/branches/tlee-ast-optimize/Lib/multiprocessing/reduction.py
   python/branches/tlee-ast-optimize/Lib/multiprocessing/synchronize.py
   python/branches/tlee-ast-optimize/Lib/rfc822.py
   python/branches/tlee-ast-optimize/Lib/test/crashers/loosing_mro_ref.py
   python/branches/tlee-ast-optimize/Lib/test/test_dummy_threading.py
   python/branches/tlee-ast-optimize/Lib/test/test_heapq.py
   python/branches/tlee-ast-optimize/Lib/test/test_mimetools.py
   python/branches/tlee-ast-optimize/Lib/test/test_multiprocessing.py
   python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py
   python/branches/tlee-ast-optimize/Lib/test/test_queue.py
   python/branches/tlee-ast-optimize/Lib/test/test_rfc822.py
   python/branches/tlee-ast-optimize/Lib/test/test_smtplib.py
   python/branches/tlee-ast-optimize/Lib/test/test_socket.py
   python/branches/tlee-ast-optimize/Lib/test/test_socketserver.py
   python/branches/tlee-ast-optimize/Lib/test/test_sys.py
   python/branches/tlee-ast-optimize/Lib/test/test_threading.py
   python/branches/tlee-ast-optimize/Lib/test/threaded_import_hangers.py
   python/branches/tlee-ast-optimize/Lib/threading.py
   python/branches/tlee-ast-optimize/Misc/ACKS
   python/branches/tlee-ast-optimize/Misc/NEWS
   python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c
   python/branches/tlee-ast-optimize/Modules/_ctypes/callproc.c
   python/branches/tlee-ast-optimize/Modules/_localemodule.c
   python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.c
   python/branches/tlee-ast-optimize/Modules/_tkinter.c
   python/branches/tlee-ast-optimize/Modules/arraymodule.c
   python/branches/tlee-ast-optimize/Modules/errnomodule.c
   python/branches/tlee-ast-optimize/Modules/future_builtins.c
   python/branches/tlee-ast-optimize/Modules/signalmodule.c
   python/branches/tlee-ast-optimize/Modules/socketmodule.c
   python/branches/tlee-ast-optimize/Modules/socketmodule.h
   python/branches/tlee-ast-optimize/Modules/unicodedata_db.h
   python/branches/tlee-ast-optimize/Objects/tupleobject.c
   python/branches/tlee-ast-optimize/PC/VC6/_socket.dsp
   python/branches/tlee-ast-optimize/PC/VC6/pythoncore.dsp
   python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb.vcproj
   python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb44.vcproj
   python/branches/tlee-ast-optimize/PC/VS8.0/_elementtree.vcproj
   python/branches/tlee-ast-optimize/PC/VS8.0/_sqlite3.vcproj
   python/branches/tlee-ast-optimize/PC/VS8.0/make_versioninfo.vcproj
   python/branches/tlee-ast-optimize/PC/VS8.0/pcbuild.sln
   python/branches/tlee-ast-optimize/PC/VS8.0/pyproject.vsprops
   python/branches/tlee-ast-optimize/PC/VS8.0/python.vcproj
   python/branches/tlee-ast-optimize/PC/VS8.0/sqlite3.vcproj
   python/branches/tlee-ast-optimize/PC/msvcrtmodule.c
   python/branches/tlee-ast-optimize/PC/pyconfig.h
   python/branches/tlee-ast-optimize/PCbuild/_elementtree.vcproj
   python/branches/tlee-ast-optimize/PCbuild/build_tkinter.py
   python/branches/tlee-ast-optimize/PCbuild/make_versioninfo.vcproj
   python/branches/tlee-ast-optimize/PCbuild/pcbuild.sln
   python/branches/tlee-ast-optimize/PCbuild/pyproject.vsprops
   python/branches/tlee-ast-optimize/PCbuild/python.vcproj
   python/branches/tlee-ast-optimize/PCbuild/vs9to8.py
   python/branches/tlee-ast-optimize/Parser/intrcheck.c
   python/branches/tlee-ast-optimize/Python/thread.c
   python/branches/tlee-ast-optimize/Tools/buildbot/external-amd64.bat
   python/branches/tlee-ast-optimize/Tools/buildbot/external-common.bat
   python/branches/tlee-ast-optimize/Tools/buildbot/external.bat
   python/branches/tlee-ast-optimize/Tools/msi/msi.py
   python/branches/tlee-ast-optimize/Tools/msi/msilib.py
   python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py

Modified: python/branches/tlee-ast-optimize/Doc/library/ctypes.rst
==============================================================================
--- python/branches/tlee-ast-optimize/Doc/library/ctypes.rst	(original)
+++ python/branches/tlee-ast-optimize/Doc/library/ctypes.rst	Sat Jun 14 10:07:22 2008
@@ -42,7 +42,7 @@
 convention, while *windll* libraries call functions using the ``stdcall``
 calling convention. *oledll* also uses the ``stdcall`` calling convention, and
 assumes the functions return a Windows :class:`HRESULT` error code. The error
-code is used to automatically raise :class:`WindowsError` Python exceptions when
+code is used to automatically raise a :class:`WindowsError` exception when
 the function call fails.
 
 Here are some examples for Windows. Note that ``msvcrt`` is the MS standard C
@@ -57,10 +57,10 @@
    >>> libc = cdll.msvcrt # doctest: +WINDOWS
    >>>
 
-Windows appends the usual '.dll' file suffix automatically.
+Windows appends the usual ``.dll`` file suffix automatically.
 
 On Linux, it is required to specify the filename *including* the extension to
-load a library, so attribute access does not work. Either the
+load a library, so attribute access can not be used to load libraries. Either the
 :meth:`LoadLibrary` method of the dll loaders should be used, or you should load
 the library by creating an instance of CDLL by calling the constructor::
 
@@ -109,7 +109,7 @@
 
 *windll* does not try to select one of them by magic, you must access the
 version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW``
-explicitly, and then call it with normal strings or unicode strings
+explicitly, and then call it with strings or unicode strings
 respectively.
 
 Sometimes, dlls export functions with names which aren't valid Python
@@ -424,9 +424,9 @@
 in the :attr:`argtypes` sequence. The :meth:`from_param` class method receives
 the Python object passed to the function call, it should do a typecheck or
 whatever is needed to make sure this object is acceptable, and then return the
-object itself, it's :attr:`_as_parameter_` attribute, or whatever you want to
+object itself, its :attr:`_as_parameter_` attribute, or whatever you want to
 pass as the C function argument in this case. Again, the result should be an
-integer, string, unicode, a ``ctypes`` instance, or something having the
+integer, string, unicode, a ``ctypes`` instance, or an object with an
 :attr:`_as_parameter_` attribute.
 
 
@@ -721,6 +721,8 @@
    c_long(99)
    >>>
 
+.. XXX Document dereferencing pointers, and that it is preferred over the .contents attribute.
+
 Pointer instances can also be indexed with integers::
 
    >>> pi[0]
@@ -767,7 +769,7 @@
    >>>
 
 ``ctypes`` checks for ``NULL`` when dereferencing pointers (but dereferencing
-non-\ ``NULL`` pointers would crash Python)::
+invalid non-\ ``NULL`` pointers would crash Python)::
 
    >>> null_ptr[0]
    Traceback (most recent call last):
@@ -813,9 +815,9 @@
    >>> bar.values = None
    >>>
 
-XXX list other conversions...
+.. XXX list other conversions...
 
-Sometimes you have instances of incompatible types.  In ``C``, you can cast one
+Sometimes you have instances of incompatible types.  In C, you can cast one
 type into another type.  ``ctypes`` provides a ``cast`` function which can be
 used in the same way.  The ``Bar`` structure defined above accepts
 ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its ``values`` field,
@@ -1072,7 +1074,7 @@
 Accessing values exported from dlls
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Sometimes, a dll not only exports functions, it also exports variables. An
+Some shared libraries not only export functions, they also export variables. An
 example in the Python library itself is the ``Py_OptimizeFlag``, an integer set
 to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` flag given on
 startup.
@@ -1248,17 +1250,6 @@
 is already known, on a case by case basis.
 
 
-.. _ctypes-bugs-todo-non-implemented-things:
-
-Bugs, ToDo and non-implemented things
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Enumeration types are not implemented. You can do it easily yourself, using
-:class:`c_int` as the base class.
-
-``long double`` is not implemented.
-
-
 .. _ctypes-ctypes-reference:
 
 ctypes reference
@@ -1617,9 +1608,8 @@
    `use_last_error` does the same for the Windows error code.
 
    .. versionchanged:: 2.6
-
-   The optional `use_errno` and `use_last_error` parameters were added
-   in Python 2.6.
+      The optional `use_errno` and `use_last_error` parameters were
+      added.
 
 
 .. function:: WINFUNCTYPE(restype, *argtypes, use_errno=False, use_last_error=False)
@@ -1635,75 +1625,71 @@
    The returned function prototype creates functions that use the Python calling
    convention.  The function will *not* release the GIL during the call.
 
-Function prototypes created by the factory functions can be instantiated in
-different ways, depending on the type and number of the parameters in the call.
-
-
-.. function:: prototype(address)
-   :noindex:
+Function prototypes created by these factory functions can be instantiated in
+different ways, depending on the type and number of the parameters in the call:
 
-   Returns a foreign function at the specified address.
 
+   .. function:: prototype(address)
+      :noindex:
+      :module:
 
-.. function:: prototype(callable)
-   :noindex:
+      Returns a foreign function at the specified address which must be an integer.
 
-   Create a C callable function (a callback function) from a Python ``callable``.
 
+   .. function:: prototype(callable)
+      :noindex:
+      :module:
 
-.. function:: prototype(func_spec[, paramflags])
-   :noindex:
+      Create a C callable function (a callback function) from a Python ``callable``.
 
-   Returns a foreign function exported by a shared library. ``func_spec`` must be a
-   2-tuple ``(name_or_ordinal, library)``. The first item is the name of the
-   exported function as string, or the ordinal of the exported function as small
-   integer.  The second item is the shared library instance.
 
+   .. function:: prototype(func_spec[, paramflags])
+      :noindex:
+      :module:
 
-.. function:: prototype(vtbl_index, name[, paramflags[, iid]])
-   :noindex:
-
-   Returns a foreign function that will call a COM method. ``vtbl_index`` is the
-   index into the virtual function table, a small non-negative integer. *name* is
-   name of the COM method. *iid* is an optional pointer to the interface identifier
-   which is used in extended error reporting.
+      Returns a foreign function exported by a shared library. ``func_spec`` must be a
+      2-tuple ``(name_or_ordinal, library)``. The first item is the name of the
+      exported function as string, or the ordinal of the exported function as small
+      integer.  The second item is the shared library instance.
 
-   COM methods use a special calling convention: They require a pointer to the COM
-   interface as first argument, in addition to those parameters that are specified
-   in the :attr:`argtypes` tuple.
 
-The optional *paramflags* parameter creates foreign function wrappers with much
-more functionality than the features described above.
+   .. function:: prototype(vtbl_index, name[, paramflags[, iid]])
+      :noindex:
+      :module:
 
-*paramflags* must be a tuple of the same length as :attr:`argtypes`.
+      Returns a foreign function that will call a COM method. ``vtbl_index`` is the
+      index into the virtual function table, a small non-negative integer. *name* is
+      name of the COM method. *iid* is an optional pointer to the interface identifier
+      which is used in extended error reporting.
 
-Each item in this tuple contains further information about a parameter, it must
-be a tuple containing 1, 2, or 3 items.
-
-The first item is an integer containing flags for the parameter:
-
-
-.. data:: 1
-   :noindex:
+      COM methods use a special calling convention: They require a pointer to the COM
+      interface as first argument, in addition to those parameters that are specified
+      in the :attr:`argtypes` tuple.
 
-   Specifies an input parameter to the function.
+   The optional *paramflags* parameter creates foreign function wrappers with much
+   more functionality than the features described above.
 
+   *paramflags* must be a tuple of the same length as :attr:`argtypes`.
 
-.. data:: 2
-   :noindex:
+   Each item in this tuple contains further information about a parameter, it must
+   be a tuple containing one, two, or three items.
 
-   Output parameter.  The foreign function fills in a value.
+   The first item is an integer containing a combination of direction
+   flags for the parameter:
 
+      1
+         Specifies an input parameter to the function.
 
-.. data:: 4
-   :noindex:
+      2
+         Output parameter.  The foreign function fills in a value.
 
-   Input parameter which defaults to the integer zero.
+      4
+         Input parameter which defaults to the integer zero.
 
-The optional second item is the parameter name as string.  If this is specified,
-the foreign function can be called with named parameters.
+   The optional second item is the parameter name as string.  If this is specified,
+   the foreign function can be called with named parameters.
 
-The optional third item is the default value for this parameter.
+   The optional third item is the default value for this parameter.
 
 This example demonstrates how to wrap the Windows ``MessageBoxA`` function so
 that it supports default parameters and named arguments. The C declaration from
@@ -1716,16 +1702,14 @@
        LPCSTR lpCaption,
        UINT uType);
 
-Here is the wrapping with ``ctypes``:
-
-   ::
+Here is the wrapping with ``ctypes``::
 
-      >>> from ctypes import c_int, WINFUNCTYPE, windll
-      >>> from ctypes.wintypes import HWND, LPCSTR, UINT
-      >>> prototype = WINFUNCTYPE(c_int, HWND, LPCSTR, LPCSTR, UINT)
-      >>> paramflags = (1, "hwnd", 0), (1, "text", "Hi"), (1, "caption", None), (1, "flags", 0)
-      >>> MessageBox = prototype(("MessageBoxA", windll.user32), paramflags)
-      >>>
+   >>> from ctypes import c_int, WINFUNCTYPE, windll
+   >>> from ctypes.wintypes import HWND, LPCSTR, UINT
+   >>> prototype = WINFUNCTYPE(c_int, HWND, LPCSTR, LPCSTR, UINT)
+   >>> paramflags = (1, "hwnd", 0), (1, "text", "Hi"), (1, "caption", None), (1, "flags", 0)
+   >>> MessageBox = prototype(("MessageBoxA", windll.user32), paramflags)
+   >>>
 
 The MessageBox foreign function can now be called in these ways::
 
@@ -1743,16 +1727,14 @@
         HWND hWnd,
         LPRECT lpRect);
 
-Here is the wrapping with ``ctypes``:
-
-   ::
+Here is the wrapping with ``ctypes``::
 
-      >>> from ctypes import POINTER, WINFUNCTYPE, windll, WinError
-      >>> from ctypes.wintypes import BOOL, HWND, RECT
-      >>> prototype = WINFUNCTYPE(BOOL, HWND, POINTER(RECT))
-      >>> paramflags = (1, "hwnd"), (2, "lprect")
-      >>> GetWindowRect = prototype(("GetWindowRect", windll.user32), paramflags)
-      >>>
+   >>> from ctypes import POINTER, WINFUNCTYPE, windll, WinError
+   >>> from ctypes.wintypes import BOOL, HWND, RECT
+   >>> prototype = WINFUNCTYPE(BOOL, HWND, POINTER(RECT))
+   >>> paramflags = (1, "hwnd"), (2, "lprect")
+   >>> GetWindowRect = prototype(("GetWindowRect", windll.user32), paramflags)
+   >>>
 
 Functions with output parameters will automatically return the output parameter
 value if there is a single one, or a tuple containing the output parameter
@@ -1768,6 +1750,7 @@
    ...     if not result:
    ...         raise WinError()
    ...     return args
+   ...
    >>> GetWindowRect.errcheck = errcheck
    >>>
 
@@ -1782,7 +1765,7 @@
    ...         raise WinError()
    ...     rc = args[1]
    ...     return rc.left, rc.top, rc.bottom, rc.right
-   >>>
+   ...
    >>> GetWindowRect.errcheck = errcheck
    >>>
 
@@ -1878,6 +1861,33 @@
    servers with ctypes. It is called from the DllGetClassObject function that the
    ``_ctypes`` extension dll exports.
 
+.. function:: find_library(name)
+   :module: ctypes.util
+
+   Try to find a library and return a pathname.  `name` is the library name without
+   any prefix like `lib`, suffix like ``.so``, ``.dylib`` or version number (this
+   is the form used for the posix linker option :option:`-l`).  If no library can
+   be found, returns ``None``.
+
+   The exact functionality is system dependent.
+
+   .. versionchanged:: 2.6
+      Windows only: ``find_library("m")`` or
+      ``find_library("c")`` return the result of a call to
+      ``find_msvcrt()``.
+
+.. function:: find_msvcrt()
+   :module: ctypes.util
+
+   Windows only: return the filename of the VC runtype library used
+   by Python, and by the extension modules.  If the name of the
+   library cannot be determined, ``None`` is returned.
+
+   If you need to free memory, for example, allocated by an extension
+   module with a call to the ``free(void *)``, it is important that you
+   use the function in the same library that allocated the memory.
+
+   .. versionadded:: 2.6
 
 .. function:: FormatError([code])
 
@@ -2172,6 +2182,7 @@
    optional float initializer.  On platforms where ``sizeof(long
    double) == sizeof(double)`` it is an alias to :class:`c_double`.
 
+   .. versionadded:: 2.6
 
 .. class:: c_float
 

Modified: python/branches/tlee-ast-optimize/Doc/library/future_builtins.rst
==============================================================================
--- python/branches/tlee-ast-optimize/Doc/library/future_builtins.rst	(original)
+++ python/branches/tlee-ast-optimize/Doc/library/future_builtins.rst	Sat Jun 14 10:07:22 2008
@@ -28,6 +28,14 @@
 
 Available builtins are:
 
+.. function:: ascii(object)
+
+   Returns the same as :func:`repr`.  In Python 3, :func:`repr` will return
+   printable Unicode characters unescaped, while :func:`ascii` will always
+   backslash-escape them.  Using :func:`future_builtins.ascii` instead of
+   :func:`repr` in 2.6 code makes it clear that you need a pure ASCII return
+   value.
+
 .. function:: filter(function, iterable)
 
    Works like :func:`itertools.ifilter`.

Modified: python/branches/tlee-ast-optimize/Doc/library/mimetools.rst
==============================================================================
--- python/branches/tlee-ast-optimize/Doc/library/mimetools.rst	(original)
+++ python/branches/tlee-ast-optimize/Doc/library/mimetools.rst	Sat Jun 14 10:07:22 2008
@@ -9,7 +9,8 @@
 
 .. deprecated:: 2.3
    The :mod:`email` package should be used in preference to the :mod:`mimetools`
-   module.  This module is present only to maintain backward compatibility.
+   module.  This module is present only to maintain backward compatibility, and
+   it has been removed in 3.x.
 
 .. index:: module: rfc822
 

Modified: python/branches/tlee-ast-optimize/Doc/library/optparse.rst
==============================================================================
--- python/branches/tlee-ast-optimize/Doc/library/optparse.rst	(original)
+++ python/branches/tlee-ast-optimize/Doc/library/optparse.rst	Sat Jun 14 10:07:22 2008
@@ -641,9 +641,9 @@
 option involved in the error; be sure to do the same when calling
 ``parser.error()`` from your application code.
 
-If :mod:`optparse`'s default error-handling behaviour does not suite your needs,
-you'll need to subclass OptionParser and override ``exit()`` and/or
-:meth:`error`.
+If :mod:`optparse`'s default error-handling behaviour does not suit your needs,
+you'll need to subclass OptionParser and override its :meth:`exit` and/or
+:meth:`error` methods.
 
 
 .. _optparse-putting-it-all-together:

Modified: python/branches/tlee-ast-optimize/Doc/library/rfc822.rst
==============================================================================
--- python/branches/tlee-ast-optimize/Doc/library/rfc822.rst	(original)
+++ python/branches/tlee-ast-optimize/Doc/library/rfc822.rst	Sat Jun 14 10:07:22 2008
@@ -9,7 +9,8 @@
 
 .. deprecated:: 2.3
    The :mod:`email` package should be used in preference to the :mod:`rfc822`
-   module.  This module is present only to maintain backward compatibility.
+   module.  This module is present only to maintain backward compatibility, and
+   has been removed in 3.0.
 
 This module defines a class, :class:`Message`, which represents an "email
 message" as defined by the Internet standard :rfc:`2822`. [#]_  Such messages

Modified: python/branches/tlee-ast-optimize/Doc/library/threading.rst
==============================================================================
--- python/branches/tlee-ast-optimize/Doc/library/threading.rst	(original)
+++ python/branches/tlee-ast-optimize/Doc/library/threading.rst	Sat Jun 14 10:07:22 2008
@@ -1,4 +1,3 @@
-
 :mod:`threading` --- Higher-level threading interface
 =====================================================
 
@@ -13,10 +12,16 @@
 The :mod:`dummy_threading` module is provided for situations where
 :mod:`threading` cannot be used because :mod:`thread` is missing.
 
+.. note::
+
+   In 3.x, names in ``camelCase`` have been renamed to their underscored
+   equivalents.  Both names are available in 2.6.
+
 This module defines the following functions and objects:
 
 
-.. function:: activeCount()
+.. function:: active_count()
+              activeCount()
 
    Return the number of :class:`Thread` objects currently alive.  The returned
    count is equal to the length of the list returned by :func:`enumerate`.
@@ -30,7 +35,8 @@
    thread.
 
 
-.. function:: currentThread()
+.. function:: current_thread()
+              currentThread()
 
    Return the current :class:`Thread` object, corresponding to the caller's thread
    of control.  If the caller's thread of control was not created through the
@@ -40,10 +46,10 @@
 
 .. function:: enumerate()
 
-   Return a list of all :class:`Thread` objects currently alive.  The list includes
-   daemonic threads, dummy thread objects created by :func:`currentThread`, and the
-   main thread.  It excludes terminated threads and threads that have not yet been
-   started.
+   Return a list of all :class:`Thread` objects currently alive.  The list
+   includes daemonic threads, dummy thread objects created by
+   :func:`current_thread`, and the main thread.  It excludes terminated threads
+   and threads that have not yet been started.
 
 
 .. function:: Event()
@@ -395,7 +401,8 @@
    lock, its caller should.
 
 
-.. method:: Condition.notifyAll()
+.. method:: Condition.notify_all()
+            Condition.notifyAll()
 
    Wake up all threads waiting on this condition.  This method acts like
    :meth:`notify`, but wakes up all waiting threads instead of one. If the calling
@@ -498,7 +505,8 @@
    The internal flag is initially false.
 
 
-.. method:: Event.isSet()
+.. method:: Event.is_set()
+            Event.isSet()
 
    Return true if and only if the internal flag is true.
 
@@ -552,12 +560,12 @@
 thread until the thread whose :meth:`join` method is called is terminated.
 
 A thread has a name.  The name can be passed to the constructor, set with the
-:meth:`setName` method, and retrieved with the :meth:`getName` method.
+:meth:`set_name` method, and retrieved with the :meth:`get_name` method.
 
 A thread can be flagged as a "daemon thread".  The significance of this flag is
 that the entire Python program exits when only daemon threads are left.  The
 initial value is inherited from the creating thread.  The flag can be set with
-the :meth:`setDaemon` method and retrieved with the :meth:`isDaemon` method.
+the :meth:`set_daemon` method and retrieved with the :meth:`is_daemon` method.
 
 There is a "main thread" object; this corresponds to the initial thread of
 control in the Python program.  It is not a daemon thread.
@@ -637,12 +645,14 @@
    raises the same exception.
 
 
-.. method:: Thread.getName()
+.. method:: Thread.get_name()
+            Thread.getName()
 
    Return the thread's name.
 
 
-.. method:: Thread.setName(name)
+.. method:: Thread.set_name(name)
+            Thread.setName(name)
 
    Set the thread's name.
 
@@ -651,18 +661,19 @@
    constructor.
 
 
-.. method:: Thread.getIdent()
+.. method:: Thread.get_ident()
 
    Return the 'thread identifier' of this thread or None if the thread has not
-   been started.  This is a nonzero integer.  See the :mod:`thread` module's
-   :func:`get_ident()` function.  Thread identifiers may be recycled when a
-   thread exits and another thread is created.  The identifier is returned
-   even after the thread has exited.
+   been started.  This is a nonzero integer.  See the :func:`thread.get_ident()`
+   function.  Thread identifiers may be recycled when a thread exits and another
+   thread is created.  The identifier is returned even after the thread has
+   exited.
 
    .. versionadded:: 2.6
 
 
-.. method:: Thread.isAlive()
+.. method:: Thread.is_alive()
+            Thread.isAlive()
 
    Return whether the thread is alive.
 
@@ -671,12 +682,14 @@
    returns a list of all alive threads.
 
 
-.. method:: Thread.isDaemon()
+.. method:: Thread.is_daemon()
+            Thread.isDaemon()
 
    Return the thread's daemon flag.
 
 
-.. method:: Thread.setDaemon(daemonic)
+.. method:: Thread.set_daemon(daemonic)
+            Thread.setDaemon(daemonic)
 
    Set the thread's daemon flag to the Boolean value *daemonic*. This must be
    called before :meth:`start` is called, otherwise :exc:`RuntimeError` is raised.

Modified: python/branches/tlee-ast-optimize/Doc/using/cmdline.rst
==============================================================================
--- python/branches/tlee-ast-optimize/Doc/using/cmdline.rst	(original)
+++ python/branches/tlee-ast-optimize/Doc/using/cmdline.rst	Sat Jun 14 10:07:22 2008
@@ -484,7 +484,8 @@
 .. envvar:: PYTHONIOENCODING
 
    Overrides the encoding used for stdin/stdout/stderr, in the syntax
-   encodingname:errorhandler, with the :errors part being optional.
+   ``encodingname:errorhandler``.  The ``:errorhandler`` part is optional and
+   has the same meaning as in :func:`str.encode`.
 
    .. versionadded:: 2.6
 

Modified: python/branches/tlee-ast-optimize/Include/Python.h
==============================================================================
--- python/branches/tlee-ast-optimize/Include/Python.h	(original)
+++ python/branches/tlee-ast-optimize/Include/Python.h	Sat Jun 14 10:07:22 2008
@@ -44,7 +44,7 @@
 #include <unistd.h>
 #endif
 
-/* For uintptr_t, intptr_t */
+/* For size_t? */
 #ifdef HAVE_STDDEF_H
 #include <stddef.h>
 #endif

Modified: python/branches/tlee-ast-optimize/Include/pythonrun.h
==============================================================================
--- python/branches/tlee-ast-optimize/Include/pythonrun.h	(original)
+++ python/branches/tlee-ast-optimize/Include/pythonrun.h	Sat Jun 14 10:07:22 2008
@@ -154,7 +154,7 @@
    to a 8k margin. */
 #define PYOS_STACK_MARGIN 2048
 
-#if defined(WIN32) && !defined(MS_WIN64) && defined(_MSC_VER)
+#if defined(WIN32) && !defined(MS_WIN64) && defined(_MSC_VER) && _MSC_VER >= 1300
 /* Enable stack checking under Microsoft C */
 #define USE_STACKCHECK
 #endif

Modified: python/branches/tlee-ast-optimize/Include/pythread.h
==============================================================================
--- python/branches/tlee-ast-optimize/Include/pythread.h	(original)
+++ python/branches/tlee-ast-optimize/Include/pythread.h	Sat Jun 14 10:07:22 2008
@@ -40,6 +40,9 @@
 PyAPI_FUNC(void *) PyThread_get_key_value(int);
 PyAPI_FUNC(void) PyThread_delete_key_value(int key);
 
+/* Cleanup after a fork */
+PyAPI_FUNC(void) PyThread_ReInitTLS(void);
+
 #ifdef __cplusplus
 }
 #endif

Modified: python/branches/tlee-ast-optimize/Lib/Queue.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/Queue.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/Queue.py	Sat Jun 14 10:07:22 2008
@@ -62,7 +62,7 @@
             if unfinished <= 0:
                 if unfinished < 0:
                     raise ValueError('task_done() called too many times')
-                self.all_tasks_done.notifyAll()
+                self.all_tasks_done.notify_all()
             self.unfinished_tasks = unfinished
         finally:
             self.all_tasks_done.release()

Modified: python/branches/tlee-ast-optimize/Lib/_threading_local.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/_threading_local.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/_threading_local.py	Sat Jun 14 10:07:22 2008
@@ -162,16 +162,16 @@
         # __init__ being called, to make sure we don't call it
         # again ourselves.
         dict = object.__getattribute__(self, '__dict__')
-        currentThread().__dict__[key] = dict
+        current_thread().__dict__[key] = dict
 
         return self
 
 def _patch(self):
     key = object.__getattribute__(self, '_local__key')
-    d = currentThread().__dict__.get(key)
+    d = current_thread().__dict__.get(key)
     if d is None:
         d = {}
-        currentThread().__dict__[key] = d
+        current_thread().__dict__[key] = d
         object.__setattr__(self, '__dict__', d)
 
         # we have a new instance dict, so call out __init__ if we have
@@ -238,4 +238,4 @@
                 except KeyError:
                     pass # didn't have anything in this thread
 
-from threading import currentThread, RLock
+from threading import current_thread, RLock

Modified: python/branches/tlee-ast-optimize/Lib/logging/__init__.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/logging/__init__.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/logging/__init__.py	Sat Jun 14 10:07:22 2008
@@ -262,7 +262,7 @@
         self.relativeCreated = (self.created - _startTime) * 1000
         if logThreads and thread:
             self.thread = thread.get_ident()
-            self.threadName = threading.currentThread().getName()
+            self.threadName = threading.current_thread().get_name()
         else:
             self.thread = None
             self.threadName = None

Modified: python/branches/tlee-ast-optimize/Lib/mimetools.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/mimetools.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/mimetools.py	Sat Jun 14 10:07:22 2008
@@ -5,6 +5,9 @@
 import rfc822
 import tempfile
 
+from warnings import warnpy3k
+warnpy3k("in 3.x, mimetools has been removed in favor of the email package")
+
 __all__ = ["Message","choose_boundary","encode","decode","copyliteral",
            "copybinary"]
 

Modified: python/branches/tlee-ast-optimize/Lib/multiprocessing/dummy/__init__.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/multiprocessing/dummy/__init__.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/multiprocessing/dummy/__init__.py	Sat Jun 14 10:07:22 2008
@@ -48,24 +48,24 @@
         threading.Thread.start(self)
 
     def get_exitcode(self):
-        if self._start_called and not self.isAlive():
+        if self._start_called and not self.is_alive():
             return 0
         else:
             return None
 
     # XXX
     if sys.version_info < (3, 0):
-        is_alive = threading.Thread.isAlive.im_func
-        get_name = threading.Thread.getName.im_func
-        set_name = threading.Thread.setName.im_func
-        is_daemon = threading.Thread.isDaemon.im_func
-        set_daemon = threading.Thread.setDaemon.im_func
+        is_alive = threading.Thread.is_alive.im_func
+        get_name = threading.Thread.get_name.im_func
+        set_name = threading.Thread.set_name.im_func
+        is_daemon = threading.Thread.is_daemon.im_func
+        set_daemon = threading.Thread.set_daemon.im_func
     else:
-        is_alive = threading.Thread.isAlive
-        get_name = threading.Thread.getName
-        set_name = threading.Thread.setName
-        is_daemon = threading.Thread.isDaemon
-        set_daemon = threading.Thread.setDaemon
+        is_alive = threading.Thread.is_alive
+        get_name = threading.Thread.get_name
+        set_name = threading.Thread.set_name
+        is_daemon = threading.Thread.is_daemon
+        set_daemon = threading.Thread.set_daemon
 
 #
 #
@@ -74,22 +74,22 @@
 class Condition(threading._Condition):
     # XXX
     if sys.version_info < (3, 0):
-        notify_all = threading._Condition.notifyAll.im_func
+        notify_all = threading._Condition.notify_all.im_func
     else:
-        notify_all = threading._Condition.notifyAll
+        notify_all = threading._Condition.notify_all
 
 #
 #
 #
 
 Process = DummyProcess
-current_process = threading.currentThread
+current_process = threading.current_thread
 current_process()._children = weakref.WeakKeyDictionary()
 
 def active_children():
     children = current_process()._children
     for p in list(children):
-        if not p.isAlive():
+        if not p.is_alive():
             children.pop(p, None)
     return list(children)
 

Modified: python/branches/tlee-ast-optimize/Lib/multiprocessing/managers.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/multiprocessing/managers.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/multiprocessing/managers.py	Sat Jun 14 10:07:22 2008
@@ -169,7 +169,7 @@
                     except (OSError, IOError):
                         continue
                     t = threading.Thread(target=self.handle_request, args=(c,))
-                    t.setDaemon(True)
+                    t.set_daemon(True)
                     t.start()
             except (KeyboardInterrupt, SystemExit):
                 pass
@@ -216,7 +216,7 @@
         Handle requests from the proxies in a particular process/thread
         '''
         util.debug('starting server thread to service %r',
-                   threading.currentThread().getName())
+                   threading.current_thread().get_name())
 
         recv = conn.recv
         send = conn.send
@@ -266,7 +266,7 @@
 
             except EOFError:
                 util.debug('got EOF -- exiting thread serving %r',
-                           threading.currentThread().getName())
+                           threading.current_thread().get_name())
                 sys.exit(0)
 
             except Exception:
@@ -279,7 +279,7 @@
                     send(('#UNSERIALIZABLE', repr(msg)))
             except Exception, e:
                 util.info('exception in thread serving %r',
-                        threading.currentThread().getName())
+                        threading.current_thread().get_name())
                 util.info(' ... message was %r', msg)
                 util.info(' ... exception was %r', e)
                 conn.close()
@@ -401,7 +401,7 @@
         '''
         Spawn a new thread to serve this connection
         '''
-        threading.currentThread().setName(name)
+        threading.current_thread().set_name(name)
         c.send(('#RETURN', None))
         self.serve_client(c)
 
@@ -715,8 +715,8 @@
     def _connect(self):
         util.debug('making connection to manager')
         name = current_process().get_name()
-        if threading.currentThread().getName() != 'MainThread':
-            name += '|' + threading.currentThread().getName()
+        if threading.current_thread().get_name() != 'MainThread':
+            name += '|' + threading.current_thread().get_name()
         conn = self._Client(self._token.address, authkey=self._authkey)
         dispatch(conn, None, 'accept_connection', (name,))
         self._tls.connection = conn
@@ -729,7 +729,7 @@
             conn = self._tls.connection
         except AttributeError:
             util.debug('thread %r does not own a connection',
-                       threading.currentThread().getName())
+                       threading.current_thread().get_name())
             self._connect()
             conn = self._tls.connection
 
@@ -790,7 +790,7 @@
         # the process owns no more references to objects for this manager
         if not idset and hasattr(tls, 'connection'):
             util.debug('thread %r has no more proxies so closing conn',
-                       threading.currentThread().getName())
+                       threading.current_thread().get_name())
             tls.connection.close()
             del tls.connection
             
@@ -969,13 +969,13 @@
 
 class ConditionProxy(AcquirerProxy):
     # XXX will Condition.notfyAll() name be available in Py3.0?
-    _exposed_ = ('acquire', 'release', 'wait', 'notify', 'notifyAll')
+    _exposed_ = ('acquire', 'release', 'wait', 'notify', 'notify_all')
     def wait(self, timeout=None):
         return self._callmethod('wait', (timeout,))
     def notify(self):
         return self._callmethod('notify')
     def notify_all(self):
-        return self._callmethod('notifyAll')
+        return self._callmethod('notify_all')
 
 class EventProxy(BaseProxy):
     # XXX will Event.isSet name be available in Py3.0?

Modified: python/branches/tlee-ast-optimize/Lib/multiprocessing/pool.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/multiprocessing/pool.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/multiprocessing/pool.py	Sat Jun 14 10:07:22 2008
@@ -107,7 +107,7 @@
             target=Pool._handle_tasks,
             args=(self._taskqueue, self._quick_put, self._outqueue, self._pool)
             )
-        self._task_handler.setDaemon(True)
+        self._task_handler.set_daemon(True)
         self._task_handler._state = RUN
         self._task_handler.start()
 
@@ -115,7 +115,7 @@
             target=Pool._handle_results,
             args=(self._outqueue, self._quick_get, self._cache)
             )
-        self._result_handler.setDaemon(True)
+        self._result_handler.set_daemon(True)
         self._result_handler._state = RUN
         self._result_handler.start()
 
@@ -213,7 +213,7 @@
 
     @staticmethod
     def _handle_tasks(taskqueue, put, outqueue, pool):
-        thread = threading.currentThread()
+        thread = threading.current_thread()
 
         for taskseq, set_length in iter(taskqueue.get, None):
             i = -1
@@ -252,7 +252,7 @@
 
     @staticmethod
     def _handle_results(outqueue, get, cache):
-        thread = threading.currentThread()
+        thread = threading.current_thread()
 
         while 1:
             try:
@@ -346,7 +346,7 @@
         # task_handler may be blocked trying to put items on inqueue
         debug('removing tasks from inqueue until task handler finished')
         inqueue._rlock.acquire()
-        while task_handler.isAlive() and inqueue._reader.poll():
+        while task_handler.is_alive() and inqueue._reader.poll():
             inqueue._reader.recv()
             time.sleep(0)
 
@@ -362,7 +362,7 @@
         debug('helping task handler/workers to finish')
         cls._help_stuff_finish(inqueue, task_handler, len(pool))
 
-        assert result_handler.isAlive() or len(cache) == 0
+        assert result_handler.is_alive() or len(cache) == 0
         
         result_handler._state = TERMINATE
         outqueue.put(None)                  # sentinel
@@ -591,6 +591,6 @@
         try:
             inqueue.queue.clear()
             inqueue.queue.extend([None] * size)
-            inqueue.not_empty.notifyAll()
+            inqueue.not_empty.notify_all()
         finally:
             inqueue.not_empty.release()

Modified: python/branches/tlee-ast-optimize/Lib/multiprocessing/queues.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/multiprocessing/queues.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/multiprocessing/queues.py	Sat Jun 14 10:07:22 2008
@@ -155,7 +155,7 @@
                   self._wlock, self._writer.close),
             name='QueueFeederThread'
             )
-        self._thread.setDaemon(True)
+        self._thread.set_daemon(True)
 
         debug('doing self._thread.start()')
         self._thread.start()

Modified: python/branches/tlee-ast-optimize/Lib/multiprocessing/reduction.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/multiprocessing/reduction.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/multiprocessing/reduction.py	Sat Jun 14 10:07:22 2008
@@ -84,7 +84,7 @@
                 debug('starting listener and thread for sending handles')
                 _listener = Listener(authkey=current_process().get_authkey())
                 t = threading.Thread(target=_serve)
-                t.setDaemon(True)
+                t.set_daemon(True)
                 t.start()
         finally:
             _lock.release()

Modified: python/branches/tlee-ast-optimize/Lib/multiprocessing/synchronize.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/multiprocessing/synchronize.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/multiprocessing/synchronize.py	Sat Jun 14 10:07:22 2008
@@ -109,8 +109,8 @@
         try:
             if self._semlock._is_mine():
                 name = current_process().get_name()
-                if threading.currentThread().getName() != 'MainThread':
-                    name += '|' + threading.currentThread().getName()
+                if threading.current_thread().get_name() != 'MainThread':
+                    name += '|' + threading.current_thread().get_name()
             elif self._semlock._get_value() == 1:
                 name = 'None'
             elif self._semlock._count() > 0:
@@ -134,8 +134,8 @@
         try:
             if self._semlock._is_mine():
                 name = current_process().get_name()
-                if threading.currentThread().getName() != 'MainThread':
-                    name += '|' + threading.currentThread().getName()
+                if threading.current_thread().get_name() != 'MainThread':
+                    name += '|' + threading.current_thread().get_name()
                 count = self._semlock._count()
             elif self._semlock._get_value() == 1:
                 name, count = 'None', 0

Modified: python/branches/tlee-ast-optimize/Lib/rfc822.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/rfc822.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/rfc822.py	Sat Jun 14 10:07:22 2008
@@ -73,6 +73,9 @@
 
 import time
 
+from warnings import warnpy3k
+warnpy3k("in 3.x, rfc822 has been removed in favor of the email package")
+
 __all__ = ["Message","AddressList","parsedate","parsedate_tz","mktime_tz"]
 
 _blanklines = ('\r\n', '\n')            # Optimization for islast()

Modified: python/branches/tlee-ast-optimize/Lib/test/crashers/loosing_mro_ref.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/crashers/loosing_mro_ref.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/crashers/loosing_mro_ref.py	Sat Jun 14 10:07:22 2008
@@ -27,10 +27,9 @@
 class Base2(object):
     mykey = 'from Base2'
 
-class X(Base):
-    # you can't add a non-string key to X.__dict__, but it can be
-    # there from the beginning :-)
-    locals()[MyKey()] = 5
+# you can't add a non-string key to X.__dict__, but it can be
+# there from the beginning :-)
+X = type('X', (Base,), {MyKey(): 5})
 
 print X.mykey
 # I get a segfault, or a slightly wrong assertion error in a debug build.

Modified: python/branches/tlee-ast-optimize/Lib/test/test_dummy_threading.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_dummy_threading.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_dummy_threading.py	Sat Jun 14 10:07:22 2008
@@ -16,7 +16,7 @@
             #delay = random.random() * 2
             delay = 0
             if test_support.verbose:
-                print 'task', self.getName(), 'will run for', delay, 'sec'
+                print 'task', self.get_name(), 'will run for', delay, 'sec'
             sema.acquire()
             mutex.acquire()
             running += 1
@@ -25,11 +25,11 @@
             mutex.release()
             time.sleep(delay)
             if test_support.verbose:
-                print 'task', self.getName(), 'done'
+                print 'task', self.get_name(), 'done'
             mutex.acquire()
             running -= 1
             if test_support.verbose:
-                print self.getName(), 'is finished.', running, 'tasks are running'
+                print self.get_name(), 'is finished.', running, 'tasks are running'
             mutex.release()
             sema.release()
 

Modified: python/branches/tlee-ast-optimize/Lib/test/test_heapq.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_heapq.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_heapq.py	Sat Jun 14 10:07:22 2008
@@ -210,7 +210,7 @@
         class LE:
             def __init__(self, x):
                 self.x = x
-            def __lt__(self, other):
+            def __le__(self, other):
                 return self.x >= other.x
         data = [random.random() for i in range(100)]
         target = sorted(data, reverse=True)

Modified: python/branches/tlee-ast-optimize/Lib/test/test_mimetools.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_mimetools.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_mimetools.py	Sat Jun 14 10:07:22 2008
@@ -1,7 +1,10 @@
 import unittest
 from test import test_support
 
-import string, StringIO, mimetools
+import string
+import StringIO
+
+mimetools = test_support.import_module("mimetools", deprecated=True)
 
 msgtext1 = mimetools.Message(StringIO.StringIO(
 """Content-Type: text/plain; charset=iso-8859-1; format=flowed

Modified: python/branches/tlee-ast-optimize/Lib/test/test_multiprocessing.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_multiprocessing.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_multiprocessing.py	Sat Jun 14 10:07:22 2008
@@ -632,7 +632,7 @@
         p.start()
 
         p = threading.Thread(target=self.f, args=(cond, sleeping, woken))
-        p.setDaemon(True)
+        p.set_daemon(True)
         p.start()
         
         # wait for both children to start sleeping
@@ -679,7 +679,7 @@
 
             t = threading.Thread(target=self.f,
                                  args=(cond, sleeping, woken, TIMEOUT1))
-            t.setDaemon(True)
+            t.set_daemon(True)
             t.start()
 
         # wait for them all to sleep
@@ -701,7 +701,7 @@
             p.start()
             
             t = threading.Thread(target=self.f, args=(cond, sleeping, woken))
-            t.setDaemon(True)
+            t.set_daemon(True)
             t.start()
             
         # wait for them to all sleep

Modified: python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py	Sat Jun 14 10:07:22 2008
@@ -197,8 +197,8 @@
     # test.testall not tested as it executes all unit tests as an
     # import side-effect.
     all_platforms = ('audiodev', 'imputil', 'mutex', 'user', 'new', 'rexec',
-                        'Bastion', 'compiler', 'dircache', 'fpformat',
-                        'ihooks', 'mhlib', 'statvfs', 'htmllib', 'sgmllib')
+                        'Bastion', 'compiler', 'dircache', 'mimetools', 'fpformat',
+                        'ihooks', 'mhlib', 'statvfs', 'htmllib', 'sgmllib', 'rfc822')
     inclusive_platforms = {'irix' : ('pure', 'AL', 'al', 'CD', 'cd', 'cddb',
                                      'cdplayer', 'CL', 'cl', 'DEVICE', 'GL',
                                      'gl', 'ERRNO', 'FILE', 'FL', 'flp', 'fl',

Modified: python/branches/tlee-ast-optimize/Lib/test/test_queue.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_queue.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_queue.py	Sat Jun 14 10:07:22 2008
@@ -49,11 +49,11 @@
         self.t.start()
         self.result = block_func(*block_args)
         # If block_func returned before our thread made the call, we failed!
-        if not self.t.startedEvent.isSet():
+        if not self.t.startedEvent.is_set():
             self.fail("blocking function '%r' appeared not to block" %
                       block_func)
         self.t.join(10) # make sure the thread terminates
-        if self.t.isAlive():
+        if self.t.is_alive():
             self.fail("trigger function '%r' appeared to not return" %
                       trigger_func)
         return self.result
@@ -73,10 +73,10 @@
                                  expected_exception_class)
         finally:
             self.t.join(10) # make sure the thread terminates
-            if self.t.isAlive():
+            if self.t.is_alive():
                 self.fail("trigger function '%r' appeared to not return" %
                                  trigger_func)
-            if not self.t.startedEvent.isSet():
+            if not self.t.startedEvent.is_set():
                 self.fail("trigger thread ended but event never set")
 
 

Modified: python/branches/tlee-ast-optimize/Lib/test/test_rfc822.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_rfc822.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_rfc822.py	Sat Jun 14 10:07:22 2008
@@ -1,7 +1,8 @@
-import rfc822
 import unittest
 from test import test_support
 
+rfc822 = test_support.import_module("rfc822", deprecated=True)
+
 try:
     from cStringIO import StringIO
 except ImportError:

Modified: python/branches/tlee-ast-optimize/Lib/test/test_smtplib.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_smtplib.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_smtplib.py	Sat Jun 14 10:07:22 2008
@@ -109,7 +109,7 @@
 
             # when the client conversation is finished, it will
             # set client_evt, and it's then ok to kill the server
-            if client_evt.isSet():
+            if client_evt.is_set():
                 serv.close()
                 break
 
@@ -118,7 +118,7 @@
     except socket.timeout:
         pass
     finally:
-        if not client_evt.isSet():
+        if not client_evt.is_set():
             # allow some time for the client to read the result
             time.sleep(0.5)
             serv.close()

Modified: python/branches/tlee-ast-optimize/Lib/test/test_socket.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_socket.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_socket.py	Sat Jun 14 10:07:22 2008
@@ -107,7 +107,7 @@
             self.clientRun, (test_method,))
 
         self.__setUp()
-        if not self.server_ready.isSet():
+        if not self.server_ready.is_set():
             self.server_ready.set()
         self.client_ready.wait()
 

Modified: python/branches/tlee-ast-optimize/Lib/test/test_socketserver.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_socketserver.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_socketserver.py	Sat Jun 14 10:07:22 2008
@@ -139,7 +139,7 @@
             # Time between requests is short enough that we won't wake
             # up spuriously too many times.
             kwargs={'poll_interval':0.01})
-        t.setDaemon(True)  # In case this function raises.
+        t.set_daemon(True)  # In case this function raises.
         t.start()
         if verbose: print "server running"
         for i in range(3):

Modified: python/branches/tlee-ast-optimize/Lib/test/test_sys.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_sys.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_sys.py	Sat Jun 14 10:07:22 2008
@@ -567,6 +567,9 @@
         # string
         self.check_sizeof('', h + l + self.align(i + 1))
         self.check_sizeof('abc', h + l + self.align(i + 1) + 3)
+        # tuple
+        self.check_sizeof((), h)
+        self.check_sizeof((1,2,3), h + 3*p)
 
 
 def test_main():

Modified: python/branches/tlee-ast-optimize/Lib/test/test_threading.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/test_threading.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/test_threading.py	Sat Jun 14 10:07:22 2008
@@ -34,7 +34,7 @@
         delay = random.random() / 10000.0
         if verbose:
             print 'task %s will run for %.1f usec' % (
-                self.getName(), delay * 1e6)
+                self.get_name(), delay * 1e6)
 
         with self.sema:
             with self.mutex:
@@ -45,14 +45,14 @@
 
             time.sleep(delay)
             if verbose:
-                print 'task', self.getName(), 'done'
+                print 'task', self.get_name(), 'done'
 
             with self.mutex:
                 self.nrunning.dec()
                 self.testcase.assert_(self.nrunning.get() >= 0)
                 if verbose:
                     print '%s is finished. %d tasks are running' % (
-                        self.getName(), self.nrunning.get())
+                        self.get_name(), self.nrunning.get())
 
 class ThreadTests(unittest.TestCase):
 
@@ -73,7 +73,7 @@
         for i in range(NUMTASKS):
             t = TestThread("<thread %d>"%i, self, sema, mutex, numrunning)
             threads.append(t)
-            self.failUnlessEqual(t.getIdent(), None)
+            self.failUnlessEqual(t.get_ident(), None)
             self.assert_(re.match('<TestThread\(.*, initial\)>', repr(t)))
             t.start()
 
@@ -81,8 +81,8 @@
             print 'waiting for all tasks to complete'
         for t in threads:
             t.join(NUMTASKS)
-            self.assert_(not t.isAlive())
-            self.failIfEqual(t.getIdent(), 0)
+            self.assert_(not t.is_alive())
+            self.failIfEqual(t.get_ident(), 0)
             self.assert_(re.match('<TestThread\(.*, \w+ -?\d+\)>', repr(t)))
         if verbose:
             print 'all tasks done'
@@ -172,7 +172,7 @@
                     worker_saw_exception.set()
 
         t = Worker()
-        t.setDaemon(True) # so if this fails, we don't hang Python at shutdown
+        t.set_daemon(True) # so if this fails, we don't hang Python at shutdown
         t.start()
         if verbose:
             print "    started worker thread"
@@ -258,12 +258,12 @@
                 print 'program blocked; aborting'
                 os._exit(2)
             t = threading.Thread(target=killer)
-            t.setDaemon(True)
+            t.set_daemon(True)
             t.start()
 
             # This is the trace function
             def func(frame, event, arg):
-                threading.currentThread()
+                threading.current_thread()
                 return func
 
             sys.settrace(func)
@@ -348,8 +348,8 @@
         self.assertRaises(ValueError, threading.Semaphore, value = -sys.maxint)
 
     def test_joining_current_thread(self):
-        currentThread = threading.currentThread()
-        self.assertRaises(RuntimeError, currentThread.join);
+        current_thread = threading.current_thread()
+        self.assertRaises(RuntimeError, current_thread.join);
 
     def test_joining_inactive_thread(self):
         thread = threading.Thread()
@@ -358,7 +358,7 @@
     def test_daemonize_active_thread(self):
         thread = threading.Thread()
         thread.start()
-        self.assertRaises(RuntimeError, thread.setDaemon, True)
+        self.assertRaises(RuntimeError, thread.set_daemon, True)
 
 
 def test_main():

Modified: python/branches/tlee-ast-optimize/Lib/test/threaded_import_hangers.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/test/threaded_import_hangers.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/test/threaded_import_hangers.py	Sat Jun 14 10:07:22 2008
@@ -38,5 +38,5 @@
     t = Worker(func, args)
     t.start()
     t.join(TIMEOUT)
-    if t.isAlive():
+    if t.is_alive():
         errors.append("%s appeared to hang" % name)

Modified: python/branches/tlee-ast-optimize/Lib/threading.py
==============================================================================
--- python/branches/tlee-ast-optimize/Lib/threading.py	(original)
+++ python/branches/tlee-ast-optimize/Lib/threading.py	Sat Jun 14 10:07:22 2008
@@ -9,12 +9,15 @@
     raise
 
 import warnings
+
+from functools import wraps
 from time import time as _time, sleep as _sleep
 from traceback import format_exc as _format_exc
 from collections import deque
 
 # Rename some stuff so "from threading import *" is safe
-__all__ = ['activeCount', 'Condition', 'currentThread', 'enumerate', 'Event',
+__all__ = ['activeCount', 'active_count', 'Condition', 'currentThread',
+           'current_thread', 'enumerate', 'Event',
            'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread',
            'Timer', 'setprofile', 'settrace', 'local', 'stack_size']
 
@@ -31,6 +34,18 @@
                         module='threading', message='sys.exc_clear')
 
 
+def _old_api(callable, old_name):
+    if not _sys.py3kwarning:
+        return callable
+    @wraps(callable)
+    def old(*args, **kwargs):
+        warnings.warnpy3k("In 3.x, {0} is renamed to {1}."
+                          .format(old_name, callable.__name__),
+                          stacklevel=3)
+        return callable(*args, **kwargs)
+    old.__name__ = old_name
+    return old
+
 # Debug support (adapted from ihooks.py).
 # All the major classes here derive from _Verbose.  We force that to
 # be a new-style class so that all the major classes here are new-style.
@@ -52,7 +67,7 @@
             if self.__verbose:
                 format = format % args
                 format = "%s: %s\n" % (
-                    currentThread().getName(), format)
+                    current_thread().get_name(), format)
                 _sys.stderr.write(format)
 
 else:
@@ -95,11 +110,11 @@
         owner = self.__owner
         return "<%s(%s, %d)>" % (
                 self.__class__.__name__,
-                owner and owner.getName(),
+                owner and owner.get_name(),
                 self.__count)
 
     def acquire(self, blocking=1):
-        me = currentThread()
+        me = current_thread()
         if self.__owner is me:
             self.__count = self.__count + 1
             if __debug__:
@@ -119,7 +134,7 @@
     __enter__ = acquire
 
     def release(self):
-        if self.__owner is not currentThread():
+        if self.__owner is not current_thread():
             raise RuntimeError("cannot release un-aquired lock")
         self.__count = count = self.__count - 1
         if not count:
@@ -154,7 +169,7 @@
         return (count, owner)
 
     def _is_owned(self):
-        return self.__owner is currentThread()
+        return self.__owner is current_thread()
 
 
 def Condition(*args, **kwargs):
@@ -203,7 +218,7 @@
         self.__lock.acquire()           # Ignore saved state
 
     def _is_owned(self):
-        # Return True if lock is owned by currentThread.
+        # Return True if lock is owned by current_thread.
         # This method is called only if __lock doesn't have _is_owned().
         if self.__lock.acquire(0):
             self.__lock.release()
@@ -271,9 +286,11 @@
             except ValueError:
                 pass
 
-    def notifyAll(self):
+    def notify_all(self):
         self.notify(len(self.__waiters))
 
+    notifyAll = _old_api(notify_all, "notifyAll")
+
 
 def Semaphore(*args, **kwargs):
     return _Semaphore(*args, **kwargs)
@@ -350,14 +367,16 @@
         self.__cond = Condition(Lock())
         self.__flag = False
 
-    def isSet(self):
+    def is_set(self):
         return self.__flag
 
+    isSet = _old_api(is_set, "isSet")
+
     def set(self):
         self.__cond.acquire()
         try:
             self.__flag = True
-            self.__cond.notifyAll()
+            self.__cond.notify_all()
         finally:
             self.__cond.release()
 
@@ -425,12 +444,12 @@
 
     def _set_daemon(self):
         # Overridden in _MainThread and _DummyThread
-        return currentThread().isDaemon()
+        return current_thread().is_daemon()
 
     def __repr__(self):
         assert self.__initialized, "Thread.__init__() was not called"
         status = "initial"
-        if self.__started.isSet():
+        if self.__started.is_set():
             status = "started"
         if self.__stopped:
             status = "stopped"
@@ -443,7 +462,7 @@
     def start(self):
         if not self.__initialized:
             raise RuntimeError("thread.__init__() not called")
-        if self.__started.isSet():
+        if self.__started.is_set():
             raise RuntimeError("thread already started")
         if __debug__:
             self._note("%s.start(): starting thread", self)
@@ -514,7 +533,7 @@
                 # self.
                 if _sys:
                     _sys.stderr.write("Exception in thread %s:\n%s\n" %
-                                      (self.getName(), _format_exc()))
+                                      (self.get_name(), _format_exc()))
                 else:
                     # Do the best job possible w/o a huge amt. of code to
                     # approximate a traceback (code ideas from
@@ -522,7 +541,7 @@
                     exc_type, exc_value, exc_tb = self.__exc_info()
                     try:
                         print>>self.__stderr, (
-                            "Exception in thread " + self.getName() +
+                            "Exception in thread " + self.get_name() +
                             " (most likely raised during interpreter shutdown):")
                         print>>self.__stderr, (
                             "Traceback (most recent call last):")
@@ -560,7 +579,7 @@
     def __stop(self):
         self.__block.acquire()
         self.__stopped = True
-        self.__block.notifyAll()
+        self.__block.notify_all()
         self.__block.release()
 
     def __delete(self):
@@ -593,7 +612,7 @@
                 # There must not be any python code between the previous line
                 # and after the lock is released.  Otherwise a tracing function
                 # could try to acquire the lock again in the same thread, (in
-                # currentThread()), and would block.
+                # current_thread()), and would block.
         except KeyError:
             if 'dummy_threading' not in _sys.modules:
                 raise
@@ -601,9 +620,9 @@
     def join(self, timeout=None):
         if not self.__initialized:
             raise RuntimeError("Thread.__init__() not called")
-        if not self.__started.isSet():
+        if not self.__started.is_set():
             raise RuntimeError("cannot join thread before it is started")
-        if self is currentThread():
+        if self is current_thread():
             raise RuntimeError("cannot join current thread")
 
         if __debug__:
@@ -631,33 +650,43 @@
         finally:
             self.__block.release()
 
-    def getName(self):
+    def get_name(self):
         assert self.__initialized, "Thread.__init__() not called"
         return self.__name
 
-    def setName(self, name):
+    getName = _old_api(get_name, "getName")
+
+    def set_name(self, name):
         assert self.__initialized, "Thread.__init__() not called"
         self.__name = str(name)
 
-    def getIdent(self):
+    setName = _old_api(set_name, "setName")
+
+    def get_ident(self):
         assert self.__initialized, "Thread.__init__() not called"
         return self.__ident
 
-    def isAlive(self):
+    def is_alive(self):
         assert self.__initialized, "Thread.__init__() not called"
-        return self.__started.isSet() and not self.__stopped
+        return self.__started.is_set() and not self.__stopped
 
-    def isDaemon(self):
+    isAlive = _old_api(is_alive, "isAlive")
+
+    def is_daemon(self):
         assert self.__initialized, "Thread.__init__() not called"
         return self.__daemonic
 
-    def setDaemon(self, daemonic):
+    isDaemon = _old_api(is_daemon, "isDaemon")
+
+    def set_daemon(self, daemonic):
         if not self.__initialized:
             raise RuntimeError("Thread.__init__() not called")
-        if self.__started.isSet():
+        if self.__started.is_set():
             raise RuntimeError("cannot set daemon status of active thread");
         self.__daemonic = daemonic
 
+    setDaemon = _old_api(set_daemon, "setDaemon")
+
 # The timer class was contributed by Itamar Shtull-Trauring
 
 def Timer(*args, **kwargs):
@@ -685,7 +714,7 @@
 
     def run(self):
         self.finished.wait(self.interval)
-        if not self.finished.isSet():
+        if not self.finished.is_set():
             self.function(*self.args, **self.kwargs)
         self.finished.set()
 
@@ -719,16 +748,16 @@
 
 def _pickSomeNonDaemonThread():
     for t in enumerate():
-        if not t.isDaemon() and t.isAlive():
+        if not t.is_daemon() and t.is_alive():
             return t
     return None
 
 
 # Dummy thread class to represent threads not started here.
 # These aren't garbage collected when they die, nor can they be waited for.
-# If they invoke anything in threading.py that calls currentThread(), they
+# If they invoke anything in threading.py that calls current_thread(), they
 # leave an entry in the _active dict forever after.
-# Their purpose is to return *something* from currentThread().
+# Their purpose is to return *something* from current_thread().
 # They are marked as daemon threads so we won't wait for them
 # when we exit (conform previous semantics).
 
@@ -756,19 +785,23 @@
 
 # Global API functions
 
-def currentThread():
+def current_thread():
     try:
         return _active[_get_ident()]
     except KeyError:
-        ##print "currentThread(): no current thread for", _get_ident()
+        ##print "current_thread(): no current thread for", _get_ident()
         return _DummyThread()
 
-def activeCount():
+currentThread = _old_api(current_thread, "currentThread")
+
+def active_count():
     _active_limbo_lock.acquire()
     count = len(_active) + len(_limbo)
     _active_limbo_lock.release()
     return count
 
+activeCount = _old_api(active_count, "activeCount")
+
 def enumerate():
     _active_limbo_lock.acquire()
     active = _active.values() + _limbo.values()
@@ -840,7 +873,7 @@
             counter = 0
             while counter < self.quota:
                 counter = counter + 1
-                self.queue.put("%s.%d" % (self.getName(), counter))
+                self.queue.put("%s.%d" % (self.get_name(), counter))
                 _sleep(random() * 0.00001)
 
 

Modified: python/branches/tlee-ast-optimize/Misc/ACKS
==============================================================================
--- python/branches/tlee-ast-optimize/Misc/ACKS	(original)
+++ python/branches/tlee-ast-optimize/Misc/ACKS	Sat Jun 14 10:07:22 2008
@@ -486,6 +486,7 @@
 Gustavo Niemeyer
 Oscar Nierstrasz
 Hrvoje Niksic
+Jesse Noller
 Bill Noon
 Stefan Norberg
 Tim Northover
@@ -502,6 +503,7 @@
 Douglas Orr
 Denis S. Otkidach
 Michael Otteneder
+R. M. Oudkerk
 Russel Owen
 Ondrej Palkovsky
 Mike Pall

Modified: python/branches/tlee-ast-optimize/Misc/NEWS
==============================================================================
--- python/branches/tlee-ast-optimize/Misc/NEWS	(original)
+++ python/branches/tlee-ast-optimize/Misc/NEWS	Sat Jun 14 10:07:22 2008
@@ -12,6 +12,8 @@
 Core and Builtins
 -----------------
 
+- Add future_builtins.ascii().
+
 - Several set methods now accept multiple arguments:  update(), union(),
   intersection(), intersection_update(), difference(), and difference_update().
 
@@ -82,19 +84,25 @@
 Library
 -------
 
+- The rfc822 module has been deprecated for removal in 3.0.
+
+- The mimetools module has been deprecated for removal in 3.0.
+
 - The ctypes.byref function now takes an optional second parameter
   which allows to specify an offset in bytes for the constructed
   pointer-like object.
 
 - Added the ast module.
 
+- Added the multiprocessing module, PEP 371.
+
 - Factored out the indentation cleaning from inspect.getdoc() into
   inspect.cleandoc() to ease standalone use.
 
 - Issue #1798: Add ctypes calling convention that allows safe access
   to errno.
 
-- Issue #2404: ctypes objects support the new pep3118 buffer interface
+- Issue #2404: ctypes objects support the new pep3118 buffer interface.
 
 - Patch #2125: Add GetInteger and GetString methods for 
   msilib.Record objects.
@@ -291,16 +299,20 @@
 - The bundled OSX-specific copy of libbffi is now in sync with the version
   shipped with PyObjC 2.0 and includes support for x86_64 and ppc64 platforms.
 
+- The threading module gained alias for names that are removed in 3.x.
+
 Build
 -----
 
+- The Windows installer now includes Tk 8.5.
+
 - Patch #1722225: Support QNX 6.
 
 - ``Lib/lib-old`` is now added to sys.path.
 
 - On MacOS X it is now possible to install the framework in 64-bit
   mode or even as a 4-way universal binary (that is, PPC, i386,
-  PPC64 and x86_64 support in one binary)
+  PPC64 and x86_64 support in one binary).
 
   This is controlled by the configure argument ``--with-universal-archs``:
 
@@ -389,7 +401,7 @@
   ending in) '.', '!' or '?'.
 
 - Add from_buffer() and from_buffer_copy() class methods to ctypes
-  data types
+  data types.
 
 - Issue #2682: ctypes callback functions no longer contain a cyclic
   reference to themselves.

Modified: python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c	Sat Jun 14 10:07:22 2008
@@ -85,7 +85,7 @@
 	return b;
 }
 
-void
+static void
 freeblock(block *b)
 {
 	if (numfreeblocks < MAXFREEBLOCKS) {
@@ -957,7 +957,7 @@
 	int counter;    /* number of items remaining for iteration */
 } dequeiterobject;
 
-PyTypeObject dequeiter_type;
+static PyTypeObject dequeiter_type;
 
 static PyObject *
 deque_iter(dequeobject *deque)
@@ -1024,7 +1024,7 @@
  	{NULL,		NULL}		/* sentinel */
 };
 
-PyTypeObject dequeiter_type = {
+static PyTypeObject dequeiter_type = {
 	PyVarObject_HEAD_INIT(NULL, 0)
 	"deque_iterator",			/* tp_name */
 	sizeof(dequeiterobject),		/* tp_basicsize */
@@ -1059,7 +1059,7 @@
 
 /*********************** Deque Reverse Iterator **************************/
 
-PyTypeObject dequereviter_type;
+static PyTypeObject dequereviter_type;
 
 static PyObject *
 deque_reviter(dequeobject *deque)
@@ -1106,7 +1106,7 @@
 	return item;
 }
 
-PyTypeObject dequereviter_type = {
+static PyTypeObject dequereviter_type = {
 	PyVarObject_HEAD_INIT(NULL, 0)
 	"deque_reverse_iterator",		/* tp_name */
 	sizeof(dequeiterobject),		/* tp_basicsize */

Modified: python/branches/tlee-ast-optimize/Modules/_ctypes/callproc.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/_ctypes/callproc.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/_ctypes/callproc.c	Sat Jun 14 10:07:22 2008
@@ -1849,6 +1849,8 @@
 		return NULL;
 	}
 	shape = PyTuple_New(dict->ndim);
+	if (shape == NULL)
+		return NULL;
 	for (i = 0; i < (int)dict->ndim; ++i)
 		PyTuple_SET_ITEM(shape, i, PyLong_FromSsize_t(dict->shape[i]));
 

Modified: python/branches/tlee-ast-optimize/Modules/_localemodule.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/_localemodule.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/_localemodule.c	Sat Jun 14 10:07:22 2008
@@ -444,7 +444,7 @@
 
 #ifdef HAVE_LANGINFO_H
 #define LANGINFO(X) {#X, X}
-struct langinfo_constant{
+static struct langinfo_constant{
 	char* name;
 	int value;
 } langinfo_constants[] = 

Modified: python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.c	Sat Jun 14 10:07:22 2008
@@ -1,5 +1,5 @@
 /*
- * Extension module used by mutliprocessing package
+ * Extension module used by multiprocessing package
  *
  * multiprocessing.c
  *
@@ -215,7 +215,7 @@
 PyMODINIT_FUNC
 init_multiprocessing(void)
 {
-	PyObject *module, *temp;
+	PyObject *module, *temp, *value;
 
 	/* Initialize module */
 	module = Py_InitModule("_multiprocessing", module_methods);
@@ -284,11 +284,12 @@
 	temp = PyDict_New();
 	if (!temp)
 		return;
-	if (PyModule_AddObject(module, "flags", temp) < 0)
-		return;
-
-#define ADD_FLAG(name) \
-    if (PyDict_SetItemString(temp, #name, Py_BuildValue("i", name)) < 0) return
+#define ADD_FLAG(name)						  \
+	value = Py_BuildValue("i", name);			  \
+	if (value == NULL) { Py_DECREF(temp); return; }		  \
+	if (PyDict_SetItemString(temp, #name, value) < 0) {	  \
+		Py_DECREF(temp); Py_DECREF(value); return; }	  \
+	Py_DECREF(value)
 	
 #ifdef HAVE_SEM_OPEN
 	ADD_FLAG(HAVE_SEM_OPEN);
@@ -305,4 +306,6 @@
 #ifdef HAVE_BROKEN_SEM_UNLINK
 	ADD_FLAG(HAVE_BROKEN_SEM_UNLINK);
 #endif
+	if (PyModule_AddObject(module, "flags", temp) < 0)
+		return;
 }

Modified: python/branches/tlee-ast-optimize/Modules/_tkinter.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/_tkinter.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/_tkinter.c	Sat Jun 14 10:07:22 2008
@@ -490,7 +490,7 @@
    lists. SplitObj walks through a nested tuple, finding string objects that
    need to be split. */
 
-PyObject *
+static PyObject *
 SplitObj(PyObject *arg)
 {
 	if (PyTuple_Check(arg)) {
@@ -1523,7 +1523,7 @@
 	return 0;
 }	
 
-void
+static void
 var_perform(VarEvent *ev)
 {
 	*(ev->res) = ev->func(ev->self, ev->args, ev->flags);

Modified: python/branches/tlee-ast-optimize/Modules/arraymodule.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/arraymodule.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/arraymodule.c	Sat Jun 14 10:07:22 2008
@@ -432,6 +432,9 @@
 	if (op == NULL) {
 		return NULL;
 	}
+	op->ob_descr = descr;
+	op->allocated = size;
+	op->weakreflist = NULL;
 	Py_SIZE(op) = size;
 	if (size <= 0) {
 		op->ob_item = NULL;
@@ -439,13 +442,10 @@
 	else {
 		op->ob_item = PyMem_NEW(char, nbytes);
 		if (op->ob_item == NULL) {
-			PyObject_Del(op);
+			Py_DECREF(op);
 			return PyErr_NoMemory();
 		}
 	}
-	op->ob_descr = descr;
-	op->allocated = size;
-	op->weakreflist = NULL;
 	return (PyObject *) op;
 }
 
@@ -826,14 +826,13 @@
 	}
 	if ((Py_SIZE(self) > PY_SSIZE_T_MAX - Py_SIZE(b)) ||
 		((Py_SIZE(self) + Py_SIZE(b)) > PY_SSIZE_T_MAX / self->ob_descr->itemsize)) {
-			PyErr_NoMemory();
-			return -1;
+		PyErr_NoMemory();
+		return -1;
 	}
 	size = Py_SIZE(self) + Py_SIZE(b);
         PyMem_RESIZE(self->ob_item, char, size*self->ob_descr->itemsize);
         if (self->ob_item == NULL) {
-                PyObject_Del(self);
-                PyErr_NoMemory();
+		PyErr_NoMemory();
 		return -1;
         }
 	memcpy(self->ob_item + Py_SIZE(self)*self->ob_descr->itemsize,
@@ -1547,7 +1546,7 @@
 	{NULL}
 };
 
-PyMethodDef array_methods[] = {
+static PyMethodDef array_methods[] = {
 	{"append",	(PyCFunction)array_append,	METH_O,
 	 append_doc},
 	{"buffer_info", (PyCFunction)array_buffer_info, METH_NOARGS,

Modified: python/branches/tlee-ast-optimize/Modules/errnomodule.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/errnomodule.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/errnomodule.c	Sat Jun 14 10:07:22 2008
@@ -5,7 +5,7 @@
 
 /* Windows socket errors (WSA*)  */
 #ifdef MS_WINDOWS
-#include <winsock.h>
+#include <windows.h>
 #endif
 
 /*

Modified: python/branches/tlee-ast-optimize/Modules/future_builtins.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/future_builtins.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/future_builtins.c	Sat Jun 14 10:07:22 2008
@@ -45,11 +45,25 @@
 Return the octal representation of an integer or long integer.");
 
 
+static PyObject *
+builtin_ascii(PyObject *self, PyObject *v)
+{
+	return PyObject_Repr(v);
+}
+
+PyDoc_STRVAR(ascii_doc,
+"ascii(object) -> string\n\
+\n\
+Return the same as repr().  In Python 3.x, the repr() result will\n\
+contain printable characters unescaped, while the ascii() result\n\
+will have such characters backslash-escaped.");
+
 /* List of functions exported by this module */
 
 static PyMethodDef module_functions[] = {
  	{"hex",		builtin_hex,        METH_O, hex_doc},
  	{"oct",		builtin_oct,        METH_O, oct_doc},
+	{"ascii",	builtin_ascii,      METH_O, ascii_doc},
 	{NULL,		NULL}	/* Sentinel */
 };
 

Modified: python/branches/tlee-ast-optimize/Modules/signalmodule.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/signalmodule.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/signalmodule.c	Sat Jun 14 10:07:22 2008
@@ -925,5 +925,6 @@
 	main_thread = PyThread_get_thread_ident();
 	main_pid = getpid();
 	_PyImport_ReInitLock();
+	PyThread_ReInitTLS();
 #endif
 }

Modified: python/branches/tlee-ast-optimize/Modules/socketmodule.c
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/socketmodule.c	(original)
+++ python/branches/tlee-ast-optimize/Modules/socketmodule.c	Sat Jun 14 10:07:22 2008
@@ -2805,7 +2805,7 @@
 Shut down the reading side of the socket (flag == SHUT_RD), the writing side\n\
 of the socket (flag == SHUT_WR), or both ends (flag == SHUT_RDWR).");
 
-#ifdef MS_WINDOWS
+#if defined(MS_WINDOWS) && defined(SIO_RCVALL)
 static PyObject*
 sock_ioctl(PySocketSockObject *s, PyObject *arg)
 {
@@ -2858,7 +2858,7 @@
 			  METH_NOARGS, getsockname_doc},
 	{"getsockopt",	  (PyCFunction)sock_getsockopt, METH_VARARGS,
 			  getsockopt_doc},
-#ifdef MS_WINDOWS
+#if defined(MS_WINDOWS) && defined(SIO_RCVALL)
 	{"ioctl",	  (PyCFunction)sock_ioctl, METH_VARARGS,
 			  sock_ioctl_doc},
 #endif

Modified: python/branches/tlee-ast-optimize/Modules/socketmodule.h
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/socketmodule.h	(original)
+++ python/branches/tlee-ast-optimize/Modules/socketmodule.h	Sat Jun 14 10:07:22 2008
@@ -13,19 +13,23 @@
 # endif
 
 #else /* MS_WINDOWS */
-#if _MSC_VER >= 1300
 # include <winsock2.h>
 # include <ws2tcpip.h>
-# include <MSTcpIP.h> /* for SIO_RCVALL */
-# define HAVE_ADDRINFO
-# define HAVE_SOCKADDR_STORAGE
-# define HAVE_GETADDRINFO
-# define HAVE_GETNAMEINFO
-# define ENABLE_IPV6
-#else
-# include <winsock.h>
-#endif
-#endif
+/* VC6 is shipped with old platform headers, and does not have MSTcpIP.h
+ * Separate SDKs have all the functions we want, but older ones don't have
+ * any version information. I use IPPROTO_IPV6 to detect a decent SDK.
+ */
+# ifdef IPPROTO_IPV6
+#  include <MSTcpIP.h> /* for SIO_RCVALL */
+#  define HAVE_ADDRINFO
+#  define HAVE_SOCKADDR_STORAGE
+#  define HAVE_GETADDRINFO
+#  define HAVE_GETNAMEINFO
+#  define ENABLE_IPV6
+# else
+typedef int socklen_t;
+# endif /* IPPROTO_IPV6 */
+#endif /* MS_WINDOWS */
 
 #ifdef HAVE_SYS_UN_H
 # include <sys/un.h>

Modified: python/branches/tlee-ast-optimize/Modules/unicodedata_db.h
==============================================================================
--- python/branches/tlee-ast-optimize/Modules/unicodedata_db.h	(original)
+++ python/branches/tlee-ast-optimize/Modules/unicodedata_db.h	Sat Jun 14 10:07:22 2008
@@ -228,7 +228,7 @@
 #define TOTAL_FIRST 356
 #define TOTAL_LAST 53
 struct reindex{int start;short count,index;};
-struct reindex nfc_first[] = {
+static struct reindex nfc_first[] = {
   { 60, 2, 0},
   { 65, 15, 3},
   { 82, 8, 19},
@@ -425,7 +425,7 @@
   {0,0,0}
 };
 
-struct reindex nfc_last[] = {
+static struct reindex nfc_last[] = {
   { 768, 4, 0},
   { 774, 6, 5},
   { 783, 0, 12},

Modified: python/branches/tlee-ast-optimize/Objects/tupleobject.c
==============================================================================
--- python/branches/tlee-ast-optimize/Objects/tupleobject.c	(original)
+++ python/branches/tlee-ast-optimize/Objects/tupleobject.c	Sat Jun 14 10:07:22 2008
@@ -708,13 +708,25 @@
 	
 }
 
+static PyObject *
+tuple_sizeof(PyTupleObject *self)
+{
+	Py_ssize_t res;
+
+	res = PyTuple_Type.tp_basicsize + Py_SIZE(self) * sizeof(PyObject *);
+	return PyInt_FromSsize_t(res);
+}
+
 PyDoc_STRVAR(index_doc,
 "T.index(value, [start, [stop]]) -> integer -- return first index of value");
 PyDoc_STRVAR(count_doc,
 "T.count(value) -> integer -- return number of occurrences of value");
+PyDoc_STRVAR(sizeof_doc,
+"T.__sizeof__() -- size of T in memory, in bytes");
 
 static PyMethodDef tuple_methods[] = {
 	{"__getnewargs__",	(PyCFunction)tuple_getnewargs,	METH_NOARGS},
+	{"__sizeof__",	(PyCFunction)tuple_sizeof, METH_NOARGS, sizeof_doc},
 	{"index",	(PyCFunction)tupleindex,  METH_VARARGS, index_doc},
 	{"count",	(PyCFunction)tuplecount,  METH_O, count_doc},
 	{NULL,		NULL}		/* sentinel */

Modified: python/branches/tlee-ast-optimize/PC/VC6/_socket.dsp
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VC6/_socket.dsp	(original)
+++ python/branches/tlee-ast-optimize/PC/VC6/_socket.dsp	Sat Jun 14 10:07:22 2008
@@ -54,7 +54,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket.pyd"
+# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket.pyd"
 # SUBTRACT LINK32 /pdb:none
 
 !ELSEIF  "$(CFG)" == "_socket - Win32 Debug"
@@ -82,7 +82,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket_d.pyd" /pdbtype:sept
+# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket_d.pyd" /pdbtype:sept
 # SUBTRACT LINK32 /pdb:none
 
 !ENDIF 

Modified: python/branches/tlee-ast-optimize/PC/VC6/pythoncore.dsp
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VC6/pythoncore.dsp	(original)
+++ python/branches/tlee-ast-optimize/PC/VC6/pythoncore.dsp	Sat Jun 14 10:07:22 2008
@@ -97,6 +97,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\Modules\_bytesio.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\Modules\cjkcodecs\_codecs_cn.c
 # End Source File
 # Begin Source File

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb.vcproj	Sat Jun 14 10:07:22 2008
@@ -42,7 +42,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -103,7 +103,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -166,7 +166,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -229,7 +229,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -292,7 +292,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -355,7 +355,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -418,7 +418,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -481,7 +481,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32,..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb44.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb44.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/_bsddb44.vcproj	Sat Jun 14 10:07:22 2008
@@ -42,7 +42,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -96,7 +96,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 				PreprocessorDefinitions="DIAGNOSTIC"
 			/>
 			<Tool
@@ -151,7 +151,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -206,7 +206,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -260,7 +260,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -315,7 +315,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -369,7 +369,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -424,7 +424,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(bsddbDir);$(bsddbDir)\.."
+				AdditionalIncludeDirectories="..\..\..\db-4.4.20\build_win32;..\..\..\db-4.4.20\build_win32\.."
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -462,787 +462,787 @@
 			Name="Source Files"
 			>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_compact.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_compact.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_compare.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_compare.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_conv.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_conv.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_curadj.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_curadj.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_cursor.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_cursor.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_delete.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_delete.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_open.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_open.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_put.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_put.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_reclaim.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_reclaim.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_recno.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_recno.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_rsearch.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_rsearch.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_search.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_search.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_split.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_split.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_upgrade.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_upgrade.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\bt_verify.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\bt_verify.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\btree\btree_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\btree\btree_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\crdel_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\crdel_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\crdel_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\crdel_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\crypto_stub.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\crypto_stub.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_am.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_am.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\db_byteorder.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\db_byteorder.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_cam.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_cam.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\db_clock.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\db_clock.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_conv.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_conv.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_dispatch.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_dispatch.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_dup.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_dup.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\db_err.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\db_err.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\db_getlong.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\db_getlong.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\db_idspace.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\db_idspace.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_iface.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_iface.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_join.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_join.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\db_log2.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\db_log2.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_meta.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_meta.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_open.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_open.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_overflow.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_overflow.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_ovfl_vrfy.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_ovfl_vrfy.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_pr.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_pr.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_reclaim.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_reclaim.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_remove.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_remove.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_rename.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_rename.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_ret.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_ret.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\db_salloc.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\db_salloc.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_setid.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_setid.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_setlsn.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_setlsn.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\db_shash.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\db_shash.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_stati.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_stati.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_truncate.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_truncate.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_upg.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_upg.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_upg_opd.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_upg_opd.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_vrfy.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_vrfy.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\db\db_vrfyutil.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\db\db_vrfyutil.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\dbm\dbm.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\dbm\dbm.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\dbreg\dbreg.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\dbreg\dbreg.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\dbreg\dbreg_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\dbreg\dbreg_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\dbreg\dbreg_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\dbreg\dbreg_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\dbreg\dbreg_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\dbreg\dbreg_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\dbreg\dbreg_util.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\dbreg\dbreg_util.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_failchk.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_failchk.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_file.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_file.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_open.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_open.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_recover.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_recover.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_region.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_region.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_register.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_register.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\env\env_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\env\env_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\fileops\fileops_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\fileops\fileops_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\fileops\fop_basic.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\fileops\fop_basic.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\fileops\fop_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\fileops\fop_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\fileops\fop_util.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\fileops\fop_util.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_conv.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_conv.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_dup.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_dup.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_func.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_func.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_meta.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_meta.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_open.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_open.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_page.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_page.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_reclaim.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_reclaim.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_upgrade.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_upgrade.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hash\hash_verify.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hash\hash_verify.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hmac\hmac.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hmac\hmac.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hsearch\hsearch.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hsearch\hsearch.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_deadlock.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_deadlock.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_failchk.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_failchk.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_id.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_id.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_list.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_list.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_region.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_region.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_timer.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_timer.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\lock\lock_util.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\lock\lock_util.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log_archive.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log_archive.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log_compare.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log_compare.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log_debug.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log_debug.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log_get.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log_get.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log_put.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log_put.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\log\log_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\log\log_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_alloc.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_alloc.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_bh.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_bh.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_fget.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_fget.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_fmethod.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_fmethod.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_fopen.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_fopen.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_fput.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_fput.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_fset.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_fset.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_region.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_region.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_register.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_register.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_sync.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_sync.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mp\mp_trickle.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mp\mp_trickle.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mutex\mut_alloc.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mutex\mut_alloc.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mutex\mut_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mutex\mut_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mutex\mut_region.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mutex\mut_region.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mutex\mut_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mutex\mut_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\mutex\mut_win32.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\mutex\mut_win32.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_abs.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_abs.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_alloc.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_alloc.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_clock.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_clock.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_config.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_config.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_dir.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_dir.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_errno.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_errno.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_fid.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_fid.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_flock.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_flock.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_fsync.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_fsync.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_handle.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_handle.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_id.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_id.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_map.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_map.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_mkdir.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_mkdir.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_oflags.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_oflags.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_open.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_open.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_region.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_region.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_rename.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_rename.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_root.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_root.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_rpath.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_rpath.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_rw.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_rw.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_seek.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_seek.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_sleep.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_sleep.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_spin.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_spin.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os\os_tmpdir.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os\os_tmpdir.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_truncate.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_truncate.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\os_win32\os_unlink.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\os_win32\os_unlink.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_conv.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_conv.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_files.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_files.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_open.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_open.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_upgrade.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_upgrade.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\qam\qam_verify.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\qam\qam_verify.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_backup.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_backup.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_elect.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_elect.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_log.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_log.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_record.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_record.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_region.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_region.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_util.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_util.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\rep\rep_verify.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\rep\rep_verify.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\sequence\seq_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\sequence\seq_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\sequence\sequence.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\sequence\sequence.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\hmac\sha1.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\hmac\sha1.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\clib\strcasecmp.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\clib\strcasecmp.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_auto.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_auto.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_chkpt.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_chkpt.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_failchk.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_failchk.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_method.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_method.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_rec.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_rec.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_recover.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_recover.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_region.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_region.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_stat.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_stat.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\txn\txn_util.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\txn\txn_util.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\util_cache.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\util_cache.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\util_log.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\util_log.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\common\util_sig.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\common\util_sig.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\xa\xa.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\xa\xa.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\xa\xa_db.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\xa\xa_db.c"
 				>
 			</File>
 			<File
-				RelativePath="$(bsddbDir)\..\..\xa\xa_map.c"
+				RelativePath="..\..\..\db-4.4.20\build_win32\..\xa\xa_map.c"
 				>
 			</File>
 		</Filter>

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/_elementtree.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/_elementtree.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/_elementtree.vcproj	Sat Jun 14 10:07:22 2008
@@ -56,7 +56,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -119,7 +118,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -182,7 +180,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -246,7 +243,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -309,7 +305,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -373,7 +368,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 				TargetMachine="17"
 			/>
@@ -437,7 +431,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -501,7 +494,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 				TargetMachine="17"
 			/>

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/_sqlite3.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/_sqlite3.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/_sqlite3.vcproj	Sat Jun 14 10:07:22 2008
@@ -42,7 +42,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool
@@ -104,7 +104,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool
@@ -166,7 +166,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool
@@ -229,7 +229,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool
@@ -291,7 +291,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool
@@ -354,7 +354,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool
@@ -417,7 +417,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool
@@ -480,7 +480,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 				PreprocessorDefinitions="MODULE_NAME=\&quot;sqlite3\&quot;"
 			/>
 			<Tool

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/make_versioninfo.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/make_versioninfo.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/make_versioninfo.vcproj	Sat Jun 14 10:07:22 2008
@@ -67,7 +67,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(SolutionDir)make_versioninfo.exe"
 				ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
 				SubSystem="1"
@@ -211,7 +210,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(SolutionDir)make_versioninfo_d.exe"
 				ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
 				SubSystem="1"

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/pcbuild.sln
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/pcbuild.sln	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/pcbuild.sln	Sat Jun 14 10:07:22 2008
@@ -131,6 +131,11 @@
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
+	ProjectSection(ProjectDependencies) = postProject
+		{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
+	EndProjectSection
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
 EndProject
 Global
@@ -537,6 +542,22 @@
 		{A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32
 		{A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64
 		{A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.Build.0 = Debug|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.ActiveCfg = Debug|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.Build.0 = Debug|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.Build.0 = PGInstrument|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.Build.0 = PGUpdate|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.ActiveCfg = Release|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/pyproject.vsprops
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/pyproject.vsprops	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/pyproject.vsprops	Sat Jun 14 10:07:22 2008
@@ -94,18 +94,18 @@
 	/>
 	<UserMacro
 		Name="tcltkLib"
-		Value="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib"
+		Value="$(tcltkDir)\lib\tcl85.lib $(tcltkDir)\lib\tk85.lib"
 	/>
 	<UserMacro
 		Name="tcltkLibDebug"
-		Value="$(tcltkDir)\lib\tcl84g.lib $(tcltkDir)\lib\tk84g.lib"
+		Value="$(tcltkDir)\lib\tcl85g.lib $(tcltkDir)\lib\tk85g.lib"
 	/>
 	<UserMacro
 		Name="tcltk64Lib"
-		Value="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib"
+		Value="$(tcltk64Dir)\lib\tcl85.lib $(tcltk64Dir)\lib\tk85.lib"
 	/>
 	<UserMacro
 		Name="tcltk64LibDebug"
-		Value="$(tcltk64Dir)\lib\tcl84g.lib $(tcltk64Dir)\lib\tk84g.lib"
+		Value="$(tcltk64Dir)\lib\tcl85g.lib $(tcltk64Dir)\lib\tk85g.lib"
 	/>
 </VisualStudioPropertySheet>

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/python.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/python.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/python.vcproj	Sat Jun 14 10:07:22 2008
@@ -62,7 +62,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -136,7 +135,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -211,7 +209,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python_d.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -287,7 +284,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python_d.exe"
 				SubSystem="1"
 				StackReserveSize="2100000"
@@ -360,7 +356,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -435,7 +430,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -510,7 +504,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -585,7 +578,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"

Modified: python/branches/tlee-ast-optimize/PC/VS8.0/sqlite3.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PC/VS8.0/sqlite3.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PC/VS8.0/sqlite3.vcproj	Sat Jun 14 10:07:22 2008
@@ -42,7 +42,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -56,7 +56,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				OutputFile="$(OutDir)\$(ProjectName)_d.dll"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -104,7 +104,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -118,7 +118,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				OutputFile="$(OutDir)\$(ProjectName)_d.dll"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -166,7 +166,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -180,7 +180,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				OutputFile="$(OutDir)\$(ProjectName).dll"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -229,7 +229,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -243,7 +243,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				OutputFile="$(OutDir)\$(ProjectName).dll"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -291,7 +291,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -304,7 +304,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -353,7 +353,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -366,7 +366,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -414,7 +414,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -427,7 +427,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -476,7 +476,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(sqlite3Dir)"
+				AdditionalIncludeDirectories="..\..\..\sqlite-source-3.3.4"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -489,7 +489,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				ModuleDefinitionFile="$(sqlite3Dir)\sqlite3.def"
+				ModuleDefinitionFile="..\..\..\sqlite-source-3.3.4\sqlite3.def"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -521,51 +521,51 @@
 			Name="Header Files"
 			>
 			<File
-				RelativePath="$(sqlite3Dir)\btree.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\btree.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\hash.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\hash.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\keywordhash.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\keywordhash.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\opcodes.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\opcodes.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\os.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\os.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\os_common.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\os_common.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\pager.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\pager.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\parse.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\parse.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\sqlite3.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\sqlite3.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\sqliteInt.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\sqliteInt.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vdbe.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vdbe.h"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vdbeInt.h"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vdbeInt.h"
 				>
 			</File>
 		</Filter>
@@ -573,167 +573,167 @@
 			Name="Source Files"
 			>
 			<File
-				RelativePath="$(sqlite3Dir)\alter.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\alter.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\analyze.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\analyze.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\attach.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\attach.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\auth.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\auth.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\btree.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\btree.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\build.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\build.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\callback.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\callback.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\complete.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\complete.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\date.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\date.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\delete.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\delete.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\expr.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\expr.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\func.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\func.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\hash.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\hash.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\insert.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\insert.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\legacy.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\legacy.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\main.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\main.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\opcodes.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\opcodes.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\os.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\os.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\os_unix.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\os_unix.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\os_win.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\os_win.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\pager.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\pager.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\parse.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\parse.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\pragma.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\pragma.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\prepare.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\prepare.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\printf.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\printf.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\random.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\random.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\select.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\select.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\shell.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\shell.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\table.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\table.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\tokenize.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\tokenize.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\trigger.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\trigger.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\update.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\update.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\utf.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\utf.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\util.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\util.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vacuum.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vacuum.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vdbe.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vdbe.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vdbeapi.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vdbeapi.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vdbeaux.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vdbeaux.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vdbefifo.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vdbefifo.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\vdbemem.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\vdbemem.c"
 				>
 			</File>
 			<File
-				RelativePath="$(sqlite3Dir)\where.c"
+				RelativePath="..\..\..\sqlite-source-3.3.4\where.c"
 				>
 			</File>
 		</Filter>

Modified: python/branches/tlee-ast-optimize/PC/msvcrtmodule.c
==============================================================================
--- python/branches/tlee-ast-optimize/PC/msvcrtmodule.c	(original)
+++ python/branches/tlee-ast-optimize/PC/msvcrtmodule.c	Sat Jun 14 10:07:22 2008
@@ -143,6 +143,7 @@
 	return PyString_FromStringAndSize(s, 1);
 }
 
+#ifdef _WCONIO_DEFINED
 static PyObject *
 msvcrt_getwch(PyObject *self, PyObject *args)
 {
@@ -158,6 +159,7 @@
 	u[0] = ch;
 	return PyUnicode_FromUnicode(u, 1);
 }
+#endif
 
 static PyObject *
 msvcrt_getche(PyObject *self, PyObject *args)
@@ -175,6 +177,7 @@
 	return PyString_FromStringAndSize(s, 1);
 }
 
+#ifdef _WCONIO_DEFINED
 static PyObject *
 msvcrt_getwche(PyObject *self, PyObject *args)
 {
@@ -190,6 +193,7 @@
 	s[0] = ch;
 	return PyUnicode_FromUnicode(s, 1);
 }
+#endif
 
 static PyObject *
 msvcrt_putch(PyObject *self, PyObject *args)
@@ -204,7 +208,7 @@
 	return Py_None;
 }
 
-
+#ifdef _WCONIO_DEFINED
 static PyObject *
 msvcrt_putwch(PyObject *self, PyObject *args)
 {
@@ -223,6 +227,7 @@
 	Py_RETURN_NONE;
 
 }
+#endif
 
 static PyObject *
 msvcrt_ungetch(PyObject *self, PyObject *args)
@@ -238,6 +243,7 @@
 	return Py_None;
 }
 
+#ifdef _WCONIO_DEFINED
 static PyObject *
 msvcrt_ungetwch(PyObject *self, PyObject *args)
 {
@@ -251,6 +257,7 @@
 	Py_INCREF(Py_None);
 	return Py_None;
 }
+#endif
 
 static void
 insertint(PyObject *d, char *name, int value)
@@ -279,11 +286,12 @@
 	{"getche",		msvcrt_getche, METH_VARARGS},
 	{"putch",		msvcrt_putch, METH_VARARGS},
 	{"ungetch",		msvcrt_ungetch, METH_VARARGS},
+#ifdef _WCONIO_DEFINED
 	{"getwch",		msvcrt_getwch, METH_VARARGS},
 	{"getwche",		msvcrt_getwche, METH_VARARGS},
 	{"putwch",		msvcrt_putwch, METH_VARARGS},
 	{"ungetwch",		msvcrt_ungetwch, METH_VARARGS},
-
+#endif
 	{NULL,			NULL}
 };
 

Modified: python/branches/tlee-ast-optimize/PC/pyconfig.h
==============================================================================
--- python/branches/tlee-ast-optimize/PC/pyconfig.h	(original)
+++ python/branches/tlee-ast-optimize/PC/pyconfig.h	Sat Jun 14 10:07:22 2008
@@ -467,13 +467,6 @@
 /* Define to `unsigned' if <sys/types.h> doesn't define.  */
 /* #undef size_t */
 
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#if _MSC_VER + 0 >= 1300
-/* VC.NET typedefs socklen_t in ws2tcpip.h. */
-#else
-#define socklen_t int
-#endif
-
 /* Define if you have the ANSI C header files.  */
 #define STDC_HEADERS 1
 

Modified: python/branches/tlee-ast-optimize/PCbuild/_elementtree.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PCbuild/_elementtree.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PCbuild/_elementtree.vcproj	Sat Jun 14 10:07:22 2008
@@ -56,7 +56,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -119,7 +118,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -182,7 +180,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -246,7 +243,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -309,7 +305,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -373,7 +368,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 				TargetMachine="17"
 			/>
@@ -437,7 +431,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 			/>
 			<Tool
@@ -501,7 +494,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				BaseAddress="0x1D100000"
 				TargetMachine="17"
 			/>

Modified: python/branches/tlee-ast-optimize/PCbuild/build_tkinter.py
==============================================================================
--- python/branches/tlee-ast-optimize/PCbuild/build_tkinter.py	(original)
+++ python/branches/tlee-ast-optimize/PCbuild/build_tkinter.py	Sat Jun 14 10:07:22 2008
@@ -11,14 +11,9 @@
 here = os.path.abspath(os.path.dirname(__file__))
 par = os.path.pardir
 
-if 1:
-    TCL = "tcl8.4.16"
-    TK = "tk8.4.16"
-    TIX = "tix-8.4.0"
-else:
-    TCL = "tcl8.5b3"
-    TK = "tcl8.5b3"
-    TIX = "Tix8.4.2"
+TCL = "tcl8.5.2"
+TK = "tk8.5.2"
+TIX = "tix-8.4.0.x"
 
 ROOT = os.path.abspath(os.path.join(here, par, par))
 # Windows 2000 compatibility: WINVER 0x0500
@@ -38,9 +33,9 @@
     if platform == "Win32":
         dest = os.path.join(ROOT, "tcltk")
         machine = "X86"
-    elif platform == "x64":
+    elif platform == "AMD64":
         dest = os.path.join(ROOT, "tcltk64")
-        machine = "X64"
+        machine = "AMD64"
     else:
         raise ValueError(platform)
 
@@ -50,16 +45,16 @@
         os.chdir(os.path.join(tcldir, "win"))
         if clean:
             nmake("makefile.vc", "clean")
-        nmake("makefile.vc")
-        nmake("makefile.vc", "install", INSTALLDIR=dest)
+        nmake("makefile.vc", MACHINE=machine)
+        nmake("makefile.vc", "install", INSTALLDIR=dest, MACHINE=machine)
 
     # TK
     if 1:
         os.chdir(os.path.join(ROOT, TK, "win"))
         if clean:
             nmake("makefile.vc", "clean", TCLDIR=tcldir)
-        nmake("makefile.vc", TCLDIR=tcldir)
-        nmake("makefile.vc", "install", TCLDIR=tcldir, INSTALLDIR=dest)
+        nmake("makefile.vc", TCLDIR=tcldir, MACHINE=machine)
+        nmake("makefile.vc", "install", TCLDIR=tcldir, INSTALLDIR=dest, MACHINE=machine)
 
     # TIX
     if 1:
@@ -67,12 +62,12 @@
         os.chdir(os.path.join(ROOT, TIX, "win"))
         if clean:
             nmake("python9.mak", "clean")
-        nmake("python9.mak", MACHINE=machine)
-        nmake("python9.mak", "install")
+        nmake("python9.mak", MACHINE=machine, INSTALL_DIR=dest)
+        nmake("python9.mak", "install", INSTALL_DIR=dest)
 
 def main():
-    if len(sys.argv) < 2 or sys.argv[1] not in ("Win32", "x64"):
-        print("%s Win32|x64" % sys.argv[0])
+    if len(sys.argv) < 2 or sys.argv[1] not in ("Win32", "AMD64"):
+        print("%s Win32|AMD64" % sys.argv[0])
         sys.exit(1)
 
     if "-c" in sys.argv:

Modified: python/branches/tlee-ast-optimize/PCbuild/make_versioninfo.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PCbuild/make_versioninfo.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PCbuild/make_versioninfo.vcproj	Sat Jun 14 10:07:22 2008
@@ -67,7 +67,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(SolutionDir)make_versioninfo.exe"
 				ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
 				SubSystem="1"
@@ -211,7 +210,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(SolutionDir)make_versioninfo_d.exe"
 				ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
 				SubSystem="1"

Modified: python/branches/tlee-ast-optimize/PCbuild/pcbuild.sln
==============================================================================
--- python/branches/tlee-ast-optimize/PCbuild/pcbuild.sln	(original)
+++ python/branches/tlee-ast-optimize/PCbuild/pcbuild.sln	Sat Jun 14 10:07:22 2008
@@ -131,6 +131,11 @@
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
+	ProjectSection(ProjectDependencies) = postProject
+		{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
+	EndProjectSection
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
 EndProject
 Global
@@ -537,6 +542,22 @@
 		{A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32
 		{A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64
 		{A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.Build.0 = Debug|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.ActiveCfg = Debug|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.Build.0 = Debug|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.Build.0 = PGInstrument|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.Build.0 = PGUpdate|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.ActiveCfg = Release|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64
+		{9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32
 		{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64

Modified: python/branches/tlee-ast-optimize/PCbuild/pyproject.vsprops
==============================================================================
--- python/branches/tlee-ast-optimize/PCbuild/pyproject.vsprops	(original)
+++ python/branches/tlee-ast-optimize/PCbuild/pyproject.vsprops	Sat Jun 14 10:07:22 2008
@@ -94,18 +94,18 @@
 	/>
 	<UserMacro
 		Name="tcltkLib"
-		Value="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib"
+		Value="$(tcltkDir)\lib\tcl85.lib $(tcltkDir)\lib\tk85.lib"
 	/>
 	<UserMacro
 		Name="tcltkLibDebug"
-		Value="$(tcltkDir)\lib\tcl84g.lib $(tcltkDir)\lib\tk84g.lib"
+		Value="$(tcltkDir)\lib\tcl85g.lib $(tcltkDir)\lib\tk85g.lib"
 	/>
 	<UserMacro
 		Name="tcltk64Lib"
-		Value="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib"
+		Value="$(tcltk64Dir)\lib\tcl85.lib $(tcltk64Dir)\lib\tk85.lib"
 	/>
 	<UserMacro
 		Name="tcltk64LibDebug"
-		Value="$(tcltk64Dir)\lib\tcl84g.lib $(tcltk64Dir)\lib\tk84g.lib"
+		Value="$(tcltk64Dir)\lib\tcl85g.lib $(tcltk64Dir)\lib\tk85g.lib"
 	/>
 </VisualStudioPropertySheet>

Modified: python/branches/tlee-ast-optimize/PCbuild/python.vcproj
==============================================================================
--- python/branches/tlee-ast-optimize/PCbuild/python.vcproj	(original)
+++ python/branches/tlee-ast-optimize/PCbuild/python.vcproj	Sat Jun 14 10:07:22 2008
@@ -62,7 +62,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -136,7 +135,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -211,7 +209,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python_d.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -287,7 +284,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python_d.exe"
 				SubSystem="1"
 				StackReserveSize="2100000"
@@ -360,7 +356,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -435,7 +430,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -510,7 +504,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"
@@ -585,7 +578,6 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="odbccp32.lib"
 				OutputFile="$(OutDir)\python.exe"
 				SubSystem="1"
 				StackReserveSize="2000000"

Modified: python/branches/tlee-ast-optimize/PCbuild/vs9to8.py
==============================================================================
--- python/branches/tlee-ast-optimize/PCbuild/vs9to8.py	(original)
+++ python/branches/tlee-ast-optimize/PCbuild/vs9to8.py	Sat Jun 14 10:07:22 2008
@@ -22,6 +22,12 @@
             lines = lines.replace('..\\', '..\\..\\')
             lines = lines.replace('..\\..\\..\\..\\', '..\\..\\..\\')
 
+            # Bah. VS8.0 does not expand macros in file names.
+            # Replace them here.
+            lines = lines.replace('$(sqlite3Dir)', '..\\..\\..\\sqlite-source-3.3.4')
+            lines = lines.replace('$(bsddbDir)\\..\\..', '..\\..\\..\\db-4.4.20\\build_win32\\..')
+            lines = lines.replace('$(bsddbDir)', '..\\..\\..\\db-4.4.20\\build_win32')
+
         with open(destname, 'wb') as fout:
             lines = lines.replace("\n", "\r\n")
             fout.write(lines)

Modified: python/branches/tlee-ast-optimize/Parser/intrcheck.c
==============================================================================
--- python/branches/tlee-ast-optimize/Parser/intrcheck.c	(original)
+++ python/branches/tlee-ast-optimize/Parser/intrcheck.c	Sat Jun 14 10:07:22 2008
@@ -2,6 +2,7 @@
 /* Check for interrupts */
 
 #include "Python.h"
+#include "pythread.h"
 
 #ifdef QUICKWIN
 
@@ -172,5 +173,6 @@
 {
 #ifdef WITH_THREAD
 	PyEval_ReInitThreads();
+	PyThread_ReInitTLS();
 #endif
 }

Modified: python/branches/tlee-ast-optimize/Python/thread.c
==============================================================================
--- python/branches/tlee-ast-optimize/Python/thread.c	(original)
+++ python/branches/tlee-ast-optimize/Python/thread.c	Sat Jun 14 10:07:22 2008
@@ -381,4 +381,35 @@
 	PyThread_release_lock(keymutex);
 }
 
+/* Forget everything not associated with the current thread id.
+ * This function is called from PyOS_AfterFork().  It is necessary
+ * because other thread ids which were in use at the time of the fork
+ * may be reused for new threads created in the forked process.
+ */
+void
+PyThread_ReInitTLS(void)
+{
+	long id = PyThread_get_thread_ident();
+	struct key *p, **q;
+
+	if (!keymutex)
+		return;
+	
+	/* As with interpreter_lock in PyEval_ReInitThreads()
+	   we just create a new lock without freeing the old one */
+	keymutex = PyThread_allocate_lock();
+
+	/* Delete all keys which do not match the current thread id */
+	q = &keyhead;
+	while ((p = *q) != NULL) {
+		if (p->id != id) {
+			*q = p->next;
+			free((void *)p);
+			/* NB This does *not* free p->value! */
+		}
+		else
+			q = &p->next;
+	}
+}
+
 #endif /* Py_HAVE_NATIVE_TLS */

Modified: python/branches/tlee-ast-optimize/Tools/buildbot/external-amd64.bat
==============================================================================
--- python/branches/tlee-ast-optimize/Tools/buildbot/external-amd64.bat	(original)
+++ python/branches/tlee-ast-optimize/Tools/buildbot/external-amd64.bat	Sat Jun 14 10:07:22 2008
@@ -4,14 +4,14 @@
 call "Tools\buildbot\external-common.bat"
 call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
 
-if not exist tcltk64\bin\tcl84g.dll (
-    cd tcl-8.4.18.2\win
+if not exist tcltk64\bin\tcl85g.dll (
+    cd tcl-8.5.2.1\win
     nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install
     cd ..\..
 )
 
-if not exist tcltk64\bin\tk84g.dll (
-    cd tk-8.4.18.1\win    
-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.4.18.2 clean all install
+if not exist tcltk64\bin\tk85g.dll (
+    cd tk-8.5.2.1\win    
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean all install
     cd ..\..
 )

Modified: python/branches/tlee-ast-optimize/Tools/buildbot/external-common.bat
==============================================================================
--- python/branches/tlee-ast-optimize/Tools/buildbot/external-common.bat	(original)
+++ python/branches/tlee-ast-optimize/Tools/buildbot/external-common.bat	Sat Jun 14 10:07:22 2008
@@ -27,8 +27,11 @@
 if not exist openssl-0.9.8g svn export http://svn.python.org/projects/external/openssl-0.9.8g
 
 @rem tcl/tk
-if not exist tcl-8.4.18.2 svn export http://svn.python.org/projects/external/tcl-8.4.18.2
-if not exist tk-8.4.18.1 svn export http://svn.python.org/projects/external/tk-8.4.18.1
+if not exist tcl-8.5.2.1 (
+   rd /s/q tcltk tcltk64
+   svn export http://svn.python.org/projects/external/tcl-8.5.2.1
+)
+if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0
 
 @rem sqlite3
 if not exist sqlite-source-3.3.4 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4

Modified: python/branches/tlee-ast-optimize/Tools/buildbot/external.bat
==============================================================================
--- python/branches/tlee-ast-optimize/Tools/buildbot/external.bat	(original)
+++ python/branches/tlee-ast-optimize/Tools/buildbot/external.bat	Sat Jun 14 10:07:22 2008
@@ -4,14 +4,18 @@
 call "Tools\buildbot\external-common.bat"
 call "%VS90COMNTOOLS%\vsvars32.bat"
 
-if not exist tcltk\bin\tcl84g.dll (
-    cd tcl-8.4.18.2\win
-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all install
+if not exist tcltk\bin\tcl85.dll (
+    @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install
+    cd tcl-8.5.2.1\win
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all 
+    nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install
     cd ..\..
 )
 
-if not exist tcltk\bin\tk84g.dll (
-    cd tk-8.4.18.1\win    
-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.4.18.2 clean all install
+if not exist tcltk\bin\tk85.dll (
+    cd tk-8.5.2.0\win    
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install
     cd ..\..
 )

Modified: python/branches/tlee-ast-optimize/Tools/msi/msi.py
==============================================================================
--- python/branches/tlee-ast-optimize/Tools/msi/msi.py	(original)
+++ python/branches/tlee-ast-optimize/Tools/msi/msi.py	Sat Jun 14 10:07:22 2008
@@ -848,17 +848,18 @@
     import shutil, glob
     out = open("LICENSE.txt", "w")
     shutil.copyfileobj(open(os.path.join(srcdir, "LICENSE")), out)
-    for dir, file in (("bzip2","LICENSE"),
-                      ("db", "LICENSE"),
-                      ("openssl", "LICENSE"),
-                      ("tcl", "license.terms"),
-                      ("tk", "license.terms")):
-        out.write("\nThis copy of Python includes a copy of %s, which is licensed under the following terms:\n\n" % dir)
-        dirs = glob.glob(srcdir+"/../"+dir+"-*")
+    for name, pat, file in (("bzip2","bzip2-*", "LICENSE"),
+                      ("Berkeley DB", "db-*", "LICENSE"),
+                      ("openssl", "openssl-*", "LICENSE"),
+                      ("Tcl", "tcl8*", "license.terms"),
+                      ("Tk", "tk8*", "license.terms"),
+                      ("Tix", "tix-*", "license.terms")):
+        out.write("\nThis copy of Python includes a copy of %s, which is licensed under the following terms:\n\n" % name)
+        dirs = glob.glob(srcdir+"/../"+pat)
         if not dirs:
-            raise ValueError, "Could not find "+srcdir+"/../"+dir+"-*"
+            raise ValueError, "Could not find "+srcdir+"/../"+pat
         if len(dirs) > 2:
-            raise ValueError, "Multiple copies of "+dir
+            raise ValueError, "Multiple copies of "+pat
         dir = dirs[0]
         shutil.copyfileobj(open(os.path.join(dir, file)), out)
     out.close()

Modified: python/branches/tlee-ast-optimize/Tools/msi/msilib.py
==============================================================================
--- python/branches/tlee-ast-optimize/Tools/msi/msilib.py	(original)
+++ python/branches/tlee-ast-optimize/Tools/msi/msilib.py	Sat Jun 14 10:07:22 2008
@@ -333,6 +333,7 @@
     #str = str.replace(".", "_") # colons are allowed
     str = str.replace(" ", "_")
     str = str.replace("-", "_")
+    str = str.replace("+", "_")
     if str[0] in string.digits:
         str = "_"+str
     assert re.match("^[A-Za-z_][A-Za-z0-9_.]*$", str), "FILE"+str
@@ -477,6 +478,7 @@
                         [(feature.id, component)])
 
     def make_short(self, file):
+        file = re.sub(r'[\?|><:/*"+,;=\[\]]', '_', file) # restrictions on short names
         parts = file.split(".")
         if len(parts)>1:
             suffix = parts[-1].upper()
@@ -505,7 +507,6 @@
                 if pos in (10, 100, 1000):
                     prefix = prefix[:-1]
         self.short_names.add(file)
-        assert not re.search(r'[\?|><:/*"+,;=\[\]]', file) # restrictions on short names
         return file
 
     def add_file(self, file, src=None, version=None, language=None):

Modified: python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py
==============================================================================
--- python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py	(original)
+++ python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py	Sat Jun 14 10:07:22 2008
@@ -229,12 +229,12 @@
     print >>fp, "#define TOTAL_FIRST",total_first
     print >>fp, "#define TOTAL_LAST",total_last
     print >>fp, "struct reindex{int start;short count,index;};"
-    print >>fp, "struct reindex nfc_first[] = {"
+    print >>fp, "static struct reindex nfc_first[] = {"
     for start,end in comp_first_ranges:
         print >>fp,"  { %d, %d, %d}," % (start,end-start,comp_first[start])
     print >>fp,"  {0,0,0}"
     print >>fp,"};\n"
-    print >>fp, "struct reindex nfc_last[] = {"
+    print >>fp, "static struct reindex nfc_last[] = {"
     for start,end in comp_last_ranges:
         print >>fp,"  { %d, %d, %d}," % (start,end-start,comp_last[start])
     print >>fp,"  {0,0,0}"


More information about the Python-checkins mailing list