Author: Tim Felgentreff <[email protected]>
Branch: rbitblt
Changeset: r559:43767dcdfe46
Date: 2014-01-09 12:59 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/43767dcdfe46/
Log: make evented code optional
diff --git a/spyvm/interpreter.py b/spyvm/interpreter.py
--- a/spyvm/interpreter.py
+++ b/spyvm/interpreter.py
@@ -25,7 +25,7 @@
class Interpreter(object):
_immutable_fields_ = ["space", "image", "image_name",
"max_stack_depth", "interrupt_counter_size",
- "startup_time"]
+ "startup_time", "evented"]
_w_last_active_context = None
cnt = 0
_last_indent = ""
@@ -37,7 +37,8 @@
)
def __init__(self, space, image=None, image_name="", trace=False,
- max_stack_depth=constants.MAX_LOOP_DEPTH):
+ evented=True,
+ max_stack_depth=constants.MAX_LOOP_DEPTH):
import time
self.space = space
self.image = image
@@ -47,6 +48,7 @@
self.remaining_stack_depth = max_stack_depth
self._loop = False
self.next_wakeup_tick = 0
+ self.evented = evented
try:
self.interrupt_counter_size = int(os.environ["SPY_ICS"])
except KeyError:
diff --git a/spyvm/primitives.py b/spyvm/primitives.py
--- a/spyvm/primitives.py
+++ b/spyvm/primitives.py
@@ -631,6 +631,8 @@
@jit.look_inside
@expose_primitive(GET_NEXT_EVENT, unwrap_spec=[object, object])
def func(interp, s_frame, w_rcvr, w_into):
+ if not interp.evented:
+ raise PrimitiveFailedError()
ary = interp.space.get_display().get_next_event(time=interp.time_now())
for i in range(8):
w_into.store(interp.space, i, interp.space.wrap_int(ary[i]))
diff --git a/targetimageloadingsmalltalk.py b/targetimageloadingsmalltalk.py
--- a/targetimageloadingsmalltalk.py
+++ b/targetimageloadingsmalltalk.py
@@ -124,6 +124,7 @@
-a|--arg [string argument to #method]
-r|--run [code string]
-b|--benchmark [code string]
+ -p|--poll_events
[image path, default: Squeak.image]
""" % argv[0]
@@ -139,6 +140,7 @@
number = 0
benchmark = None
trace = False
+ evented = True
stringarg = ""
code = None
as_benchmark = False
@@ -163,6 +165,8 @@
idx += 1
elif arg in ["-t", "--trace"]:
trace = True
+ elif arg in ["-p", "--poll_events"]:
+ evented = False
elif arg in ["-a", "--arg"]:
_arg_missing(argv, idx, arg)
stringarg = argv[idx + 1]
@@ -200,7 +204,7 @@
image_reader = squeakimage.reader_for_image(space,
squeakimage.Stream(data=imagedata))
image = create_image(space, image_reader)
- interp = interpreter.Interpreter(space, image, image_name=path,
trace=trace)
+ interp = interpreter.Interpreter(space, image, image_name=path,
trace=trace, evented=evented)
space.runtime_setup(argv[0])
if benchmark is not None:
return _run_benchmark(interp, number, benchmark, stringarg)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit