Kurt B. Kaiser [Sun, 3 Jan 2010 08:36:45 +0000 (08:36 +0000)]
r77152 to Doc/Makefile broke doc build due to (at least some) make
binaries running clean prereq after checkout.
1. So, fix the insane make call in build.sh - seems to solve it.
2. Fix a missing redirection.
3. Check in the rsync opts that actually work during upload.
Import all implementations of the hash algorithms (OpenSSL & builtin) and run
the test suite across all that are available. Warns about extension modules
that could not be imported when python was compiled with Py_DEBUG.
That warning could be made fatal but I didn't want to do that initially as
I suspect non setup.py based build processes (windows, any others?) won't
compile them all conditionally based on the Py_DEBUG setting today.
Issue #3745: Undo the requirement for new buffer API only objects to be passed
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.
Always compile the all versions of the hashlib algorithm modules when Python
was compiled with Py_DEBUG defined. Otherwise the builtins are not compiled by
default for many developers due to OpenSSL being present, making it easier for
bugs to slip by. A future commit will add test code compare the behaviors of
all implementations when they are all available.
Antoine Pitrou [Sat, 2 Jan 2010 21:47:10 +0000 (21:47 +0000)]
Add tests for issue #7458: str.rfind() would crash when called with an invalid
start value. The offending code itself was removed as part of #7462.
This patch by Victor Stinner.
Mark Dickinson [Sat, 2 Jan 2010 14:45:40 +0000 (14:45 +0000)]
Refactor some longobject internals: PyLong_AsDouble and _PyLong_AsScaledDouble
(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.
Mark Dickinson [Fri, 1 Jan 2010 17:27:30 +0000 (17:27 +0000)]
Issue #5080: turn the DeprecationWarning from float arguments passed
to integer PyArg_Parse* format codes into a TypeError. Add a
DeprecationWarning for floats passed with the 'L' format code, which
didn't previously have a warning.
Brett Cannon [Fri, 1 Jan 2010 01:44:57 +0000 (01:44 +0000)]
Add some missing command-line options to the main list. All but -V were already
documented. Left -V undocumented for now (and -U was already undocumented).
Mark Dickinson [Tue, 29 Dec 2009 20:51:24 +0000 (20:51 +0000)]
Issue #7575: An overflow test for math.expm1 was failing on OS X 10.4/Intel,
due to a defect in the platform's implementation of expm1. Since the issue
is of low severity, and appears to be fixed in OS X 10.5 and 10.6, it doesn't
seem worth working around, so I'm just weakening the relevant test so that
it passes on 10.4.
Ronald Oussoren [Thu, 24 Dec 2009 13:30:58 +0000 (13:30 +0000)]
Issue #6834: replace the implementation for the 'python' and 'pythonw' executables on OSX.
The previous implementation used execv(2) to run the real interpreter, which means that
you cannot use the arch(1) tool to select the architecture you want to use for a
universal build because that only affects the python/pythonw wrapper and not the actual
interpreter.
The new version uses posix_spawnv with a number of OSX-specific options that ensure that
the real interpreter is started using the same CPU architecture as the wrapper, and that
means that 'arch -ppc python' now actually works.
I've also changed the way that the wrapper looks for the framework: it is now linked to
the framework rather than hardcoding the framework path. This should make it easier to
provide pythonw support in tools like virtualenv.
Ronald Oussoren [Thu, 24 Dec 2009 13:30:42 +0000 (13:30 +0000)]
An update to the script that's used to build the binary installer: don't install files in
/usr/local by default. Users can still choose to install files into /usr/local, but by
default we'll only install files in /Library/Framework/Python.framework and
/Applications/Python X.Y/
Ronald Oussoren [Thu, 24 Dec 2009 13:06:39 +0000 (13:06 +0000)]
On OSX the output of "uname -m" always reflects the 32-bit architecture
for the machine ("i386" or "ppc"), even if the executable is
64-bit.
This patchs ensures that the distutils platform architecture
represents the architecture for the executable when running a
64-bit only executable on OSX.