Commit graph

78877 commits

Author SHA1 Message Date
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
64ab35e11d 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:54 -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
Hynek Schlawack
6c722c6df4 #15872: Some more Windows related tuning to shutil.rmtree tests
Turns out, the snakebite bots have also their peculiarities.

I'm really not proud of this stream of commits. :(
2012-12-10 16:35:16 +01:00
Hynek Schlawack
c474c4e749 #15872: Some more Windows related tuning to shutil.rmtree tests
Turns out, the snakebite bots behave also their peculiarities.

I'm really not proud of this stream of commits. :(
2012-12-10 16:33:41 +01:00
Hynek Schlawack
87f9b46f15 #15872: Some more Windows related tuning to shutil.rmtree tests
Turns out, the snakebite bots behave also their peculiarities.

I'm really not proud of this stream of commits. :(
2012-12-10 16:29:57 +01:00
Hynek Schlawack
99d28ce0cd #15872: Be flexible with appending *.* in shutil.rmtree test case
The Windows buildbots seem to be unable to agree whether they need them or not.
2012-12-10 12:05:45 +01:00
Hynek Schlawack
f29b4937f7 #15872: Be flexible with appending *.* in shutil.rmtree test case
The Windows buildbots seem to be unable to agree whether they need them or not.
2012-12-10 12:02:26 +01:00
Hynek Schlawack
b9e9f3e70d #15872: Be flexible with appending *.* in shutil.rmtree test case
The Windows buildbots seem to be unable to agree whether they need them or not.
2012-12-10 12:01:28 +01:00
Hynek Schlawack
8ade268c6b #15872: More shutil test fixes for Windows
This one is different from 3.2 and 3.3.  Windows ceased using *.* since 3.4
apparently.
2012-12-10 11:12:57 +01:00
Senthil Kumaran
5962cce050 Fix Issue15701 : add .headers attribute to urllib.error.HTTPError 2012-12-10 02:09:35 -08:00
Hynek Schlawack
9d5e0cca85 #15872: More shutil test fixes for Windows 2012-12-10 11:08:59 +01:00
Hynek Schlawack
9a4a750673 #15872: More shutil test fixes for Windows 2012-12-10 11:08:09 +01:00
Hynek Schlawack
8e5a8296cc #15872: Fix shutil.rmtree error tests for Windows 2012-12-10 10:10:40 +01:00
Hynek Schlawack
b57b094077 #15872: Fix shutil.rmtree error tests for Windows 2012-12-10 10:08:41 +01:00
Hynek Schlawack
9e8ac56e35 #15872: Fix shutil.rmtree error tests for Windows 2012-12-10 10:07:11 +01:00
Hynek Schlawack
ae9a9e9a2d #15872: Fix 3.3 regression introduced by the new fd-based shutil.rmtree
It caused rmtree to not ignore certain errors when ignore_errors was set.

Patch by Alessandro Moura and Serhiy Storchaka.
2012-12-10 09:15:23 +01:00
Hynek Schlawack
b550110f64 #15872: Fix 3.3 regression introduced by the new fd-based shutil.rmtree
It caused rmtree to not ignore certain errors when ignore_errors was set.

Patch by Alessandro Moura and Serhiy Storchaka.
2012-12-10 09:11:25 +01:00
Hynek Schlawack
d16eacba48 #15872: Add tests for a 3.3 regression in the new fd-based shutil.rmtree
It cause shutil.rmtree not ignore all errors. Also add a test ensuring that
rmtree fails when being called on a symlink. Patch by Serhiy Storchaka.
2012-12-10 09:00:09 +01:00
Chris Jerdonek
e53e44f3bb Issue #16629: Merge IDLE test fix from 3.3. 2012-12-09 18:22:21 -08:00
Chris Jerdonek
af72f9ea9c Issue #16629: Merge IDLE test fix from 3.2. 2012-12-09 18:19:54 -08:00
Chris Jerdonek
175196886e Issue #16629: Fix IDLE idlelib.CallTips test. Patch by Roger Serwy.
This commit updates a test broken by the change made for issue #14783.
2012-12-09 18:17:27 -08:00
Andrew Svetlov
33b9b71e8d Issue #16582: use int exit code in tkinter._exit 2012-12-10 00:05:08 +02:00
Andrew Svetlov
a6b292fbc7 Issue #16582: use int exit code in tkinter._exit 2012-12-10 00:03:55 +02:00
Andrew Svetlov
14857cf8fa Issue #16582: use int exit code in tkinter._exit 2012-12-10 00:03:39 +02:00
Andrew Svetlov
806bfad457 Issue #16582: use int exit code in tkinter._exit 2012-12-10 00:02:31 +02:00
Senthil Kumaran
0342688914 merge from 3.3 - Document reason attribute for urllib.error.HTTPError 2012-12-09 13:53:15 -08:00
Senthil Kumaran
50cdd55af9 merge from 3.2 - reason attribute for urllib.error.HTTPError 2012-12-09 13:52:31 -08:00
Senthil Kumaran
2e72831369 Fix issue13211 - Document the reason attribute for urllib.error.HTTPError 2012-12-09 13:51:05 -08:00
Senthil Kumaran
bfb0989ea7 Document the reason attribute of urllib.HTTPError Patch by Berker Peksag 2012-12-09 13:36:40 -08:00
Richard Oudkerk
07c34bf19f Make test of poll() use unbuffered IO 2012-12-09 16:05:22 +00:00
Richard Oudkerk
53dff0c059 Issue #16616: Enable test in test_poll which was (accidentally?) disabled 2012-12-09 16:05:20 +00:00
Benjamin Peterson
5c0665ee61 merge 3.3 2012-12-09 10:17:39 -05:00
Benjamin Peterson
4b7743a3ef merge 3.2 2012-12-09 10:16:46 -05:00
Benjamin Peterson
4ee03fa4d5 merge 3.1 2012-12-09 10:14:42 -05:00
Antoine Pitrou
db0420db17 Issue #16248: Disable code execution from the user's home directory by tkinter when the -E flag is passed to Python.
Patch by Zachary Ware.
2012-12-09 14:47:23 +01:00
Antoine Pitrou
373528f6b1 Issue #16248: Disable code execution from the user's home directory by tkinter when the -E flag is passed to Python.
Patch by Zachary Ware.
2012-12-09 14:46:46 +01:00
Antoine Pitrou
0ee20ebbff Issue #16248: Disable code execution from the user's home directory by tkinter when the -E flag is passed to Python.
Patch by Zachary Ware.
2012-12-09 14:46:18 +01:00
Antoine Pitrou
7dddec4e9d Issue #16248: Disable code execution from the user's home directory by tkinter when the -E flag is passed to Python.
Patch by Zachary Ware.
2012-12-09 14:46:18 +01:00
Antoine Pitrou
7ec3a32360 Issue #16248: Disable code execution from the user's home directory by tkinter when the -E flag is passed to Python.
Patch by Zachary Ware.
2012-12-09 14:46:18 +01:00
Antoine Pitrou
f9d0b1256f Issue #13390: New function :func:sys.getallocatedblocks() returns the number of memory blocks currently allocated.
Also, the ``-R`` option to regrtest uses this function to guard against memory allocation leaks.
2012-12-09 14:28:26 +01:00
Nick Coghlan
b4b8f234d4 Merge from 3.3 (issue #15209) 2012-12-09 16:22:17 +10:00
Nick Coghlan
0eee97cce6 Issue #15209: Fix typo and some additional wording tweaks 2012-12-09 16:21:46 +10:00