[pypy-svn] r76170 - in pypy/branch/interplevel-array/pypy/module/array: . test

Maciej Fijalkowski fijall at gmail.com
Tue Jul 13 10:10:29 CEST 2010


Hey.

There is space.fixedview, which is fast for tuple and space.listview,
which is fast for list.

On Tue, Jul 13, 2010 at 8:01 AM,  <hakanardo at codespeak.net> wrote:
> Author: hakanardo
> Date: Tue Jul 13 08:01:33 2010
> New Revision: 76170
>
> Modified:
>   pypy/branch/interplevel-array/pypy/module/array/interp_array.py
>   pypy/branch/interplevel-array/pypy/module/array/test/sumtst.py
> Log:
> compiling
>
> Modified: pypy/branch/interplevel-array/pypy/module/array/interp_array.py
> ==============================================================================
> --- pypy/branch/interplevel-array/pypy/module/array/interp_array.py     (original)
> +++ pypy/branch/interplevel-array/pypy/module/array/interp_array.py     Tue Jul 13 08:01:33 2010
> @@ -212,19 +212,26 @@
>             new = space.int_w(w_new)
>             oldlen = self.len
>             self.setlen(self.len + new)
> -
> +
> +            i = 0
>             try:
> -                if (isinstance(w_seq, W_ListObject) or
> -                    isinstance(w_seq, W_TupleObject)):
> -                    for i in range(new):
> +                if isinstance(w_seq, W_ListObject):
> +                    while i < new:
> +                        item = self.item_w(w_seq.wrappeditems[i])
> +                        self.buffer[oldlen + i ] = item
> +                        i += 1
> +                elif isinstance(w_seq, W_TupleObject):
> +                    while i < new:
>                         item = self.item_w(w_seq.wrappeditems[i])
>                         self.buffer[oldlen + i ] = item
> +                        i += 1
>                 else:
>                     getitem = space.getattr(w_seq, space.wrap('__getitem__'))
> -                    for i in range(new):
> +                    while i < new:
>                         w_item = space.call_function(getitem, space.wrap(i))
>                         item=self.item_w(w_item)
>                         self.buffer[oldlen + i ] = item
> +                        i += 1
>             except OperationError:
>                 self.setlen(oldlen + i)
>                 raise
>
> Modified: pypy/branch/interplevel-array/pypy/module/array/test/sumtst.py
> ==============================================================================
> --- pypy/branch/interplevel-array/pypy/module/array/test/sumtst.py      (original)
> +++ pypy/branch/interplevel-array/pypy/module/array/test/sumtst.py      Tue Jul 13 08:01:33 2010
> @@ -11,7 +11,9 @@
>     return l
>
>  if True:
> -    img=array('d', '\x00'*640*480*8)
> +    img=array('d', '\x00'*640*480)
> +    #img=array('d', [0]*640*480)
> +    #img=array('d', (0,))*(640*480)
>  else:
>     img=simple_array(640*480)
>
> _______________________________________________
> pypy-svn mailing list
> pypy-svn at codespeak.net
> http://codespeak.net/mailman/listinfo/pypy-svn
>


More information about the Pypy-commit mailing list