]> granicus.if.org Git - python/commitdiff
Merged revisions 67295,67301-67302,67318,67330,67342-67343 via svnmerge from
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 22 Nov 2008 22:18:04 +0000 (22:18 +0000)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 22 Nov 2008 22:18:04 +0000 (22:18 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r67295 | benjamin.peterson | 2008-11-20 05:05:12 +0100 (jeu., 20 nov. 2008) | 1 line

  move useful sys.settrace information to the function's documentation from the debugger
........
  r67301 | benjamin.peterson | 2008-11-20 22:25:31 +0100 (jeu., 20 nov. 2008) | 1 line

  fix indentation and a sphinx warning
........
  r67302 | benjamin.peterson | 2008-11-20 22:44:23 +0100 (jeu., 20 nov. 2008) | 1 line

  oops! didn't mean to disable that test
........
  r67318 | amaury.forgeotdarc | 2008-11-21 23:05:48 +0100 (ven., 21 nov. 2008) | 4 lines

  #4363: Let uuid.uuid1() and uuid.uuid4() run even if the ctypes module is not present.

  Will backport to 2.6
........
  r67330 | georg.brandl | 2008-11-22 09:34:14 +0100 (sam., 22 nov. 2008) | 2 lines

  #4364: fix attribute name on ctypes object.
........
  r67342 | amaury.forgeotdarc | 2008-11-22 20:39:38 +0100 (sam., 22 nov. 2008) | 3 lines

  yuvconvert.c is a part of the "sv" module, an old IRIX thing
  and certainly not useful for any Windows build.
........
  r67343 | amaury.forgeotdarc | 2008-11-22 21:01:18 +0100 (sam., 22 nov. 2008) | 5 lines

  #3996: On Windows, PyOS_CheckStack is supposed to protect the interpreter from
  stack overflow. But doing this, it always crashes when the stack is nearly full.

  Reviewed by Martin von Loewis. Will backport to 2.6.
........

13 files changed:
Doc/library/multiprocessing.rst
Doc/library/pdb.rst
Doc/library/sys.rst
Lib/test/test_bytes.py
Lib/uuid.py
Misc/NEWS
PC/VC6/pythoncore.dsp
PC/VS7.1/pythoncore.vcproj
PC/VS8.0/pythoncore.vcproj
PC/os2vacpp/makefile
PC/os2vacpp/makefile.omk
PCbuild/pythoncore.vcproj
Python/pythonrun.c

index 8ea561f21724dc019fef555820f49f9caebd2627..b01699c6289d413f9a281ca4d8857d877a5f8431 100644 (file)
@@ -872,7 +872,7 @@ inherited by child processes.
 
    Note that *lock* is a keyword only argument.
 
-   Note that an array of :data:`ctypes.c_char` has *value* and *rawvalue*
+   Note that an array of :data:`ctypes.c_char` has *value* and *raw*
    attributes which allow one to use it to store and retrieve strings.
 
 
@@ -921,7 +921,7 @@ processes.
    :func:`Value` instead to make sure that access is automatically synchronized
    using a lock.
 
-   Note that an array of :data:`ctypes.c_char` has ``value`` and ``rawvalue``
+   Note that an array of :data:`ctypes.c_char` has ``value`` and ``raw``
    attributes which allow one to use it to store and retrieve strings -- see
    documentation for :mod:`ctypes`.
 
index adbff79e355d32ac482fb00078ddbfd0882a5e11..253798300489286902dca791e0ce69b4884765d3 100644 (file)
@@ -336,68 +336,3 @@ run [*args* ...]
 
 q(uit)
    Quit from the debugger. The program being executed is aborted.
-
-
-.. _debugger-hooks:
-
-How It Works
-============
-
-Some changes were made to the interpreter:
-
-* ``sys.settrace(func)`` sets the global trace function
-
-* there can also a local trace function (see later)
-
-Trace functions have three arguments: *frame*, *event*, and *arg*. *frame* is
-the current stack frame.  *event* is a string: ``'call'``, ``'line'``,
-``'return'``, ``'exception'``, ``'c_call'``, ``'c_return'``, or
-``'c_exception'``. *arg* depends on the event type.
-
-The global trace function is invoked (with *event* set to ``'call'``) whenever a
-new local scope is entered; it should return a reference to the local trace
-function to be used that scope, or ``None`` if the scope shouldn't be traced.
-
-The local trace function should return a reference to itself (or to another
-function for further tracing in that scope), or ``None`` to turn off tracing in
-that scope.
-
-Instance methods are accepted (and very useful!) as trace functions.
-
-The events have the following meaning:
-
-``'call'``
-   A function is called (or some other code block entered).  The global trace
-   function is called; *arg* is ``None``; the return value specifies the local
-   trace function.
-
-``'line'``
-   The interpreter is about to execute a new line of code (sometimes multiple line
-   events on one line exist).  The local trace function is called; *arg* is
-   ``None``; the return value specifies the new local trace function.
-
-``'return'``
-   A function (or other code block) is about to return.  The local trace function
-   is called; *arg* is the value that will be returned.  The trace function's
-   return value is ignored.
-
-``'exception'``
-   An exception has occurred.  The local trace function is called; *arg* is a
-   triple ``(exception, value, traceback)``; the return value specifies the new
-   local trace function.
-
-``'c_call'``
-   A C function is about to be called.  This may be an extension function or a
-   builtin.  *arg* is the C function object.
-
-``'c_return'``
-   A C function has returned. *arg* is ``None``.
-
-``'c_exception'``
-   A C function has thrown an exception.  *arg* is ``None``.
-
-Note that as an exception is propagated down the chain of callers, an
-``'exception'`` event is generated at each level.
-
-For more information on code and frame objects, refer to :ref:`types`.
-
index 568b06df8c9599d2b607e37f17b6d2e51a6464ea..e4dbf177eb070e2480880f4f62b4fda87b144956 100644 (file)
@@ -623,11 +623,60 @@ always available.
       single: debugger
 
    Set the system's trace function, which allows you to implement a Python
-   source code debugger in Python.  See section :ref:`debugger-hooks` in the
-   chapter on the Python debugger.  The function is thread-specific; for a
+   source code debugger in Python.  The function is thread-specific; for a
    debugger to support multiple threads, it must be registered using
    :func:`settrace` for each thread being debugged.
 
+   Trace functions should have three arguments: *frame*, *event*, and
+   *arg*. *frame* is the current stack frame.  *event* is a string: ``'call'``,
+   ``'line'``, ``'return'``, ``'exception'``, ``'c_call'``, ``'c_return'``, or
+   ``'c_exception'``. *arg* depends on the event type.
+
+   The trace function is invoked (with *event* set to ``'call'``) whenever a new
+   local scope is entered; it should return a reference to a local trace
+   function to be used that scope, or ``None`` if the scope shouldn't be traced.
+
+   The local trace function should return a reference to itself (or to another
+   function for further tracing in that scope), or ``None`` to turn off tracing
+   in that scope.
+
+   The events have the following meaning:
+
+   ``'call'`` 
+      A function is called (or some other code block entered).  The
+      global trace function is called; *arg* is ``None``; the return value
+      specifies the local trace function.
+
+   ``'line'``
+      The interpreter is about to execute a new line of code (sometimes multiple
+      line events on one line exist).  The local trace function is called; *arg*
+      is ``None``; the return value specifies the new local trace function.
+
+   ``'return'``
+      A function (or other code block) is about to return.  The local trace
+      function is called; *arg* is the value that will be returned.  The trace
+      function's return value is ignored.
+
+   ``'exception'``
+      An exception has occurred.  The local trace function is called; *arg* is a
+      tuple ``(exception, value, traceback)``; the return value specifies the
+      new local trace function.
+
+   ``'c_call'``
+      A C function is about to be called.  This may be an extension function or
+      a builtin.  *arg* is the C function object.
+
+   ``'c_return'``
+      A C function has returned. *arg* is ``None``.
+
+   ``'c_exception'``
+      A C function has thrown an exception.  *arg* is ``None``.
+
+   Note that as an exception is propagated down the chain of callers, an
+   ``'exception'`` event is generated at each level.
+
+   For more information on code and frame objects, refer to :ref:`types`.
+
    .. note::
 
       The :func:`settrace` function is intended only for implementing debuggers,
index 7b2a0bd06344fda406c2b9b06ccd8fbb424e57f8..24812a5bcda9307db9061ddbac4b0020233ae439 100644 (file)
@@ -742,7 +742,7 @@ class ByteArrayTest(BaseBytesTest):
         # Issue 4348.  Make sure that operations that don't mutate the array
         # copy the bytes.
         b = bytearray(b'abc')
-        #self.assertFalse(b is b.replace(b'abc', b'cde', 0))
+        self.assertFalse(b is b.replace(b'abc', b'cde', 0))
 
         t = bytearray([i for i in range(256)])
         x = bytearray(b'')
index eaf7c8825f8692cc6dab8c8c760d8a4e317012a7..d50550abc126699bfbdf9d9cdf9d209a11eebe8b 100644 (file)
@@ -500,8 +500,8 @@ def uuid1(node=None, clock_seq=None):
 
     # When the system provides a version-1 UUID generator, use it (but don't
     # use UuidCreate here because its UUIDs don't conform to RFC 4122).
-    _buffer = ctypes.create_string_buffer(16)
     if _uuid_generate_time and node is clock_seq is None:
+        _buffer = ctypes.create_string_buffer(16)
         _uuid_generate_time(_buffer)
         return UUID(bytes=bytes_(_buffer.raw))
 
@@ -537,8 +537,8 @@ def uuid4():
     """Generate a random UUID."""
 
     # When the system provides a version-4 UUID generator, use it.
-    _buffer = ctypes.create_string_buffer(16)
     if _uuid_generate_random:
+        _buffer = ctypes.create_string_buffer(16)
         _uuid_generate_random(_buffer)
         return UUID(bytes=bytes_(_buffer.raw))
 
index 4e797b211d64d5628a26c1f0dabebacbf6624e6b..36cfe4163bf7418da1716f571237ec178ccaa468 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,13 @@ What's New in Python 3.0 final
 Core and Builtins
 -----------------
 
+- Issue #3996: On Windows, the PyOS_CheckStack function would cause the
+  interpreter to abort ("Fatal Python error: Could not reset the stack!")
+  instead of throwing a MemoryError.
+
+- Issue #4367: Python would segfault during compiling when the unicodedata
+  module couldn't be imported and \N escapes were present.
+
 Library
 -------
 
@@ -48,6 +55,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #4363: The uuid.uuid1() and uuid.uuid4() functions now work even if
+  the ctypes module is not present.
+
 - FileIO's mode attribute now always includes ``"b"``.
 
 - Issue #3799: Fix dbm.dumb to accept strings as well as bytes for keys. String
index a3ea6bdf5c5500f1a9962420d24d0045c21ddb38..2b702ad8773c73cb0f43927bd4c38c2e49a8387b 100644 (file)
@@ -723,10 +723,6 @@ SOURCE=..\..\Modules\xxsubtype.c
 # End Source File\r
 # Begin Source File\r
 \r
-SOURCE=..\..\Modules\yuvconvert.c\r
-# End Source File\r
-# Begin Source File\r
-\r
 SOURCE=..\..\Modules\zipimport.c\r
 # End Source File\r
 # Begin Source File\r
index 3c395b8fbc2dd6b725168a9cc03bbc70740f0946..9d2e4caa181ec75554099f97155696d51c600e2b 100644 (file)
                <File
                        RelativePath="..\..\Modules\xxsubtype.c">
                </File>
-               <File
-                       RelativePath="..\..\Modules\yuvconvert.c">
-               </File>
                <File
                        RelativePath="..\..\Modules\zipimport.c">
                </File>
index 0e7c478557b51bb4e01643f1f488518bb6ac8c58..f925c400215b43075c3692f34055ca986c4f0f7e 100644 (file)
                                RelativePath="..\..\Modules\xxsubtype.c"
                                >
                        </File>
-                       <File
-                               RelativePath="..\..\Modules\yuv.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\..\Modules\yuvconvert.c"
-                               >
-                       </File>
                        <File
                                RelativePath="..\..\Modules\zipimport.c"
                                >
index d47ff1f75a9f6d8bab46a083da68baba1d00d62e..5c110fedaef0fb6c410750e410ed5da584cb68de 100644 (file)
@@ -200,8 +200,7 @@ MODULES             =                              \
                   $(PATHOBJ)\StropModule.obj   \
                   $(PATHOBJ)\StructModule.obj  \
                   $(PATHOBJ)\TimeModule.obj    \
-                  $(PATHOBJ)\ThreadModule.obj  \
-                  $(PATHOBJ)\YUVConvert.obj
+                  $(PATHOBJ)\ThreadModule.obj
 
 # Standalone Parser Generator Program (Shares Some of Python's Modules)
 PGEN            =                              \
@@ -894,8 +893,6 @@ xxmodule.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h $(PY_INCLUDE)\class
         $(PY_INCLUDE)\sliceobject.h $(PY_INCLUDE)\stringobject.h \
         $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h $(PY_INCLUDE)\tupleobject.h
 
-yuvconvert.obj: $(PY_MODULES)\yuv.h
-
 zlibmodule.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h $(PY_INCLUDE)\classobject.h \
         $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h pyconfig.h \
         $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h $(PY_INCLUDE)\floatobject.h \
index 4f7f478f4b63784cd2ce1dd59f9d799819e2e10b..24361d64acee1cf3ed45767f06ee548ebf99c480 100644 (file)
@@ -161,8 +161,7 @@ MODULES             =                   \
                   StropModule.obj   \
                   StructModule.obj  \
                   TimeModule.obj    \
-                  ThreadModule.obj  \
-                  YUVConvert.obj
+                  ThreadModule.obj
 
 # Omitted Modules (and Description/Reason):
   #
@@ -645,8 +644,6 @@ xxmodule.obj: abstract.h ceval.h classobject.h cobject.h complexobject.h \
         pythonrun.h rangeobject.h sliceobject.h stringobject.h sysmodule.h \
         traceback.h tupleobject.h
 
-yuvconvert.obj: yuv.h
-
 zlibmodule.obj: abstract.h ceval.h classobject.h cobject.h complexobject.h \
         pyconfig.h dictobject.h fileobject.h floatobject.h funcobject.h \
         import.h intobject.h intrcheck.h listobject.h longobject.h \
index 33bea7e81215a0d418486da901017f0cab7f17b8..4cc3f2ee740d55ebaa612f1422dd201766261bec 100644 (file)
                                RelativePath="..\Modules\xxsubtype.c"
                                >
                        </File>
-                       <File
-                               RelativePath="..\Modules\yuv.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\Modules\yuvconvert.c"
-                               >
-                       </File>
                        <File
                                RelativePath="..\Modules\zipimport.c"
                                >
index 2e80e869524738a01234327b2f0ac09caa8b53e0..04dabc5c788e895cab60567fa512064f9ab5e4f9 100644 (file)
@@ -2039,7 +2039,7 @@ PyOS_CheckStack(void)
                        EXCEPTION_EXECUTE_HANDLER : 
                        EXCEPTION_CONTINUE_SEARCH) {
                int errcode = _resetstkoflw();
-               if (errcode)
+               if (errcode == 0)
                {
                        Py_FatalError("Could not reset the stack!");
                }