Author: Alex Gaynor <alex.gay...@gmail.com> Branch: Changeset: r52755:6dd80b3ec992 Date: 2012-02-21 20:49 -0500 http://bitbucket.org/pypy/pypy/changeset/6dd80b3ec992/
Log: merged upstream diff --git a/pypy/module/micronumpy/interp_support.py b/pypy/module/micronumpy/interp_support.py --- a/pypy/module/micronumpy/interp_support.py +++ b/pypy/module/micronumpy/interp_support.py @@ -3,7 +3,7 @@ from pypy.rpython.lltypesystem import lltype, rffi from pypy.module.micronumpy import interp_dtype from pypy.objspace.std.strutil import strip_spaces - +from pypy.rlib import jit FLOAT_SIZE = rffi.sizeof(lltype.Float) @@ -72,11 +72,18 @@ "string is smaller than requested size")) a = W_NDimArray(count, [count], dtype=dtype) + fromstring_loop(a, count, dtype, itemsize, s) + return space.wrap(a) + +fromstring_driver = jit.JitDriver(greens=[], reds=['a', 'count', 'dtype', + 'itemsize', 's']) + +def fromstring_loop(a, count, dtype, itemsize, s): for i in range(count): + fromstring_driver.jit_merge_point(a=a, count=count, dtype=dtype, + itemsize=itemsize, s=s) val = dtype.itemtype.runpack_str(s[i*itemsize:i*itemsize + itemsize]) a.dtype.setitem(a.storage, i, val) - - return space.wrap(a) @unwrap_spec(s=str, count=int, sep=str) def fromstring(space, s, w_dtype=None, count=-1, sep=''): diff --git a/pypy/objspace/std/dictmultiobject.py b/pypy/objspace/std/dictmultiobject.py --- a/pypy/objspace/std/dictmultiobject.py +++ b/pypy/objspace/std/dictmultiobject.py @@ -143,6 +143,10 @@ return result def popitem(self, w_dict): + # this is a bad implementation: if we call popitem() repeatedly, + # it ends up taking n**2 time, because the next() calls below + # will take longer and longer. But all interesting strategies + # provide a better one. space = self.space iterator = self.iter(w_dict) w_key, w_value = iterator.next() diff --git a/pypy/tool/jitlogparser/parser.py b/pypy/tool/jitlogparser/parser.py --- a/pypy/tool/jitlogparser/parser.py +++ b/pypy/tool/jitlogparser/parser.py @@ -387,7 +387,7 @@ m = re.search('guard \d+', comm) name = m.group(0) else: - name = comm[2:comm.find(':')-1] + name = " ".join(comm[2:].split(" ", 2)[:2]) if name in dumps: bname, start_ofs, dump = dumps[name] loop.force_asm = (lambda dump=dump, start_ofs=start_ofs, _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit