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

Reply via email to