[pypy-commit] pypy numpypy-axisops: make test_zjit run again. Fails, because produces utter nonsense, next step
fijal
noreply at buildbot.pypy.org
Fri Jan 13 22:29:44 CET 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: numpypy-axisops
Changeset: r51298:2bfdde95bd9f
Date: 2012-01-13 23:29 +0200
http://bitbucket.org/pypy/pypy/changeset/2bfdde95bd9f/
Log: make test_zjit run again. Fails, because produces utter nonsense,
next step
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
@@ -32,7 +32,7 @@
slice_driver = jit.JitDriver(
greens=['shapelen', 'sig'],
virtualizables=['frame'],
- reds=['self', 'frame', 'source'],
+ reds=['self', 'frame', 'arr'],
get_printable_location=signature.new_printable_location('slice'),
)
@@ -1000,7 +1000,8 @@
self.dtype is w_value.find_dtype()):
self._fast_setslice(space, w_value)
else:
- self._sliceloop(w_value)
+ arr = SliceArray(self.shape, self.dtype, self, w_value)
+ self._sliceloop(arr)
def _fast_setslice(self, space, w_value):
assert isinstance(w_value, ConcreteArray)
@@ -1024,14 +1025,14 @@
source.next()
dest.next()
- def _sliceloop(self, source):
- arr = SliceArray(self.shape, self.dtype, self, source)
+ def _sliceloop(self, arr):
sig = arr.find_sig()
frame = sig.create_frame(arr)
shapelen = len(self.shape)
while not frame.done():
slice_driver.jit_merge_point(sig=sig, frame=frame, self=self,
- shapelen=shapelen, source=source)
+ arr=arr,
+ shapelen=shapelen)
sig.eval(frame, arr)
frame.next(shapelen)
diff --git a/pypy/module/micronumpy/signature.py b/pypy/module/micronumpy/signature.py
--- a/pypy/module/micronumpy/signature.py
+++ b/pypy/module/micronumpy/signature.py
@@ -74,7 +74,7 @@
def done(self):
final_iter = promote(self.final_iter)
if final_iter < 0:
- return False
+ assert False
return self.iterators[final_iter].done()
@unroll_safe
@@ -83,7 +83,10 @@
self.iterators[i] = self.iterators[i].next(shapelen)
def get_final_iter(self):
- return self.iterators[promote(self.final_iter)]
+ final_iter = promote(self.final_iter)
+ if final_iter < 0:
+ assert False
+ return self.iterators[final_iter]
def _add_ptr_to_cache(ptr, cache):
i = 0
More information about the pypy-commit
mailing list