........
r63942 | thomas.heller | 2008-06-04 20:59:03 +0200 (Wed, 04 Jun 2008) | 42 lines
Issue #1798: Add ctypes calling convention that allows safe access to
errno (and LastError, on Windows).
ctypes maintains a module-global, but thread-local, variable that
contains an error number; called 'ctypes_errno' for this discussion.
This variable is a private copy of the systems 'errno' value; the copy
is swapped with the 'errno' variable on several occasions.
Foreign functions created with CDLL(..., use_errno=True), when called,
swap the values just before the actual function call, and swapped
again immediately afterwards. The 'use_errno' parameter defaults to
False, in this case 'ctypes_errno' is not touched.
The values are also swapped immeditately before and after ctypes
callback functions are called, if the callbacks are constructed using
the new optional use_errno parameter set to True: CFUNCTYPE(..., use_errno=TRUE)
or WINFUNCTYPE(..., use_errno=True).
Two new ctypes functions are provided to access the 'ctypes_errno'
value from Python:
- ctypes.set_errno(value) sets ctypes_errno to 'value', the previous
ctypes_errno value is returned.
- ctypes.get_errno() returns the current ctypes_errno value.
---
On Windows, the same scheme is implemented for the error value which
is managed by the GetLastError() and SetLastError() windows api calls.
The ctypes functions are 'ctypes.set_last_error(value)' and
'ctypes.get_last_error()', the CDLL and WinDLL optional parameter is
named 'use_last_error', defaults to False.
---
On Windows, TlsSetValue and TlsGetValue calls are used to provide
thread local storage for the variables; ctypes compiled with __GNUC__
uses __thread variables.
........
r63943 | thomas.heller | 2008-06-04 21:19:00 +0200 (Wed, 04 Jun 2008) | 1 line
Fix ctypes.set_errno for gcc.
........
r63945 | thomas.heller | 2008-06-04 22:22:05 +0200 (Wed, 04 Jun 2008) | 7 lines
Revert revisions 63943 and 63942 (Issue #1798: Add ctypes calling
convention that allows safe access to errno)
This code does not yet work on OS X (__thread storage specifier not
available), so i needs a configure check plus a more portable
solution.
........
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63897 | thomas.heller | 2008-06-02 20:41:30 +0200 (Mon, 02 Jun 2008) | 1 line
Fix misspelled sys.platform name and misspelled filename.
........
r63898 | thomas.heller | 2008-06-02 22:07:46 +0200 (Mon, 02 Jun 2008) | 1 line
Fix the -x flag so that is does work.
........
........
r63899 | walter.doerwald | 2008-06-02 22:36:03 +0200 (Mon, 02 Jun 2008) | 3 lines
Change all functions that expect one unicode character to accept a pair of
surrogates in narrow builds. Fixes issue #1706460.
........
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63625 | martin.v.loewis | 2008-05-25 13:56:23 +0200 (So, 25 Mai 2008) | 1 line
Include all licenses of the packages that we include.
........
r63638 | martin.v.loewis | 2008-05-25 18:37:34 +0200 (So, 25 Mai 2008) | 1 line
Create grammar pickle files on installation; remove them on uninstallation.
........
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63871 | georg.brandl | 2008-06-01 22:33:55 +0200 (Sun, 01 Jun 2008) | 3 lines
Generate pydoc's topic help from the reST docs via Sphinx'
new text writer.
........
arguments. This gives about 30% speed improvement for the simplest
(but most common) cases. This patch skips the __format__ dispatch, and
also avoids creating an object to hold the format_spec.
Unfortunately, backporting this to 2.6 is going to be more challenging
due to str/unicode issues with format_spec. I'll work on that next.
Then I'll spend some time profiling and see what that tells me.
........
r63814 | eric.smith | 2008-05-30 14:10:04 -0400 (Fri, 30 May 2008) | 1 line
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
........