How about a test? Especially for the heapcache
On Fri, Apr 26, 2013 at 6:23 AM, alex_gaynor <nore...@buildbot.pypy.org> wrote: > Author: Alex Gaynor <alex.gay...@gmail.com> > Branch: > Changeset: r63627:23defdb27411 > Date: 2013-04-25 21:22 -0700 > http://bitbucket.org/pypy/pypy/changeset/23defdb27411/ > > Log: Inline into ll_setslice (which is really just an ll_arraycopy). > Fixed a bug in the heapcache that it revealed. > > diff --git a/rpython/jit/codewriter/support.py > b/rpython/jit/codewriter/support.py > --- a/rpython/jit/codewriter/support.py > +++ b/rpython/jit/codewriter/support.py > @@ -203,7 +203,6 @@ > _ll_2_list_append = rlist.ll_append > _ll_2_list_extend = rlist.ll_extend > _ll_3_list_insert = rlist.ll_insert_nonneg > -_ll_4_list_setslice = rlist.ll_listsetslice > _ll_2_list_delslice_startonly = rlist.ll_listdelslice_startonly > _ll_3_list_delslice_startstop = rlist.ll_listdelslice_startstop > _ll_2_list_inplace_mul = rlist.ll_inplace_mul > diff --git a/rpython/jit/metainterp/heapcache.py > b/rpython/jit/metainterp/heapcache.py > --- a/rpython/jit/metainterp/heapcache.py > +++ b/rpython/jit/metainterp/heapcache.py > @@ -125,7 +125,7 @@ > for descr, cache in self.heap_array_cache.iteritems(): > for idx, cache in cache.iteritems(): > for frombox in cache.keys(): > - if frombox not in self.new_boxes: > + if not self.new_boxes.get(frombox, False): > del cache[frombox] > return > else: > diff --git a/rpython/jit/metainterp/test/test_list.py > b/rpython/jit/metainterp/test/test_list.py > --- a/rpython/jit/metainterp/test/test_list.py > +++ b/rpython/jit/metainterp/test/test_list.py > @@ -128,10 +128,10 @@ > res = self.interp_operations(f, [], listops=True) > assert res == 10 > > - def test_arraycopy_bug(self): > + def test_arraycopy_bug(self): > def f(): > l = [1, 2, 3, 4] > - l2 = [1, 2, 3, 4] > + l2 = [1, 2, 3, 5] > l[2] = 13 > l2[0:len(l2)] = l[:] > return l2[0] + l2[1] + l2[2] + l2[3] > diff --git a/rpython/rtyper/rlist.py b/rpython/rtyper/rlist.py > --- a/rpython/rtyper/rlist.py > +++ b/rpython/rtyper/rlist.py > @@ -955,7 +955,7 @@ > "setslice cannot resize lists in RPython") > # XXX ...but it would be easy enough to support if really needed > ll_arraycopy(l2, l1, 0, start, count) > -ll_listsetslice.oopspec = 'list.setslice(l1, start, stop, l2)' > + > > # ____________________________________________________________ > # > _______________________________________________ > pypy-commit mailing list > pypy-com...@python.org > http://mail.python.org/mailman/listinfo/pypy-commit _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev