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

Reply via email to