Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch: pypy-jitdriver-greenkeys
Changeset: r98690:227d54204dea
Date: 2020-02-09 16:36 +0100
http://bitbucket.org/pypy/pypy/changeset/227d54204dea/
Log: various fixes
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -231,7 +231,7 @@
self.frame = None
rgc.may_ignore_finalizer(self)
- def iterator_greenkey(self):
+ def iterator_greenkey(self, space):
return self.pycode
diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -124,8 +124,14 @@
def descr__init__(space, w_obj, __args__):
pass
+def get_printable_location(itergreenkey, w_itemtype):
+ return "DescrOperation.contains [%s, %s]" % (
+ itergreenkey.iterator_greenkey_printable(),
+ w_itemtype.getname(w_itemtype.space))
+
contains_jitdriver = jit.JitDriver(name='contains',
- greens=['itergreenkey', 'w_itemtype'], reds='auto')
+ greens=['itergreenkey', 'w_itemtype'], reds='auto',
+ get_printable_location=get_printable_location)
class DescrOperation(object):
# This is meant to be a *mixin*.
diff --git a/pypy/objspace/std/bytearrayobject.py
b/pypy/objspace/std/bytearrayobject.py
--- a/pypy/objspace/std/bytearrayobject.py
+++ b/pypy/objspace/std/bytearrayobject.py
@@ -568,7 +568,7 @@
_byteseq_jitdriver = jit.JitDriver(
name='bytearray_from_byte_sequence',
greens=['greenkey'],
- reds='auto'
+ reds='auto',
get_printable_location=_get_printable_location)
def _from_byte_sequence(space, w_source):
diff --git a/pypy/objspace/std/listobject.py b/pypy/objspace/std/listobject.py
--- a/pypy/objspace/std/listobject.py
+++ b/pypy/objspace/std/listobject.py
@@ -131,7 +131,7 @@
return space.fromcache(ObjectListStrategy)
-def _get_printable_location(greenkey):
+def _get_printable_location(strategy, greenkey):
return 'list__do_extend_from_iterable [%s, %s]' % (
strategy,
greenkey.iterator_greenkey_printable())
@@ -145,11 +145,11 @@
def _do_extend_from_iterable(space, w_list, w_iterable):
w_iterator = space.iter(w_iterable)
- w_type = space.iterator_greenkey_printable(w_iterator)
+ greenkey = space.iterator_greenkey(w_iterator)
i = 0
while True:
_do_extend_jitdriver.jit_merge_point(
- w_type=w_type,
+ greenkey=greenkey,
strategy = w_list.strategy)
try:
w_list.append(space.next(w_iterator))
diff --git a/pypy/objspace/std/typeobject.py b/pypy/objspace/std/typeobject.py
--- a/pypy/objspace/std/typeobject.py
+++ b/pypy/objspace/std/typeobject.py
@@ -711,6 +711,9 @@
else:
return space.newtext("<%s '%s'>" % (kind, self.name))
+ def iterator_greenkey_printable(self):
+ return self.name
+
def descr_getattribute(self, space, w_name):
name = space.text_w(w_name)
w_descr = space.lookup(self, name)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit