[pypy-commit] lang-smalltalk storage: Renamed c_loop to loop_bytecodes. Added Exception as documentation.
anton_gulenko
noreply at buildbot.pypy.org
Wed May 7 21:16:20 CEST 2014
Author: Anton Gulenko <anton.gulenko at googlemail.com>
Branch: storage
Changeset: r808:550297e474ff
Date: 2014-05-07 15:43 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/550297e474ff/
Log: Renamed c_loop to loop_bytecodes. Added Exception as documentation.
diff --git a/spyvm/interpreter.py b/spyvm/interpreter.py
--- a/spyvm/interpreter.py
+++ b/spyvm/interpreter.py
@@ -62,14 +62,15 @@
self.trace_proxy = False
def loop(self, w_active_context):
- # just a trampoline for the actual loop implemented in c_loop
+ # just a trampoline for the actual loop implemented in loop_bytecodes
s_new_context = w_active_context.as_context_get_shadow(self.space)
while True:
assert self.remaining_stack_depth == self.max_stack_depth
- # Need to save s_sender, c_loop will nil this on return
+ # Need to save s_sender, loop_bytecodes will nil this on return
s_sender = s_new_context.s_sender()
try:
- s_new_context = self.c_loop(s_new_context)
+ self.loop_bytecodes(s_new_context)
+ raise Exception("loop_bytecodes left without raising...")
except StackOverflow, e:
s_new_context = e.s_context
except Return, nlr:
@@ -86,7 +87,7 @@
print "====== Switch from: %s to: %s ======" % (s_new_context.short_str(), p.s_new_context.short_str())
s_new_context = p.s_new_context
- def c_loop(self, s_context, may_context_switch=True):
+ def loop_bytecodes(self, s_context, may_context_switch=True):
old_pc = 0
if not jit.we_are_jitted() and may_context_switch:
self.quick_check_for_interrupt(s_context)
@@ -113,17 +114,17 @@
raise nlr
else:
s_context.push(nlr.value)
-
+
+ # This is just a wrapper around loop_bytecodes that handles the remaining_stack_depth mechanism
def stack_frame(self, s_new_frame, may_context_switch=True):
if self.remaining_stack_depth <= 1:
raise StackOverflow(s_new_frame)
self.remaining_stack_depth -= 1
try:
- retval = self.c_loop(s_new_frame, may_context_switch)
+ self.loop_bytecodes(s_new_frame, may_context_switch)
finally:
self.remaining_stack_depth += 1
- return retval
# ============== Methods for handling user interrupts ==============
diff --git a/spyvm/test/test_interpreter.py b/spyvm/test/test_interpreter.py
--- a/spyvm/test/test_interpreter.py
+++ b/spyvm/test/test_interpreter.py
@@ -1009,7 +1009,7 @@
try:
interp = TestInterpreter(space, image_name="", max_stack_depth=10)
interp._loop = True
- interp.c_loop(w_method.create_frame(space, space.wrap_int(0), []))
+ interp.loop_bytecodes(w_method.create_frame(space, space.wrap_int(0), []))
except interpreter.StackOverflow, e:
assert isinstance(e.s_context, shadow.MethodContextShadow)
except interpreter.ReturnFromTopLevel, e:
@@ -1019,7 +1019,7 @@
def stack_frame(self, w_frame, may_interrupt=True):
stack_depth = self.max_stack_depth - self.remaining_stack_depth
for i in range(stack_depth + 1):
- assert sys._getframe(4 + i * 6).f_code.co_name == 'c_loop'
+ assert sys._getframe(4 + i * 6).f_code.co_name == 'loop_bytecodes'
assert sys._getframe(5 + stack_depth * 6).f_code.co_name == 'loop'
return interpreter.Interpreter.stack_frame(self, w_frame)
More information about the pypy-commit
mailing list