Commit graph

58318 commits

Author SHA1 Message Date
Stefan Krah
8031d0dfd4 Merge 3.3. 2012-12-15 22:36:49 +01:00
Stefan Krah
040e311826 Issue #15783: Except for the number methods, the C version of decimal now
supports all None default values present in decimal.py. These values were
largely undocumented.
2012-12-15 22:33:33 +01:00
Andrew Svetlov
88a3e1f46b Merge: use OSError instead of os.error in the docs. 2012-12-15 22:59:55 +02:00
Andrew Svetlov
618c2e13ca Use OSError instead of os.error in the docs. 2012-12-15 22:59:24 +02:00
Benjamin Peterson
3a31ecd827 merge heads 2012-12-15 15:46:20 -05:00
Benjamin Peterson
6a020e8065 merge 3.3 2012-12-15 15:44:18 -05:00
Benjamin Peterson
18d105b824 merge 3.2 2012-12-15 15:44:08 -05:00
Benjamin Peterson
7eb8a1a0cb remove dead code 2012-12-15 15:43:58 -05:00
Petri Lehtinen
74d6c250e1 #11175: argparse.FileType now accepts encoding and errors arguments.
Patch by Lucas Maystre.
2012-12-15 22:42:47 +02:00
Antoine Pitrou
09bb89b8cf Issue #16488: epoll() objects now support the with statement.
Patch by Serhiy Storchaka.
2012-12-15 21:14:21 +01:00
Antoine Pitrou
c48e81ed46 Merge 2012-12-15 19:26:38 +01:00
Antoine Pitrou
3454339430 Issue #16298: In HTTPResponse.read(), close the socket when there is no Content-Length and the incoming stream is finished.
Patch by Eran Rundstein.
2012-12-15 19:23:34 +01:00
Antoine Pitrou
d20e7745ee Issue #16298: In HTTPResponse.read(), close the socket when there is no Content-Length and the incoming stream is finished.
Patch by Eran Rundstein.
2012-12-15 19:22:30 +01:00
Antoine Pitrou
084daa2f74 Issue #16298: In HTTPResponse.read(), close the socket when there is no Content-Length and the incoming stream is finished.
Patch by Eran Rundstein.
2012-12-15 19:11:54 +01:00
Benjamin Peterson
9272279afd use error label instead of breaking eval loop (closes #16693) 2012-12-15 12:51:05 -05:00
Andrew Svetlov
1a714750cf Remove compile warnings for _testimportmodule 2012-12-15 18:16:47 +02:00
Andrew Svetlov
ef9a43b2c9 Rename test module names for #16421 to don't clash with other tests. 2012-12-15 17:22:59 +02:00
Benjamin Peterson
5cb8a31dc4 cleanup and fix refleaks 2012-12-15 00:05:16 -05:00
Ezio Melotti
e0a908290c #16683: merge with 3.3. 2012-12-14 20:20:07 +02:00
Ezio Melotti
30505413df #16683: merge with 3.2. 2012-12-14 20:19:49 +02:00
Ezio Melotti
e0035a212b #16683: restore alphabetical order in audioop docs. Patch by Serhiy Storchaka. 2012-12-14 20:18:46 +02:00
Ezio Melotti
752f5dd0f7 #16681: merge with 3.3. 2012-12-14 20:14:17 +02:00
Ezio Melotti
11def426c0 #16681: merge with 3.2. 2012-12-14 20:13:39 +02:00
Ezio Melotti
e3d7e54b11 #16681: use "bidirectional class" instead of "bidirectional category" in the docstring too. 2012-12-14 20:12:25 +02:00
Ezio Melotti
1e5c9b70b4 #16681: use "bidirectional class" instead of "bidirectional category". 2012-12-14 20:06:43 +02:00
Andrew Svetlov
22f36eed4d Cleanup filecmp: starting from 3.3 os.error is alias for OSError 2012-12-14 18:02:27 +02:00
Andrew Svetlov
6b2cbeba58 Issue #16421: allow to load multiple modules from the same shared object.
Patch by Václav Šmilauer.
2012-12-14 17:04:59 +02:00
Philip Jenvey
f76f0eea5c compile doesn't accept code objects 2012-12-13 15:44:18 -08:00
Andrew Svetlov
b67596d815 Issue #16049: add abc.ABC helper class.
Patch by Bruno Dupuis.
2012-12-13 19:09:33 +02:00
Ross Lagerwall
174bc1e309 Merge with 3.3 for #16661 2012-12-13 15:21:16 +00:00
Ross Lagerwall
a0b315f5f7 Issue #16661: Fix the os.getgrouplist() test by not assuming that it
gives the same output as "id -G".
2012-12-13 15:20:26 +00:00
Benjamin Peterson
57b667261c expose TCP_FASTOPEN and MSG_FASTOPEN 2012-12-12 22:24:47 -05:00
Christian Heimes
b92c40ef9b Cross compiling needs host and build settings. configure no longer
creates a broken PYTHON_FOR_BUILD variable when --build is missing.
2012-12-12 13:10:32 +01:00
Christian Heimes
954ac03a44 Cross compiling needs host and build settings. configure no longer
creates a broken PYTHON_FOR_BUILD variable when --build is missing.
2012-12-12 13:10:21 +01:00
Christian Heimes
e6f228011e Just to be sure, initialize with a copy of the compiler's lib and inc dirs. 2012-12-12 12:57:03 +01:00
Christian Heimes
d783261e99 Just to be sure, initialize with a copy of the compiler's lib and inc dirs. 2012-12-12 12:56:51 +01:00
Christian Heimes
bf5fcc7fc8 Fix cross compiling issue in setup.py, ensure that lib_dirs and inc_dirs are
defined in cross compiling mode, too.
2012-12-12 12:41:50 +01:00
Christian Heimes
f19529cfd6 Fix cross compiling issue in setup.py, ensure that lib_dirs and inc_dirs are
defined in cross compiling mode, too.
2012-12-12 12:41:00 +01:00
Gregory P. Smith
370bc2f7ee Code style fixup: No need for double ((parenthesis)) and use {} on an if else. 2012-12-10 20:22:55 -08:00
Gregory P. Smith
08d5ca6cd4 Code style fixup: No need for double ((parenthesis)) and use {} on an if else. 2012-12-10 20:22:31 -08:00
Gregory P. Smith
9504b13145 Code style fixup: No need for double ((parenthesis)) and use {} on an if else. 2012-12-10 20:20:20 -08:00
Gregory P. Smith
27dc02e8c5 Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined.

NOTE: This change is smaller compared to 3.2 as much of this cleanup had
already been done.  I added the comment that my change in 3.2 added so that the
code would match up.  Otherwise this just adds or synchronizes appropriate UL
designations on some constants to be pedantic.

In practice we require compiling everything with -fwrapv which forces overflow
to be defined as twos compliment but this keeps the code cleaner for checkers
or in the case where someone has compiled it without -fwrapv or their
compiler's equivalent.  We could work to get rid of the -fwrapv requirement
in 3.4 but that requires more planning.

Found by Clang trunk's Undefined Behavior Sanitizer (UBSan).

Cleanup only - no functionality or hash values change.
2012-12-10 19:51:29 -08:00
Gregory P. Smith
a82fe52acc null merge, no change needed in 3.3. 2012-12-10 18:34:29 -08:00
Gregory P. Smith
a6be61ec71 Keep y a Py_hash_t instead of Py_uhash_t as it is compared with == -1 and the
compiler logic will do the right thing with just x as a Py_uhash_t.  This
matches what was already done in the 3.3 version.

cleanup only - no functionality or hash values change.
2012-12-10 18:34:09 -08:00
Gregory P. Smith
c2176e46d7 Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined.

NOTE: This change is smaller compared to 3.2 as much of this cleanup had
already been done.  I added the comment that my change in 3.2 added so that the
code would match up.  Otherwise this just adds or synchronizes appropriate UL
designations on some constants to be pedantic.

In practice we require compiling everything with -fwrapv which forces overflow
to be defined as twos compliment but this keeps the code cleaner for checkers
or in the case where someone has compiled it without -fwrapv or their
compiler's equivalent.

Found by Clang trunk's Undefined Behavior Sanitizer (UBSan).

Cleanup only - no functionality or hash values change.
2012-12-10 18:32:53 -08:00
Gregory P. Smith
27cbcd6241 Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined.

In practice we require compiling everything with -fwrapv which forces overflow
to be defined as twos compliment but this keeps the code cleaner for checkers
or in the case where someone has compiled it without -fwrapv or their
compiler's equivalent.

Found by Clang trunk's Undefined Behavior Sanitizer (UBSan).

Cleanup only - no functionality or hash values change.
2012-12-10 18:15:46 -08:00
Gregory P. Smith
e348c8d154 Using 'long double' to force this structure to be worst case aligned is no
longer required as of Python 2.5+ when the gc_refs changed from an int (4
bytes) to a Py_ssize_t (8 bytes) as the minimum size is 16 bytes.

The use of a 'long double' triggered a warning by Clang trunk's
Undefined-Behavior Sanitizer as on many platforms a long double requires
16-byte alignment but the Python memory allocator only guarantees 8 byte
alignment.

So our code would allocate and use these structures with technically improper
alignment.  Though it didn't matter since the 'dummy' field is never used.
This silences that warning.

Spelunking into code history, the double was added in 2001 to force better
alignment on some platforms and changed to a long double in 2002 to appease
Tru64.  That issue should no loner be present since the upgrade from int to
Py_ssize_t where the minimum structure size increased to 16 (unless anyone
knows of a platform where ssize_t is 4 bytes?) or 24 bytes depending on if the
build uses 4 or 8 byte pointers.

We can probably get rid of the double and this union hack all together today.
That is a slightly more invasive change that can be left for later.

A more correct non-hacky alternative if any alignment issues are still found
would be to use a compiler specific alignment declaration on the structure and
determine which value to use at configure time.
2012-12-10 18:05:05 -08:00
Gregory P. Smith
60112ae319 1 << 31 is invalid for signed integers, fix it by making 1 unsigned.
Found by Clang trunk's Undefined-Behavior Sanitizer.  [more to come]
2012-12-10 17:45:16 -08:00
Gregory P. Smith
c0dd80e439 1 << 31 is invalid for signed integers, fix it by making 1 unsigned.
Found by Clang trunk's Undefined-Behavior Sanitizer.  [more to come]
2012-12-10 17:45:03 -08:00
Gregory P. Smith
90555d0f0d 1 << 31 is invalid for signed integers, fix it by making 1 unsigned.
Found by Clang trunk's Undefined-Behavior Sanitizer.  [more to come]
2012-12-10 17:44:44 -08:00