- rename to _test_structmembersType to avoid the class being automatically
called by test_capi
- allow space for trailing NUL in inplace_member field of all_structmembers
- use T_STRING_INPLACE instead of T_INPLACE_STRING as keyword argument
to _test_structmembersType initializer
- don't attempt to initialize inplace_member field if T_STRING_INPLACE
argument wasn't supplied.
os.kill takes one of two newly added signals, CTRL_C_EVENT and
CTRL_BREAK_EVENT, or any integer value. The events are a special case
which work with subprocess console applications which implement a
special console control handler. Any other value but those two will
cause os.kill to use TerminateProcess, outright killing the process.
This change adds win_console_handler.py, which is a script to implement
SetConsoleCtrlHandler and applicable handler function, using ctypes.
subprocess also gets another attribute which is a necessary flag to
creationflags in Popen in order to send the CTRL events.
svn+ssh://pythondev@svn.python.org/python/branches/branch_libffi-3_0_10-win
........
r79115 | thomas.heller | 2010-03-19 22:14:47 +0100 (Fr, 19 Mrz 2010) | 7 lines
Work in progress. 2 tests fail on x86/win32 because the stack
checking code in ffi_call_win32 is not yet implemented.
Remove most files from _ctypes/libffi_msvc, only two include files
stay (updated from _ctypes/libffi/...). Other files are used in the
cross-platform _ctypes/libffi directory.
........
r79424 | thomas.heller | 2010-03-25 19:28:02 +0100 (Do, 25 Mrz 2010) | 1 line
Build _ctypes on Win64.
........
r79491 | thomas.heller | 2010-03-29 21:30:33 +0200 (Mo, 29 Mrz 2010) | 4 lines
On Windows, ctypes does no longer check the stack before and after
calling a foreign function.
This allows to use the unmodified libffi library.
........
-- Diese und die folgenden Zeilen werden ignoriert --
M _ctypes/libffi/configure
M _ctypes/libffi/configure.ac
M _ctypes/libffi/aclocal.m4
M _ctypes/libffi.diff
-- Diese und die folgenden Zeilen werden ignoriert --
M Misc/NEWS
A Modules/_ctypes/libffi/m4
A Modules/_ctypes/libffi/m4/ltsugar.m4
A Modules/_ctypes/libffi/m4/libtool.m4
A Modules/_ctypes/libffi/m4/ltversion.m4
A Modules/_ctypes/libffi/m4/lt~obsolete.m4
A Modules/_ctypes/libffi/m4/ltoptions.m4
A Modules/_ctypes/libffi/ChangeLog.libffi
M Modules/_ctypes/libffi/configure
M Modules/_ctypes/libffi/Makefile.in
M Modules/_ctypes/libffi/fficonfig.h.in
M Modules/_ctypes/libffi/src/arm/sysv.S
M Modules/_ctypes/libffi/src/powerpc/ffitarget.h
M Modules/_ctypes/libffi/src/powerpc/aix.S
M Modules/_ctypes/libffi/src/powerpc/ffi.c
M Modules/_ctypes/libffi/src/powerpc/sysv.S
M Modules/_ctypes/libffi/src/powerpc/ffi_darwin.c
M Modules/_ctypes/libffi/src/powerpc/aix_closure.S
A Modules/_ctypes/libffi/src/closures.c
D Modules/_ctypes/libffi/src/darwin/ffitarget.h
M Modules/_ctypes/libffi/src/sh64/ffi.c
M Modules/_ctypes/libffi/src/sh64/sysv.S
M Modules/_ctypes/libffi/src/x86/ffi64.c
M Modules/_ctypes/libffi/src/x86/ffitarget.h
M Modules/_ctypes/libffi/src/x86/win32.S
M Modules/_ctypes/libffi/src/x86/darwin.S
M Modules/_ctypes/libffi/src/x86/ffi.c
M Modules/_ctypes/libffi/src/x86/sysv.S
A Modules/_ctypes/libffi/src/x86/win64.S
M Modules/_ctypes/libffi/src/x86/unix64.S
A Modules/_ctypes/libffi/src/types.c
A Modules/_ctypes/libffi/src/avr32
A Modules/_ctypes/libffi/src/avr32/ffitarget.h
A Modules/_ctypes/libffi/src/avr32/ffi.c
A Modules/_ctypes/libffi/src/avr32/sysv.S
M Modules/_ctypes/libffi/src/frv/ffi.c
M Modules/_ctypes/libffi/src/s390/sysv.S
M Modules/_ctypes/libffi/src/pa/ffi.c
A Modules/_ctypes/libffi/src/raw_api.c
A Modules/_ctypes/libffi/src/java_raw_api.c
A Modules/_ctypes/libffi/src/debug.c
M Modules/_ctypes/libffi/src/sparc/ffi.c
M Modules/_ctypes/libffi/src/sparc/v8.S
M Modules/_ctypes/libffi/src/mips/ffitarget.h
M Modules/_ctypes/libffi/src/mips/n32.S
M Modules/_ctypes/libffi/src/mips/o32.S
M Modules/_ctypes/libffi/src/mips/ffi.c
A Modules/_ctypes/libffi/src/dlmalloc.c
M Modules/_ctypes/libffi/src/sh/ffi.c
M Modules/_ctypes/libffi/src/sh/sysv.S
AM Modules/_ctypes/libffi/depcomp
AM Modules/_ctypes/libffi/compile
M Modules/_ctypes/libffi/config.guess
AM Modules/_ctypes/libffi/ltmain.sh
M Modules/_ctypes/libffi/config.sub
AM Modules/_ctypes/libffi/mdate-sh
M Modules/_ctypes/libffi/configure.ac
A Modules/_ctypes/libffi/doc
A Modules/_ctypes/libffi/doc/libffi.texi
A Modules/_ctypes/libffi/doc/stamp-vti
A Modules/_ctypes/libffi/doc/libffi.info
A Modules/_ctypes/libffi/doc/version.texi
A Modules/_ctypes/libffi/texinfo.tex
A Modules/_ctypes/libffi/man
A Modules/_ctypes/libffi/man/ffi_call.3
A Modules/_ctypes/libffi/man/Makefile.in
A Modules/_ctypes/libffi/man/ffi.3
A Modules/_ctypes/libffi/man/Makefile.am
A Modules/_ctypes/libffi/man/ffi_prep_cif.3
A Modules/_ctypes/libffi/ChangeLog.libgcj
M Modules/_ctypes/libffi/LICENSE
M Modules/_ctypes/libffi/include/ffi.h.in
M Modules/_ctypes/libffi/include/Makefile.in
M Modules/_ctypes/libffi/include/ffi_common.h
M Modules/_ctypes/libffi/include/Makefile.am
A Modules/_ctypes/libffi/libtool-version
A Modules/_ctypes/libffi/ChangeLog
A Modules/_ctypes/libffi/testsuite
A Modules/_ctypes/libffi/testsuite/Makefile.in
A Modules/_ctypes/libffi/testsuite/libffi.call
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_multi_ushort.c
A Modules/_ctypes/libffi/testsuite/libffi.call/stret_medium.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_uint16.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_uc.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct3.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct5.c
A Modules/_ctypes/libffi/testsuite/libffi.call/err_bad_abi.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct3.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_7_1_byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct5.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_double.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct7.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_sl.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct7.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct9.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_sint.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct9.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_pointer.c
A Modules/_ctypes/libffi/testsuite/libffi.call/many_win32.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_20byte1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_multi_sshortchar.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_fl.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_sint64.c
A Modules/_ctypes/libffi/testsuite/libffi.call/many.c
A Modules/_ctypes/libffi/testsuite/libffi.call/strlen.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_3byte2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_ldl.c
A Modules/_ctypes/libffi/testsuite/libffi.call/stret_large.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_multi_schar.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_multi_uchar.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_9byte1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/err_bad_typedef.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_19byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_float.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_fn1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_longdouble_split.c
A Modules/_ctypes/libffi/testsuite/libffi.call/problem1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_fl1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_fn3.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_dbl2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_sshort.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_fl3.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_fn5.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_double.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_2byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/promotion.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct.c
A Modules/_ctypes/libffi/testsuite/libffi.call/float2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct10.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_ll1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_4byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/float4.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_6byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_longdouble.c
A Modules/_ctypes/libffi/testsuite/libffi.call/huge_struct.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_8byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_multi_sshort.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_uint32.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_sint16.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_double_va.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_sc.c
A Modules/_ctypes/libffi/testsuite/libffi.call/float.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_20byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_float.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_pointer_stack.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_5_1_byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct4.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_24byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct6.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct4.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_loc_fn0.c
A Modules/_ctypes/libffi/testsuite/libffi.call/struct8.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct6.c
A Modules/_ctypes/libffi/testsuite/libffi.call/testclosure.c
A Modules/_ctypes/libffi/testsuite/libffi.call/nested_struct8.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_64byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_ul.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_uint.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_dbls_struct.c
A Modules/_ctypes/libffi/testsuite/libffi.call/strlen_win32.c
A Modules/_ctypes/libffi/testsuite/libffi.call/pyobjc-tc.c
A Modules/_ctypes/libffi/testsuite/libffi.call/stret_large2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_multi_ushortchar.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_dbl.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_schar.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_uchar.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_uint64.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_longdouble.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_ulonglong.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_1_1byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_ll.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_3_1byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_12byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_4_1byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_3byte1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/ffitest.h
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_6_1_byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_16byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_18byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_fn0.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_9byte2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_longdouble_va.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_dbl1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_fn2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_stdcall.c
A Modules/_ctypes/libffi/testsuite/libffi.call/return_fl2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/stret_medium2.c
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_fn4.c
A Modules/_ctypes/libffi/testsuite/libffi.call/negint.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_ushort.c
A Modules/_ctypes/libffi/testsuite/libffi.call/call.exp
A Modules/_ctypes/libffi/testsuite/libffi.call/closure_fn6.c
A Modules/_ctypes/libffi/testsuite/libffi.call/float1.c
A Modules/_ctypes/libffi/testsuite/libffi.call/float3.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_5byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_7byte.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_pointer.c
A Modules/_ctypes/libffi/testsuite/libffi.call/cls_align_sint32.c
A Modules/_ctypes/libffi/testsuite/config
A Modules/_ctypes/libffi/testsuite/config/default.exp
A Modules/_ctypes/libffi/testsuite/lib
A Modules/_ctypes/libffi/testsuite/lib/target-libpath.exp
A Modules/_ctypes/libffi/testsuite/lib/wrapper.exp
A Modules/_ctypes/libffi/testsuite/lib/libffi-dg.exp
A Modules/_ctypes/libffi/testsuite/Makefile.am
A Modules/_ctypes/libffi/testsuite/libffi.special
A Modules/_ctypes/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
A Modules/_ctypes/libffi/testsuite/libffi.special/unwindtest.cc
A Modules/_ctypes/libffi/testsuite/libffi.special/special.exp
A Modules/_ctypes/libffi/testsuite/libffi.special/ffitestcxx.h
M Modules/_ctypes/libffi/README
A Modules/_ctypes/libffi/libffi.pc.in
M Modules/_ctypes/libffi/Makefile.am
M Modules/_ctypes/libffi/missing
A Modules/_ctypes/libffi/ChangeLog.v1
M Modules/_ctypes/libffi/aclocal.m4
M Modules/_ctypes/libffi.diff
string. Initialize all attributes to be able to call the statement destructor
on error.
Avoid also a duplicate connection in some tests: setUp() does already open a
connection (":memory:").
set to an non existent program name and Python is unable to retrieve the real
program name.
Fix also sysconfig: if sys.executable is an empty string, use the current
working directory.
(SIGINT). If an error occurs while importing the site module, the error is
printed and Python exits. Initialize the GIL before importing the site
module.
code using struct.pack, attempt to convert to an integer first using
the argument's __int__ method (if present). Also raise a
DeprecationWarning for any such usage of __int__.
This fixes a regression from 2.6, where some (but not all) integer
conversion codes already used __int__.
specified, rather than fall through to AF_PACKET (in the `socket` module).
Also, raise ValueError rather than TypeError when an unknown TIPC address
type is specified. Patch by Brian Curtin.
file position when calling `truncate()`. It would previously change the
file position to the given argument, which goes against the tradition of
ftruncate() and other truncation APIs. Patch by Pascal Chambon.
module when the openssl version is too old to support them. That
leads both compiled code bloat and to unittests attempting to test
implementations that don't exist for comparison purposes on such
platforms.
- Issue #7714: Use ``gcc -dumpversion`` to detect the version of GCC on
MacOSX.
- Make configure look for util.h as well as libutil.h. The former
is the header file that on OSX contains the defition of openpty.
(Needed to compile for OSX 10.4 on OSX 10.6)
- Use the correct definition of CC to compile the pythonw executable
renaming of `cPickle` to `pickle`. The warning was annoying since there's
no alternative to cPickle if you care about performance. Patch by Florent
Xicluna.
to hashlib functions in python 2.x. The module now uses the 's*' for argument
parsing which auto encodes unicode objects to the system default encoding for
us.
(the latter renamed to _PyLong_Frexp) now use the same core code. The
exponent produced by _PyLong_Frexp now has type Py_ssize_t instead of the
previously used int, and no longer needs scaling by PyLong_SHIFT. This
frees the math module from having to know anything about the PyLong
implementation. This closes issue #5576.
This is for consistency with imitation file objects like StringIO and BytesIO.
This commit also adds a few tests, where they were lacking for concerned
methods.
The reference to copyreg was a unnoticed leftover from the compatibility
support for the grand renaming of the standard library in Python 3. The
compatibility support was reverted in r63493, but not completely as this
patch shows.
Based on a patch by Amaury Forgeot d'Arc.
properly, and use this to skip test_multiprocessing on platforms
where sem_open raises a signal. This should fix some FreeBSD buildbot
failures for test_multiprocessing.
leak-chasing test runs give sensible results. The previous method of
reaping threads could return successfully while some Thread objects were
still referenced. This also introduces a new private function:
:func:hread._count().
to make sure it fell within [-1, 1] just in case someone implementing
strftime() in libc was stupid enough to assume this. Turns out, though, some
OSs (e.g. zOS) are stupid enough to use values outside of this range for time
structs created by the system itself. So instead of throwing a ValueError,
tm_isdst is now normalized before being passed to strftime().
Fixes issue #6823. Thanks Robert Shapiro for diagnosing the problem and
contributing an initial patch.
to the libedit emulation of the readline API on OSX 10.5 or later.
This also adds a minimal testsuite for readline to check that the
history manipuation functions have the same interface with both
C libraries.
acquiring the import lock around fork() calls. This prevents other threads
from having that lock while the fork happens, and is the recommended way of
dealing with such issues. There are two other locks we care about, the GIL
and the Thread Local Storage lock. The GIL is obviously held when calling
Python functions like os.fork(), and the TLS lock is explicitly reallocated
instead, while also deleting now-orphaned TLS data.
This only fixes calls to os.fork(), not extension modules or embedding
programs calling C's fork() directly. Solving that requires a new set of API
functions, and possibly a rewrite of the Python/thread_*.c mess. Add a
warning explaining the problem to the documentation in the mean time.
This also changes behaviour a little on AIX. Before, AIX (but only AIX) was
getting the import lock reallocated, seemingly to avoid this very same
problem. This is not the right approach, because the import lock is a
re-entrant one, and reallocating would do the wrong thing when forking while
holding the import lock.
Will backport to 2.6, minus the tiny AIX behaviour change.
occur when writing to a BufferedRandom object (e.g. a file opened in "rb+" or
"wb+" mode) after having buffered a certain amount of data for reading. This
bug was not present in the pure Python implementation.
Yes, this is a serious issue.
PIPE_BUF is not defined on Windows, and probably has no meaning there.
Anyway the subprocess module uses another way to perform non-blocking reads (with a thread)
-Wall -Wstrict-prototypes -Werror" in both --with-pydebug mode and --without.
There's still a batch of non-prototype warnings in Xlib.h that I don't know how
to fix.
in http://codereview.appspot.com/53094 and accepted by Guido.
The construct is transformed into multiple With AST nodes so that
there should be no problems with the semantics.
Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New
are trying to build an empty code object, usually to put it in a dummy frame
object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify
just the filename, function name, and first line number, instead of also
requiring lots of code internals.
If anyone wants to clean up the documentation, feel free. It's my first documentation foray, and it's not that great.
Will port to py3k with a different strategy.