Author: Maciej Fijalkowski <fij...@gmail.com> Branch: range-immutable Changeset: r45824:d1de6e6a2438 Date: 2011-07-21 16:46 +0200 http://bitbucket.org/pypy/pypy/changeset/d1de6e6a2438/
Log: kill the silly speedups - sort and reverse force the list. diff --git a/pypy/objspace/std/rangeobject.py b/pypy/objspace/std/rangeobject.py --- a/pypy/objspace/std/rangeobject.py +++ b/pypy/objspace/std/rangeobject.py @@ -161,29 +161,6 @@ space.wrap("pop index out of range")) raise FailedToImplement -def list_reverse__RangeList(space, w_rangelist): - # probably somewhat useless, but well... - if w_rangelist.w_list is not None: - raise FailedToImplement - w_rangelist.start = w_rangelist.getitem_unchecked(w_rangelist.length-1) - w_rangelist.step = -w_rangelist.step - -def list_sort__RangeList_None_None_ANY(space, w_rangelist, w_cmp, - w_keyfunc, w_reverse): - # even more useless but fun - has_reverse = space.is_true(w_reverse) - if w_rangelist.w_list is not None: - raise FailedToImplement - if has_reverse: - factor = -1 - else: - factor = 1 - reverse = w_rangelist.step * factor < 0 - if reverse: - w_rangelist.start = w_rangelist.getitem_unchecked(w_rangelist.length-1) - w_rangelist.step = -w_rangelist.step - return space.w_None - class W_RangeIterObject(iterobject.W_AbstractSeqIterObject): pass diff --git a/pypy/objspace/std/test/test_rangeobject.py b/pypy/objspace/std/test/test_rangeobject.py --- a/pypy/objspace/std/test/test_rangeobject.py +++ b/pypy/objspace/std/test/test_rangeobject.py @@ -16,7 +16,6 @@ "W_ListObject" not in __pypy__.internal_repr(r)) return f """) - cls.w_SORT_FORCES_LISTS = cls.space.wrap(False) def test_simple(self): result = [] @@ -44,12 +43,10 @@ def test_empty_range(self): r = range(10, 10) - if not self.SORT_FORCES_LISTS: r.sort(reverse=True) assert len(r) == 0 assert list(reversed(r)) == [] assert r[:] == [] - assert self.not_forced(r) def test_repr(self): r = range(5) @@ -65,7 +62,6 @@ def test_reverse(self): r = range(10) r.reverse() - assert self.not_forced(r) assert r == range(9, -1, -1) r = range(3) r[0] = 1 @@ -74,19 +70,14 @@ assert r == [2, 1, 1] def test_sort(self): - if self.SORT_FORCES_LISTS: - skip("sort() forces these lists") r = range(10, -1, -1) r.sort() - assert self.not_forced(r) assert r == range(11) r = range(11) r.sort(reverse=True) - assert self.not_forced(r) assert r == range(10, -1, -1) r = range(100) r[0] = 999 - assert not self.not_forced(r) r.sort() assert r == range(1, 100) + [999] _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit