Hi Carl, I wonder if there's some sub-set of cases we can still unroll in. The particular code this was for is: https://bitbucket.org/pypy/pypy/src/default/lib-python/2.7/uuid.py#cl-130 . I wonder if there are cases where the list is both virtual *and* we aren't able to constant fold some of the space.eq_w()?
Alex On Fri, Aug 30, 2013 at 5:31 AM, Carl Friedrich Bolz <cfb...@gmx.de> wrote: > On 30/08/13 12:58, Amaury Forgeot d'Arc wrote: > > > > 2013/8/30 Carl Friedrich Bolz <cfb...@gmx.de <mailto:cfb...@gmx.de>> > > > > Hi Alex, > > > > please revert this change, it can lead to combinatorial explosion: it > > can give a bridge per pattern of where in the list the object is > found. > > > > > > Doesn't list.count() traverse all the list in all cases? > > It looks like this: > > count = 0 > i = 0 > while i < self.length(): > if space.eq_w(self.getitem(i), w_value): > count += 1 > i += 1 > > So there's a guard_true/false for every item. > > Note that even changing to: > > count += space.eq_w(self.getitem(i), w_value) > > does not fix this, because the guard is coming from inside space.istrue, > or space.eq > > Cheers, > > Carl Friedrich > > _______________________________________________ > pypy-dev mailing list > pypy-dev@python.org > http://mail.python.org/mailman/listinfo/pypy-dev > -- "I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire) "The people's good is the highest law." -- Cicero GPG Key fingerprint: 125F 5C67 DFE9 4084
_______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev