Author: Alex Gaynor <alex.gay...@gmail.com> Branch: Changeset: r46092:ffbcbca32e2b Date: 2011-07-29 10:51 -0700 http://bitbucket.org/pypy/pypy/changeset/ffbcbca32e2b/
Log: merged upstream. diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronumpy/interp_numarray.py --- a/pypy/module/micronumpy/interp_numarray.py +++ b/pypy/module/micronumpy/interp_numarray.py @@ -187,17 +187,17 @@ def _getnums(self, comma): if self.find_size() > 1000: nums = [ - float2string(self.getitem(index)) + float2string(self.eval(index)) for index in range(3) ] nums.append("..." + "," * comma) nums.extend([ - float2string(self.getitem(index)) + float2string(self.eval(index)) for index in range(self.find_size() - 3, self.find_size()) ]) else: nums = [ - float2string(self.getitem(index)) + float2string(self.eval(index)) for index in range(self.find_size()) ] return nums @@ -229,7 +229,7 @@ start, stop, step, slice_length = space.decode_index4(w_idx, self.find_size()) if step == 0: # Single index - return space.wrap(self.get_concrete().getitem(start)) + return space.wrap(self.get_concrete().eval(start)) else: # Slice res = SingleDimSlice(start, stop, step, slice_length, self, self.signature.transition(SingleDimSlice.static_signature)) @@ -416,14 +416,12 @@ # in fact, ViewArray never gets "concrete" as it never stores data. # This implementation is needed for BaseArray getitem/setitem to work, # can be refactored. + self.parent.get_concrete() return self def eval(self, i): return self.parent.eval(self.calc_index(i)) - def getitem(self, item): - return self.parent.getitem(self.calc_index(item)) - @unwrap_spec(item=int, value=float) def setitem(self, item, value): return self.parent.setitem(self.calc_index(item), value) @@ -497,9 +495,6 @@ def descr_len(self, space): return space.wrap(self.size) - def getitem(self, item): - return self.storage[item] - def setitem(self, item, value): self.invalidated() self.storage[item] = value diff --git a/pypy/module/micronumpy/test/test_numarray.py b/pypy/module/micronumpy/test/test_numarray.py --- a/pypy/module/micronumpy/test/test_numarray.py +++ b/pypy/module/micronumpy/test/test_numarray.py @@ -70,6 +70,7 @@ from numpy import array, zeros a = array(range(5)) assert str(a) == "[0.0 1.0 2.0 3.0 4.0]" + assert str((2*a)[:]) == "[0.0 2.0 4.0 6.0 8.0]" a = zeros(1001) assert str(a) == "[0.0 0.0 0.0 ..., 0.0 0.0 0.0]" diff --git a/pypy/module/pypyjit/test_pypy_c/test_misc.py b/pypy/module/pypyjit/test_pypy_c/test_misc.py --- a/pypy/module/pypyjit/test_pypy_c/test_misc.py +++ b/pypy/module/pypyjit/test_pypy_c/test_misc.py @@ -63,6 +63,7 @@ i7 = int_gt(i4, 1) guard_true(i7, descr=...) p9 = call(ConstClass(fromint), i4, descr=...) + guard_no_exception(descr=...) p11 = call(ConstClass(rbigint.mul), p5, p9, descr=...) guard_no_exception(descr=...) i13 = int_sub(i4, 1) diff --git a/pypy/translator/jvm/src/pypy/PyPy.java b/pypy/translator/jvm/src/pypy/PyPy.java --- a/pypy/translator/jvm/src/pypy/PyPy.java +++ b/pypy/translator/jvm/src/pypy/PyPy.java @@ -1100,9 +1100,9 @@ if (Double.isNaN(x)) return interlink.recordFloatSigned(x, 0); - // Infinity: Python throws exception + // Infinity: Python returns (inf, 0) if (Double.isInfinite(x)) - interlink.throwOverflowError(); + return interlink.recordFloatSigned(x, 0); // Extract the various parts of the format: final long e=11, f=52; // number of bits in IEEE format _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit