Gregory P. Smith [Tue, 11 Dec 2012 02:34:09 +0000 (18:34 -0800)]
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.
Gregory P. Smith [Tue, 11 Dec 2012 02:32:53 +0000 (18:32 -0800)]
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.
Gregory P. Smith [Tue, 11 Dec 2012 02:15:46 +0000 (18:15 -0800)]
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.
Antoine Pitrou [Sat, 8 Dec 2012 20:17:03 +0000 (21:17 +0100)]
Issue #16602: When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero.
Thanks to Eugene Toder for diagnosing and reporting the issue.
Antoine Pitrou [Sat, 8 Dec 2012 20:15:26 +0000 (21:15 +0100)]
Issue #16602: When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero.
Thanks to Eugene Toder for diagnosing and reporting the issue.
Éric Araujo [Sat, 8 Dec 2012 19:51:47 +0000 (14:51 -0500)]
Create ~/.pypirc securely (#13512).
There was a window between the write and the chmod where the user’s
password would be exposed, depending on default permissions. Philip
Jenvey’s patch fixes it.
Éric Araujo [Sat, 8 Dec 2012 19:21:51 +0000 (14:21 -0500)]
Ignore .nfs* files in distutils (#7719).
These files are created by some NFS clients a file is edited and removed
concurrently (see added link in doc for more info). If such a file is
removed between distutils calls listdir and copy, it will get confused.
Other special files are ignored in sdist (namely VCS directories), but
this has to be filtered out earlier.
- not allowed when implicitly re-raised the current exception
- last exception raised is always displayed last
- attempt to make it clearer when/if cause and context are shown
Victor Stinner [Mon, 3 Dec 2012 11:48:53 +0000 (12:48 +0100)]
(Merge 3.2) Issue #16416: On Mac OS X, operating system data are now always
encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
(which may be ASCII if no locale environment variable is set), to avoid
inconsistencies with os.fsencode() and os.fsdecode() functions which are
already using UTF-8/surrogateescape.
Victor Stinner [Mon, 3 Dec 2012 11:47:59 +0000 (12:47 +0100)]
Issue #16416: On Mac OS X, operating system data are now always
encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
(which may be ASCII if no locale environment variable is set), to avoid
inconsistencies with os.fsencode() and os.fsdecode() functions which are
already using UTF-8/surrogateescape.
This commit adds "parameter" to the glossary, improves and consolidates the
"argument" glossary entry, and adds a question to the FAQ on the difference
between arguments and parameters.
Chris Jerdonek [Wed, 28 Nov 2012 09:38:40 +0000 (01:38 -0800)]
Add a str class entry to the "Text Sequence Type" section (issue #16209).
This commit also moves the documentation for the str built-in function to
the new class entry. Links to :class:`str` now go to the class entry with
the string methods immediately afterwards.