[pypy-commit] pypy stm: Yay, the first example of RPython program that runs successfully

arigo noreply at buildbot.pypy.org
Thu Nov 3 11:30:49 CET 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: stm
Changeset: r48689:0524190818dc
Date: 2011-11-03 11:30 +0100
http://bitbucket.org/pypy/pypy/changeset/0524190818dc/

Log:	Yay, the first example of RPython program that runs successfully on
	multiple threads.

diff --git a/pypy/translator/stm/test/targetdemo.py b/pypy/translator/stm/test/targetdemo.py
--- a/pypy/translator/stm/test/targetdemo.py
+++ b/pypy/translator/stm/test/targetdemo.py
@@ -4,7 +4,7 @@
 
 
 NUM_THREADS = 4
-LENGTH      = 10000
+LENGTH      = 5000
 
 
 class Node:
diff --git a/pypy/translator/stm/transform.py b/pypy/translator/stm/transform.py
--- a/pypy/translator/stm/transform.py
+++ b/pypy/translator/stm/transform.py
@@ -3,23 +3,17 @@
 from pypy.annotation import model as annmodel
 from pypy.translator.stm import _rffi_stm
 from pypy.translator.unsimplify import varoftype, copyvar
-from pypy.rpython.lltypesystem import lltype
+from pypy.rpython.lltypesystem import lltype, lloperation
 
 
 ALWAYS_ALLOW_OPERATIONS = set([
-    'int_*', 'uint_*', 'llong_*', 'ullong_*', 'float_*',
-    'same_as', 'cast_*',
     'direct_call',
     'debug_print', 'debug_assert',
     ])
+ALWAYS_ALLOW_OPERATIONS |= set(lloperation.enum_foldable_ops())
 
 def op_in_set(opname, set):
-    if opname in set:
-        return True
-    for i in range(len(opname)-1, -1, -1):
-        if (opname[:i] + '*') in set:
-            return True
-    return False
+    return opname in set
 
 # ____________________________________________________________
 


More information about the pypy-commit mailing list