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

Reply via email to