Author: Ronan Lamy <[email protected]>
Branch: unicode-utf8
Changeset: r93383:b8d6b2298b9b
Date: 2017-12-12 05:37 +0000
http://bitbucket.org/pypy/pypy/changeset/b8d6b2298b9b/
Log: hg merge default
diff --git a/pypy/doc/build.rst b/pypy/doc/build.rst
--- a/pypy/doc/build.rst
+++ b/pypy/doc/build.rst
@@ -149,7 +149,7 @@
xz-devel # For lzma on PyPy3.
(XXX plus the SLES11 version of libgdbm-dev and tk-dev)
-On Mac OS X::
+On Mac OS X:
Most of these build-time dependencies are installed alongside
the Developer Tools. However, note that in order for the installation to
diff --git a/pypy/doc/cpython_differences.rst b/pypy/doc/cpython_differences.rst
--- a/pypy/doc/cpython_differences.rst
+++ b/pypy/doc/cpython_differences.rst
@@ -355,7 +355,11 @@
containers (as list items or in sets for example), the exact rule of
equality used is "``if x is y or x == y``" (on both CPython and PyPy);
as a consequence, because all ``nans`` are identical in PyPy, you
-cannot have several of them in a set, unlike in CPython. (Issue `#1974`__)
+cannot have several of them in a set, unlike in CPython. (Issue `#1974`__).
+Another consequence is that ``cmp(float('nan'), float('nan')) == 0``, because
+``cmp`` checks with ``is`` first whether the arguments are identical (there is
+no good value to return from this call to ``cmp``, because ``cmp`` pretends
+that there is a total order on floats, but that is wrong for NaNs).
.. __:
https://bitbucket.org/pypy/pypy/issue/1974/different-behaviour-for-collections-of
diff --git a/pypy/doc/whatsnew-head.rst b/pypy/doc/whatsnew-head.rst
--- a/pypy/doc/whatsnew-head.rst
+++ b/pypy/doc/whatsnew-head.rst
@@ -5,26 +5,33 @@
.. this is a revision shortly after release-pypy2.7-v5.9.0
.. startrev:d56dadcef996
+
.. branch: cppyy-packaging
+
Cleanup and improve cppyy packaging
.. branch: docs-osx-brew-openssl
.. branch: keep-debug-symbols
+
Add a smartstrip tool, which can optionally keep the debug symbols in a
separate file, instead of just stripping them away. Use it in packaging
.. branch: bsd-patches
+
Fix failures on FreeBSD, contributed by David Naylor as patches on the issue
tracker (issues 2694, 2695, 2696, 2697)
.. branch: run-extra-tests
+
Run extra_tests/ in buildbot
.. branch: vmprof-0.4.10
+
Upgrade the _vmprof backend to vmprof 0.4.10
.. branch: fix-vmprof-stacklet-switch
+
Fix a vmprof+continulets (i.e. greenelts, eventlet, gevent, ...)
.. branch: win32-vcvars
diff --git a/pypy/doc/whatsnew-pypy2-5.6.0.rst
b/pypy/doc/whatsnew-pypy2-5.6.0.rst
--- a/pypy/doc/whatsnew-pypy2-5.6.0.rst
+++ b/pypy/doc/whatsnew-pypy2-5.6.0.rst
@@ -101,7 +101,7 @@
.. branch: newinitwarn
-Match CPython's stricter handling of __new/init__ arguments
+Match CPython's stricter handling of ``__new__``/``__init__`` arguments
.. branch: openssl-1.1
diff --git a/pypy/doc/windows.rst b/pypy/doc/windows.rst
--- a/pypy/doc/windows.rst
+++ b/pypy/doc/windows.rst
@@ -11,7 +11,7 @@
To build pypy-c you need a working python environment, and a C compiler.
It is possible to translate with a CPython 2.6 or later, but this is not
-the preferred way, because it will take a lot longer to run � depending
+the preferred way, because it will take a lot longer to run – depending
on your architecture, between two and three times as long. So head to
`our downloads`_ and get the latest stable version.
@@ -103,6 +103,7 @@
must also copy the ``vcvarsall.bat`` file fron the ``...\9.0`` directory to the
``...\9.0\VC`` directory, and edit it, changing the lines that set
``VCINSTALLDIR`` and ``WindowsSdkDir``::
+
set VCINSTALLDIR=%~dp0\
set WindowsSdkDir=%~dp0\..\WinSDK\
diff --git a/pypy/module/__builtin__/test/test_builtin.py
b/pypy/module/__builtin__/test/test_builtin.py
--- a/pypy/module/__builtin__/test/test_builtin.py
+++ b/pypy/module/__builtin__/test/test_builtin.py
@@ -404,6 +404,7 @@
def test_cmp(self):
+ assert cmp(float('nan'), float('nan')) == 0
assert cmp(9,9) == 0
assert cmp(0,9) < 0
assert cmp(9,0) > 0
diff --git a/pypy/module/posix/test/test_posix2.py
b/pypy/module/posix/test/test_posix2.py
--- a/pypy/module/posix/test/test_posix2.py
+++ b/pypy/module/posix/test/test_posix2.py
@@ -31,9 +31,15 @@
pdir.join('file2').write("test2")
pdir.join('another_longer_file_name').write("test3")
mod.pdir = pdir
- unicode_dir = udir.ensure('fi\xc5\x9fier.txt', dir=True)
+ if sys.platform == 'darwin':
+ # see issue https://bugs.python.org/issue31380
+ unicode_dir = udir.ensure('fixc5x9fier.txt', dir=True)
+ file_name = 'cafxe9'
+ else:
+ unicode_dir = udir.ensure('fi\xc5\x9fier.txt', dir=True)
+ file_name = 'caf\xe9'
unicode_dir.join('somefile').write('who cares?')
- unicode_dir.join('caf\xe9').write('who knows?')
+ unicode_dir.join(file_name).write('who knows?')
mod.unicode_dir = unicode_dir
# in applevel tests, os.stat uses the CPython os.stat.
diff --git a/pypy/module/time/interp_time.py b/pypy/module/time/interp_time.py
--- a/pypy/module/time/interp_time.py
+++ b/pypy/module/time/interp_time.py
@@ -310,12 +310,19 @@
errno = rposix.get_saved_errno()
return os.strerror(errno)
+def _check_sleep_arg(space, secs):
+ from rpython.rlib.rfloat import isinf, isnan
+ if secs < 0:
+ raise oefmt(space.w_IOError,
+ "Invalid argument: negative time in sleep")
+ if isinf(secs) or isnan(secs):
+ raise oefmt(space.w_IOError,
+ "Invalid argument: inf or nan")
+
if sys.platform != 'win32':
@unwrap_spec(secs=float)
def sleep(space, secs):
- if secs < 0:
- raise oefmt(space.w_IOError,
- "Invalid argument: negative time in sleep")
+ _check_sleep_arg(space, secs)
rtime.sleep(secs)
else:
from rpython.rlib import rwin32
@@ -336,9 +343,7 @@
OSError(EINTR, "sleep() interrupted"))
@unwrap_spec(secs=float)
def sleep(space, secs):
- if secs < 0:
- raise oefmt(space.w_IOError,
- "Invalid argument: negative time in sleep")
+ _check_sleep_arg(space, secs)
# as decreed by Guido, only the main thread can be
# interrupted.
main_thread = space.fromcache(State).main_thread
diff --git a/pypy/module/time/test/test_time.py
b/pypy/module/time/test/test_time.py
--- a/pypy/module/time/test/test_time.py
+++ b/pypy/module/time/test/test_time.py
@@ -19,6 +19,8 @@
raises(TypeError, time.sleep, "foo")
time.sleep(0.12345)
raises(IOError, time.sleep, -1.0)
+ raises(IOError, time.sleep, float('nan'))
+ raises(IOError, time.sleep, float('inf'))
def test_clock(self):
import time
diff --git a/rpython/rlib/debug.py b/rpython/rlib/debug.py
--- a/rpython/rlib/debug.py
+++ b/rpython/rlib/debug.py
@@ -288,6 +288,9 @@
def mark_dict_non_null(d):
""" Mark dictionary as having non-null keys and values. A warning would
be emitted (not an error!) in case annotation disagrees.
+
+ This doesn't work for r_dicts. For them, pass
+ r_dict(..., force_non_null=True) to the constructor.
"""
assert isinstance(d, dict)
return d
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit