[pypy-svn] r62935 - in pypy/trunk/pypy/lang/smalltalk: . test

cfbolz at codespeak.net cfbolz at codespeak.net
Fri Mar 13 14:40:18 CET 2009


Author: cfbolz
Date: Fri Mar 13 14:40:15 2009
New Revision: 62935

Modified:
   pypy/trunk/pypy/lang/smalltalk/primitives.py
   pypy/trunk/pypy/lang/smalltalk/test/test_interpreter.py
   pypy/trunk/pypy/lang/smalltalk/test/test_wrapper.py
   pypy/trunk/pypy/lang/smalltalk/wrapper.py
Log:
Revert to before 62880. The last checkins here were stupidity on my part: All
this work is already done on the spy-graphic branch.


Modified: pypy/trunk/pypy/lang/smalltalk/primitives.py
==============================================================================
--- pypy/trunk/pypy/lang/smalltalk/primitives.py	(original)
+++ pypy/trunk/pypy/lang/smalltalk/primitives.py	Fri Mar 13 14:40:15 2009
@@ -299,10 +299,10 @@
 
 @expose_primitive(MAKE_POINT, unwrap_spec=[int, int])
 def func(interp, x, y):
-    w_res = interp.space.w_Point.as_class_get_shadow(interp.space).new(2)
+    w_res = interp.space.classtable['w_Point'].as_class_get_shadow(interp.space).new(2)
     point = wrapper.PointWrapper(interp.space, w_res)
-    point.store_x(x)
-    point.store_y(y)
+    point.store_x(interp.space, x)
+    point.store_y(interp.space, y)
     return w_res
 
 
@@ -771,7 +771,7 @@
 def func(interp, w_rcvr):
     # XXX we might want to disable this check
     if not w_rcvr.getclass(interp.space).is_same_object(
-        interp.space.w_Semaphore):
+        interp.space.classtable['w_Semaphore']):
         raise PrimitiveFailedError()
     wrapper.SemaphoreWrapper(interp.space, w_rcvr).signal(interp)
     return w_rcvr
@@ -780,7 +780,7 @@
 def func(interp, w_rcvr):
     # XXX we might want to disable this check
     if not w_rcvr.getclass(interp.space).is_same_object(
-        interp.space.w_Semaphore):
+        interp.space.classtable['w_Semaphore']):
         raise PrimitiveFailedError()
     wrapper.SemaphoreWrapper(interp.space, w_rcvr).wait(interp)
     return w_rcvr
@@ -789,7 +789,7 @@
 def func(interp, w_rcvr,):
     # XXX we might want to disable this check
     if not w_rcvr.getclass(interp.space).is_same_object(
-        interp.space.w_Process):
+        interp.space.classtable['w_Process']):
         raise PrimitiveFailedError()
     wrapper.ProcessWrapper(interp.space, w_rcvr).resume(interp)
     return w_rcvr
@@ -798,7 +798,7 @@
 def func(interp, w_rcvr):
     # XXX we might want to disable this check
     if not w_rcvr.getclass(interp.space).is_same_object(
-        interp.space.w_Process):
+        interp.space.classtable['w_Process']):
         raise PrimitiveFailedError()
     wrapper.ProcessWrapper(interp.space, w_rcvr).suspend(interp)
     return w_rcvr

Modified: pypy/trunk/pypy/lang/smalltalk/test/test_interpreter.py
==============================================================================
--- pypy/trunk/pypy/lang/smalltalk/test/test_interpreter.py	(original)
+++ pypy/trunk/pypy/lang/smalltalk/test/test_interpreter.py	Fri Mar 13 14:40:15 2009
@@ -464,8 +464,8 @@
     w_point = interp.s_active_context().top()
     from pypy.lang.smalltalk.wrapper import PointWrapper
     point = PointWrapper(interp.space, w_point)
-    assert point.x() == 0
-    assert point.y() == 1
+    assert point.x(interp.space) == 0
+    assert point.y(interp.space) == 1
 
 def test_longJumpIfTrue():
     interp = new_interpreter(longJumpIfTrue(0) + chr(15) + longJumpIfTrue(0) + chr(15))

Modified: pypy/trunk/pypy/lang/smalltalk/test/test_wrapper.py
==============================================================================
--- pypy/trunk/pypy/lang/smalltalk/test/test_wrapper.py	(original)
+++ pypy/trunk/pypy/lang/smalltalk/test/test_wrapper.py	Fri Mar 13 14:40:15 2009
@@ -115,7 +115,7 @@
 def new_semaphore(excess_signals=0):
     w_semaphore = model.W_PointersObject(None, 3)
     semaphore = wrapper.SemaphoreWrapper(space, w_semaphore)
-    semaphore.store_excess_signals(excess_signals)
+    semaphore.store_excess_signals(space, excess_signals)
     return semaphore
 
         
@@ -205,7 +205,7 @@
         semaphore = new_semaphore()
         self.space = space
         semaphore.signal(self)
-        assert semaphore.excess_signals() == 1
+        assert semaphore.excess_signals(space) == 1
 
     def test_highest_priority(self):
         py.test.raises(FatalError, wrapper.scheduler(space).highest_priority_process)

Modified: pypy/trunk/pypy/lang/smalltalk/wrapper.py
==============================================================================
--- pypy/trunk/pypy/lang/smalltalk/wrapper.py	(original)
+++ pypy/trunk/pypy/lang/smalltalk/wrapper.py	Fri Mar 13 14:40:15 2009
@@ -11,14 +11,12 @@
     def read(self, index0):
         try:
             return self.w_self.fetch(self.space, index0)
-            # XXX Index error never raised after translation
         except IndexError:
             raise WrapperException("Unexpected instance layout. Too small")
 
     def write(self, index0, w_new):
         try:
             self.w_self.store(self.space, index0, w_new)
-            # XXX Index error never raised after translation
         except IndexError:
             raise WrapperException("Unexpected instance layout. Too small")
 
@@ -36,13 +34,13 @@
     return make_getter(index0), make_setter(index0)
 
 def make_int_getter(index0):
-    def getter(self):
-        return self.space.unwrap_int(self.read(index0))
+    def getter(self, space):
+        return space.unwrap_int(self.read(index0))
     return getter
 
 def make_int_setter(index0):
-    def setter(self, new):
-        return self.write(index0, self.space.wrap_int(new))
+    def setter(self, space, new):
+        return self.write(index0, space.wrap_int(new))
     return setter
 
 def make_int_getter_setter(index0):
@@ -53,9 +51,12 @@
 
 class ProcessWrapper(LinkWrapper):
     suspended_context, store_suspended_context = make_getter_setter(1)
-    priority = make_int_getter(2)
     my_list, store_my_list = make_getter_setter(3)
 
+    def priority(self):
+        w_priority = self.read(2)
+        return self.space.unwrap_int(w_priority)
+
     def put_to_sleep(self):
         sched = scheduler(self.space)
         priority = self.priority()
@@ -185,17 +186,17 @@
 
     def signal(self, interp):
         if self.is_empty_list():
-            value = self.excess_signals()
-            self.store_excess_signals(value + 1)
+            value = self.excess_signals(interp.space)
+            self.store_excess_signals(interp.space, value + 1)
         else:
             process = self.remove_first_link_of_list()
             ProcessWrapper(self.space, process).resume(interp)
 
     def wait(self, interp):
-        excess = self.excess_signals()
+        excess = self.excess_signals(interp.space)
         w_process = scheduler(interp.space).active_process()
         if excess > 0:
-            self.store_excess_signals(excess - 1)
+            self.store_excess_signals(interp.space, excess - 1)
         else:
             self.add_last_link(w_process)
             ProcessWrapper(self.space, w_process).suspend(interp)



More information about the Pypy-commit mailing list