Author: Armin Rigo <[email protected]>
Branch: py3.5
Changeset: r95090:ae9f77ce8df2
Date: 2018-09-11 15:30 +0200
http://bitbucket.org/pypy/pypy/changeset/ae9f77ce8df2/
Log: hg merge default
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
@@ -330,7 +330,8 @@
-------------
* Hash randomization (``-R``) `is ignored in PyPy`_. In CPython
- before 3.4 it has `little point`_.
+ before 3.4 it has `little point`_. Both CPython >= 3.4 and PyPy3
+ implement the randomized SipHash algorithm and ignore ``-R``.
* You can't store non-string keys in type objects. For example::
diff --git a/pypy/module/select/__init__.py b/pypy/module/select/__init__.py
--- a/pypy/module/select/__init__.py
+++ b/pypy/module/select/__init__.py
@@ -3,6 +3,7 @@
import sys
import os
+from rpython.rlib import _rsocket_rffi as _c
class Module(MixedModule):
@@ -31,6 +32,10 @@
for symbol in symbol_map:
interpleveldefs[symbol] = "space.wrap(interp_kqueue.%s)" % symbol
+ if _c.PIPE_BUF is not None:
+ interpleveldefs['PIPE_BUF'] = 'space.wrap(%r)' % _c.PIPE_BUF
+
+
def buildloaders(cls):
from rpython.rlib import rpoll
for name in rpoll.eventnames:
diff --git a/pypy/module/select/test/test_select.py
b/pypy/module/select/test/test_select.py
--- a/pypy/module/select/test/test_select.py
+++ b/pypy/module/select/test/test_select.py
@@ -319,6 +319,11 @@
# ^^^ CPython gives 100, PyPy gives 1. I think both are OK as
# long as there is no crash.
+ def test_PIPE_BUF(self):
+ # no PIPE_BUF on Windows; this test class is skipped on Windows.
+ import select
+ assert isinstance(select.PIPE_BUF, int)
+
class AppTestSelectWithSockets(_AppTestSelect):
"""Same tests with connected sockets.
diff --git a/pypy/objspace/std/test/test_unicodeobject.py
b/pypy/objspace/std/test/test_unicodeobject.py
--- a/pypy/objspace/std/test/test_unicodeobject.py
+++ b/pypy/objspace/std/test/test_unicodeobject.py
@@ -1088,3 +1088,26 @@
assert u'A\u03a3\u0345'.lower() == u'a\u03c2\u0345'
assert u'\u03a3\u0345 '.lower() == u'\u03c3\u0345 '
+ def test_unicode_constructor_misc(self):
+ x = u'foo'
+ x += u'bar'
+ assert str(x) is x
+ #
+ class U(str):
+ def __str__(self):
+ return u'BOK'
+ u = U(x)
+ assert str(u) == u'BOK'
+ #
+ class U2(str):
+ pass
+ z = U2(u'foobaz')
+ assert type(str(z)) is str
+ assert str(z) == u'foobaz'
+ #
+ e = raises(TypeError, str, u'text', 'supposedly_the_encoding')
+ assert str(e.value) == 'decoding str is not supported'
+ e = raises(TypeError, str, u, 'supposedly_the_encoding')
+ assert str(e.value) == 'decoding str is not supported'
+ e = raises(TypeError, str, z, 'supposedly_the_encoding')
+ assert str(e.value) == 'decoding str is not supported'
diff --git a/rpython/doc/examples.rst b/rpython/doc/examples.rst
--- a/rpython/doc/examples.rst
+++ b/rpython/doc/examples.rst
@@ -19,7 +19,7 @@
* Typhon, 'A virtual machine for Monte', in active development,
https://github.com/monte-language/typhon
* Tulip, an untyped functional language, in language design mode, maintained,
- https://github.com/tulip-lang/tulip/
+ https://github.com/tulip-lang/tulip/
* Pycket, a Racket implementation, proof of concept, small language core
working, a lot of primitives are missing. Slow development
https://github.com/samth/pycket
diff --git a/rpython/rlib/_rsocket_rffi.py b/rpython/rlib/_rsocket_rffi.py
--- a/rpython/rlib/_rsocket_rffi.py
+++ b/rpython/rlib/_rsocket_rffi.py
@@ -33,6 +33,7 @@
'arpa/inet.h',
'stdint.h',
'errno.h',
+ 'limits.h',
)
if _HAS_AF_PACKET:
includes += ('netpacket/packet.h',
@@ -113,6 +114,7 @@
F_GETFL = platform.DefinedConstantInteger('F_GETFL')
F_SETFL = platform.DefinedConstantInteger('F_SETFL')
FIONBIO = platform.DefinedConstantInteger('FIONBIO')
+ PIPE_BUF = platform.DefinedConstantInteger('PIPE_BUF')
INVALID_SOCKET = platform.DefinedConstantInteger('INVALID_SOCKET')
INET_ADDRSTRLEN = platform.DefinedConstantInteger('INET_ADDRSTRLEN')
@@ -1085,6 +1087,7 @@
WSAEWOULDBLOCK = cConfig.WSAEWOULDBLOCK or cConfig.EWOULDBLOCK
WSAEAFNOSUPPORT = cConfig.WSAEAFNOSUPPORT or cConfig.EAFNOSUPPORT
EISCONN = cConfig.EISCONN or cConfig.WSAEISCONN
+PIPE_BUF = cConfig.PIPE_BUF # may be None
linux = cConfig.linux
WIN32 = cConfig.WIN32
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit