Commit Graph

58430 Commits

Author SHA1 Message Date
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
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 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
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 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
Éric Araujo bb7da03f6e Merge fixes for #13614, #13512 and #7719 from 3.3 2012-12-08 22:57:08 -05:00