def new_interpreter(bytes): assert isinstance(bytes, str) w_method = model.W_CompiledMethod(0, bytes=bytes) w_frame = w_method.create_frame(objtable.w_nil, []) interp = interpreter.Interpreter() interp.w_active_context = w_frame return interp
def new_interpreter(bytes, receiver=objtable.w_nil): assert isinstance(bytes, str) w_method = model.W_CompiledMethod(len(bytes)) w_method.bytes = bytes w_method.argsize = 2 w_method.tempsize = 1 w_frame = w_method.create_frame(receiver, ["foo", "bar"]) interp = interpreter.Interpreter() interp.w_active_context = w_frame return interp
def new_interpreter(bytes, receiver=space.w_nil): assert isinstance(bytes, str) w_method = model.W_CompiledMethod(len(bytes)) w_method.islarge = 1 w_method.bytes = bytes w_method.argsize=2 w_method.tempsize=8 w_frame = w_method.create_frame(space, receiver, ["foo", "bar"]) interp = interpreter.Interpreter(space) interp.store_w_active_context(w_frame) return interp
def test_runimage(): py.test.skip( "This method actually runs an image. Fails since no graphical primitives yet" ) from pypy.lang.smalltalk import wrapper ap = wrapper.ProcessWraper(wrapper.scheduler().active_process()) s_ctx = ap.suspended_context().as_methodcontext_get_shadow() ap.store_suspended_context(space.w_nil) interp = interpreter.Interpreter() interp.store_w_active_context(s_ctx.w_self()) interp.interpret()
def make_processes(self, sleepingpriority, runningpriority, sleepingcontext, runningcontext): interp = interpreter.Interpreter(space) scheduler = wrapper.scheduler(space) sleeping = new_process(priority=sleepingpriority, w_suspended_context=sleepingcontext) sleeping.put_to_sleep() running = new_process(priority=runningpriority) scheduler.store_active_process(running.w_self) interp.store_w_active_context(runningcontext) return interp, sleeping, running
def perform(w_receiver, selector, *arguments_w): interp = interpreter.Interpreter() s_class = w_receiver.shadow_of_my_class() w_method = s_class.lookup(selector) assert w_method w_frame = w_method.create_frame(w_receiver, list(arguments_w)) interp.w_active_context = w_frame while True: try: interp.step() #print interp.w_active_context.stack except interpreter.ReturnFromTopLevel, e: return e.object.value
def tinyBenchmarks(space, image): interp = interpreter.Interpreter(space) w_object = model.W_SmallInteger(0) s_class = w_object.shadow_of_my_class(space) w_method = s_class.lookup("tinyBenchmarks") assert w_method w_frame = w_method.create_frame(space, w_object, []) interp.store_w_active_context(w_frame) counter = 0 from pypy.lang.smalltalk.interpreter import BYTECODE_TABLE return interp
def tinyBenchmarks(): image = create_squeakimage() interp = interpreter.Interpreter() w_object = model.W_SmallInteger(0) # Should get this from w_object w_smallint_class = image.special(constants.SO_SMALLINTEGER_CLASS) s_class = w_object.shadow_of_my_class() #w_method = s_class.lookup("benchFib") w_method = s_class.lookup("tinyBenchmarks") assert w_method w_frame = w_method.create_frame(w_object, []) interp.w_active_context = w_frame print w_method print "Going to execute %d toplevel bytecodes" % (len(w_method.bytes), ) counter = 0 from pypy.lang.smalltalk.interpreter import BYTECODE_TABLE while True: try: counter += 1 if interp.w_active_context == w_frame: print "Executing toplevel bytecode nr: %d of %d" % ( interp.w_active_context.pc + 1, len(w_method.bytes)) cb = ord(interp.w_active_context.w_method().bytes[ interp.w_active_context.pc]) print "= bytecode: %s %d" % (BYTECODE_TABLE[cb].__name__, cb) interp.step() #if hasattr(interp.w_active_context,"currentBytecode"): # print "Executing bytecode: %s" % (BYTECODE_TABLE[interp.w_active_context.currentBytecode].__name__,) #else: # print "Jump to new stackframe" # print interp.w_active_context.stack if counter == 100000: counter = 0 sys.stderr.write("#") except interpreter.ReturnFromTopLevel, e: print e.object return except:
def tinyBenchmarks(image): interp = interpreter.Interpreter() w_object = model.W_SmallInteger(0) # Should get this from w_object w_smallint_class = image.special(constants.SO_SMALLINTEGER_CLASS) s_class = w_object.shadow_of_my_class() w_method = s_class.lookup("tinyBenchmarks") assert w_method w_frame = w_method.create_frame(w_object, []) interp.w_active_context = w_frame print w_method print "Going to execute %d toplevel bytecodes" % (len(w_method.bytes), ) counter = 0 from pypy.lang.smalltalk.interpreter import BYTECODE_TABLE return interp
def test_step_run_something(): from pypy.lang.smalltalk.test import test_miniimage setup_module(test_miniimage, filename='running-something-mini.image') from pypy.lang.smalltalk import wrapper ap = wrapper.ProcessWrapper(space, wrapper.scheduler(space).active_process()) s_ctx = ap.suspended_context().as_context_get_shadow(space) ap.store_suspended_context(space.w_nil) interp = interpreter.Interpreter(space) interp.store_w_active_context(s_ctx.w_self()) assert isinstance(s_ctx, shadow.MethodContextShadow) assert interp.s_active_context().top().is_same_object(space.w_true) interp.step() interp.step() assert interp.s_active_context().top().value == 1 interp.step() assert interp.s_active_context().top().value == 2 interp.step() assert interp.s_active_context().top().value == 3
def tinyBenchmarks(): from pypy.lang.smalltalk import objspace space = objspace.ObjSpace() image = create_squeakimage(space) interp = interpreter.Interpreter(space) w_object = model.W_SmallInteger(0) # Should get this from w_object w_smallint_class = image.special(constants.SO_SMALLINTEGER_CLASS) s_class = w_object.shadow_of_my_class(space) w_method = s_class.lookup("tinyBenchmarks") assert w_method w_frame = w_method.create_frame(space, w_object, []) interp.store_w_active_context(w_frame) counter = 0 from pypy.lang.smalltalk.interpreter import BYTECODE_TABLE return interp
def test_lookup_abs_in_integer(int=10): image = get_image() interp = interpreter.Interpreter(space) w_object = model.W_SmallInteger(int) # Should get this from w_object w_smallint_class = image.special(constants.SO_SMALLINTEGER_CLASS) s_class = w_object.shadow_of_my_class(space) w_method = s_class.lookup("abs") assert w_method w_frame = w_method.create_frame(space, w_object, []) interp.store_w_active_context(w_frame) while True: try: interp.step() except interpreter.ReturnFromTopLevel, e: assert e.object.value == abs(int) return
def tinyBenchmarks(): image = create_squeakimage() interp = interpreter.Interpreter() w_object = model.W_SmallInteger(0) # Should get this from w_object w_smallint_class = image.special(constants.SO_SMALLINTEGER_CLASS) s_class = w_object.shadow_of_my_class() #w_method = s_class.lookup("benchFib") w_method = s_class.lookup("tinyBenchmarks") assert w_method w_frame = w_method.create_frame(w_object, []) interp.store_w_active_context(w_frame) from pypy.lang.smalltalk.interpreter import BYTECODE_TABLE while True: try: interp.step() except interpreter.ReturnFromTopLevel, e: print e.object return
def mock(stack): mapped_stack = [wrap(x) for x in stack] frame = MockFrame(mapped_stack) interp = interpreter.Interpreter(space) interp.store_w_active_context(frame) return (interp, len(stack))