Author: Philip Jenvey <pjen...@underboss.org> Branch: py3k Changeset: r71299:d8096ef0c138 Date: 2014-05-05 18:38 -0700 http://bitbucket.org/pypy/pypy/changeset/d8096ef0c138/
Log: merge default diff --git a/pypy/doc/release-2.3.0.rst b/pypy/doc/release-2.3.0.rst --- a/pypy/doc/release-2.3.0.rst +++ b/pypy/doc/release-2.3.0.rst @@ -84,7 +84,7 @@ * Fix issues with reimporting builtin modules -* Fix a RPython bug with loop-unrolling that appeared in the `HippyVM`_ PHP port +* Fix an RPython bug with loop-unrolling that appeared in the `HippyVM`_ PHP port * Support for corner cases on objects with __int__ and __float__ methods @@ -125,7 +125,7 @@ and scalars were corrected. We are slowly approaching our goal of passing the NumPy test suite. We still do not support object or unicode ndarrays. -* speed of iteration in dot() is now within 1.5x of the NumPy c +* Speed of iteration in dot() is now within 1.5x of the NumPy c implementation (without BLAS acceleration). Since the same array iterator is used throughout the ``_numpy`` module, speed increases should be apparent in all NumPy functionality. @@ -135,7 +135,7 @@ * A cffi-based ``numpy.random`` module is available as a branch; it will be merged soon after this release. -* enhancements to the PyPy JIT were made to support virtualizing the raw_store/raw_load +* Enhancements to the PyPy JIT were made to support virtualizing the raw_store/raw_load memory operations used in NumPy arrays. Further work remains here in virtualizing the alloc_raw_storage when possible. This will allow scalars to have storages but still be virtualized when possible in loops. diff --git a/pypy/module/_io/interp_bytesio.py b/pypy/module/_io/interp_bytesio.py --- a/pypy/module/_io/interp_bytesio.py +++ b/pypy/module/_io/interp_bytesio.py @@ -199,8 +199,7 @@ space.call_method(self.getdict(space), "update", w_dict) W_BytesIO.typedef = TypeDef( - 'BytesIO', W_BufferedIOBase.typedef, - __module__ = "_io", + '_io.BytesIO', W_BufferedIOBase.typedef, __new__ = interp2app(W_BytesIO.descr_new.im_func), __init__ = interp2app(W_BytesIO.descr_init), diff --git a/pypy/module/_io/interp_fileio.py b/pypy/module/_io/interp_fileio.py --- a/pypy/module/_io/interp_fileio.py +++ b/pypy/module/_io/interp_fileio.py @@ -436,8 +436,7 @@ return w_size W_FileIO.typedef = TypeDef( - 'FileIO', W_RawIOBase.typedef, - __module__ = "_io", + '_io.FileIO', W_RawIOBase.typedef, __new__ = interp2app(W_FileIO.descr_new.im_func), __init__ = interp2app(W_FileIO.descr_init), __repr__ = interp2app(W_FileIO.repr_w), diff --git a/pypy/module/_io/interp_io.py b/pypy/module/_io/interp_io.py --- a/pypy/module/_io/interp_io.py +++ b/pypy/module/_io/interp_io.py @@ -27,10 +27,9 @@ self.written = written W_BlockingIOError.typedef = TypeDef( - 'BlockingIOError', W_IOError.typedef, - __module__ = 'io', - __doc__ = ("Exception raised when I/O would block " - "on a non-blocking I/O stream"), + '_io.BlockingIOError', W_IOError.typedef, + __doc__ = ("Exception raised when I/O would block on a non-blocking " + "I/O stream"), __new__ = generic_new_descr(W_BlockingIOError), __init__ = interp2app(W_BlockingIOError.descr_init), characters_written = interp_attrproperty('written', W_BlockingIOError), diff --git a/pypy/module/_io/interp_iobase.py b/pypy/module/_io/interp_iobase.py --- a/pypy/module/_io/interp_iobase.py +++ b/pypy/module/_io/interp_iobase.py @@ -299,8 +299,7 @@ break W_IOBase.typedef = TypeDef( - '_IOBase', - __module__ = "_io", + '_io._IOBase', __new__ = generic_new_descr(W_IOBase), __enter__ = interp2app(W_IOBase.enter_w), __exit__ = interp2app(W_IOBase.exit_w), @@ -372,8 +371,7 @@ return space.wrapbytes(builder.build()) W_RawIOBase.typedef = TypeDef( - '_RawIOBase', W_IOBase.typedef, - __module__ = "_io", + '_io._RawIOBase', W_IOBase.typedef, __new__ = generic_new_descr(W_RawIOBase), read = interp2app(W_RawIOBase.read_w), diff --git a/pypy/module/_io/interp_textio.py b/pypy/module/_io/interp_textio.py --- a/pypy/module/_io/interp_textio.py +++ b/pypy/module/_io/interp_textio.py @@ -178,8 +178,7 @@ space.call_method(self.w_decoder, "setstate", w_state) W_IncrementalNewlineDecoder.typedef = TypeDef( - 'IncrementalNewlineDecoder', - __module__ = "_io", + '_io.IncrementalNewlineDecoder', __new__ = generic_new_descr(W_IncrementalNewlineDecoder), __init__ = interp2app(W_IncrementalNewlineDecoder.descr_init), @@ -256,8 +255,7 @@ W_TextIOBase.typedef = TypeDef( - '_TextIOBase', W_IOBase.typedef, - __module__ = "_io", + '_io._TextIOBase', W_IOBase.typedef, __new__ = generic_new_descr(W_TextIOBase), read = interp2app(W_TextIOBase.read_w), diff --git a/pypy/module/_io/test/test_io.py b/pypy/module/_io/test/test_io.py --- a/pypy/module/_io/test/test_io.py +++ b/pypy/module/_io/test/test_io.py @@ -381,5 +381,6 @@ def test_mod(self): import _io - assert all(t.__module__ in ('io', '_io') for t in vars(_io).values() - if isinstance(t, type)) + typemods = dict((t, t.__module__) for t in vars(_io).values() + if isinstance(t, type)) + assert all(mod in ('io', '_io') for mod in typemods.values()), typemods diff --git a/pypy/module/micronumpy/ndarray.py b/pypy/module/micronumpy/ndarray.py --- a/pypy/module/micronumpy/ndarray.py +++ b/pypy/module/micronumpy/ndarray.py @@ -729,6 +729,8 @@ ret = W_NDimArray.from_shape( space, v.get_shape(), descriptor.get_dtype_cache(space).w_longdtype) app_searchsort(space, self, v, space.wrap(side), ret) + if ret.is_scalar(): + return ret.get_scalar_value() return ret def descr_setasflat(self, space, w_v): diff --git a/pypy/module/micronumpy/test/test_sorting.py b/pypy/module/micronumpy/test/test_sorting.py --- a/pypy/module/micronumpy/test/test_sorting.py +++ b/pypy/module/micronumpy/test/test_sorting.py @@ -351,13 +351,21 @@ assert (x.argsort(kind='m') == np.arange(32)).all() def test_searchsort(self): - from numpy import arange + import numpy as np import sys - a = arange(1, 6) + a = np.arange(1, 6) ret = a.searchsorted(3) assert ret == 2 + assert isinstance(ret, np.generic) + ret = a.searchsorted(np.array(3)) + assert ret == 2 + assert isinstance(ret, np.generic) + ret = a.searchsorted(np.array([3])) + assert ret == 2 + assert isinstance(ret, np.ndarray) ret = a.searchsorted(3, side='right') assert ret == 3 + assert isinstance(ret, np.generic) ret = a.searchsorted([-10, 10, 2, 3]) assert (ret == [0, 5, 1, 2]).all() if '__pypy__' in sys.builtin_module_names: diff --git a/rpython/translator/platform/__init__.py b/rpython/translator/platform/__init__.py --- a/rpython/translator/platform/__init__.py +++ b/rpython/translator/platform/__init__.py @@ -267,7 +267,7 @@ # Only required on armhf and mips{,el}, not armel. But there's no way to # detect armhf without shelling out if (platform.architecture()[0] == '64bit' - or platform.machine().startswith(('arm', 'mips'))): + or platform.machine().startswith(('arm', 'mips', 'ppc'))): host_factory = LinuxPIC else: host_factory = Linux _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit