[pypy-svn] r64100 - in pypy/branch/wip-fix-stackless-O2-pickling/pypy: interpreter interpreter/astcompiler interpreter/test module/__builtin__ module/_codecs module/_weakref objspace/std

cfbolz at codespeak.net cfbolz at codespeak.net
Wed Apr 15 16:43:13 CEST 2009


Author: cfbolz
Date: Wed Apr 15 16:43:11 2009
New Revision: 64100

Modified:
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/ast.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/astgen.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/buffer.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/function.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/gateway.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/test/test_gateway.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/typedef.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/__builtin__/interp_classobj.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_codecs/interp_codecs.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_weakref/interp__weakref.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/dictproxytype.py
   pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/fake.py
Log:
(pedronis, cfbolz): try to make more builtin function names unique. 


Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/ast.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/ast.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/ast.py	Wed Apr 15 16:43:11 2009
@@ -373,12 +373,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -411,8 +411,8 @@
                      accept=interp2app(descr_And_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_And_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(And.fget_nodes, And.fset_nodes ),
-                     insert_after=interp2app(And.descr_insert_after.im_func, unwrap_spec=[ObjSpace, And, Node, W_Root]),
-                     insert_before=interp2app(And.descr_insert_before.im_func, unwrap_spec=[ObjSpace, And, Node, W_Root]),
+                     insert_after=interp2app(And.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(And.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 And.typedef.acceptable_as_base_class = False
 
@@ -554,12 +554,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -592,8 +592,8 @@
                      accept=interp2app(descr_AssList_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_AssList_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(AssList.fget_nodes, AssList.fset_nodes ),
-                     insert_after=interp2app(AssList.descr_insert_after.im_func, unwrap_spec=[ObjSpace, AssList, Node, W_Root]),
-                     insert_before=interp2app(AssList.descr_insert_before.im_func, unwrap_spec=[ObjSpace, AssList, Node, W_Root]),
+                     insert_after=interp2app(AssList.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(AssList.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 AssList.typedef.acceptable_as_base_class = False
 
@@ -696,12 +696,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -734,8 +734,8 @@
                      accept=interp2app(descr_AssTuple_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_AssTuple_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(AssTuple.fget_nodes, AssTuple.fset_nodes ),
-                     insert_after=interp2app(AssTuple.descr_insert_after.im_func, unwrap_spec=[ObjSpace, AssTuple, Node, W_Root]),
-                     insert_before=interp2app(AssTuple.descr_insert_before.im_func, unwrap_spec=[ObjSpace, AssTuple, Node, W_Root]),
+                     insert_after=interp2app(AssTuple.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(AssTuple.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 AssTuple.typedef.acceptable_as_base_class = False
 
@@ -854,12 +854,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -903,8 +903,8 @@
                      accept=interp2app(descr_Assign_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Assign_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Assign.fget_nodes, Assign.fset_nodes ),
-                     insert_after=interp2app(Assign.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Assign, Node, W_Root]),
-                     insert_before=interp2app(Assign.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Assign, Node, W_Root]),
+                     insert_after=interp2app(Assign.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Assign.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     expr=GetSetProperty(Assign.fget_expr, Assign.fset_expr ),
                     )
 Assign.typedef.acceptable_as_base_class = False
@@ -1145,12 +1145,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -1183,8 +1183,8 @@
                      accept=interp2app(descr_Bitand_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Bitand_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Bitand.fget_nodes, Bitand.fset_nodes ),
-                     insert_after=interp2app(Bitand.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Bitand, Node, W_Root]),
-                     insert_before=interp2app(Bitand.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Bitand, Node, W_Root]),
+                     insert_after=interp2app(Bitand.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Bitand.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Bitand.typedef.acceptable_as_base_class = False
 
@@ -1218,12 +1218,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -1256,8 +1256,8 @@
                      accept=interp2app(descr_Bitor_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Bitor_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Bitor.fget_nodes, Bitor.fset_nodes ),
-                     insert_after=interp2app(Bitor.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Bitor, Node, W_Root]),
-                     insert_before=interp2app(Bitor.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Bitor, Node, W_Root]),
+                     insert_after=interp2app(Bitor.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Bitor.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Bitor.typedef.acceptable_as_base_class = False
 
@@ -1291,12 +1291,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -1329,8 +1329,8 @@
                      accept=interp2app(descr_Bitxor_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Bitxor_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Bitxor.fget_nodes, Bitxor.fset_nodes ),
-                     insert_after=interp2app(Bitxor.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Bitxor, Node, W_Root]),
-                     insert_before=interp2app(Bitxor.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Bitxor, Node, W_Root]),
+                     insert_after=interp2app(Bitxor.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Bitxor.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Bitxor.typedef.acceptable_as_base_class = False
 
@@ -1902,12 +1902,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -1940,8 +1940,8 @@
                      accept=interp2app(descr_Decorators_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Decorators_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Decorators.fget_nodes, Decorators.fset_nodes ),
-                     insert_after=interp2app(Decorators.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Decorators, Node, W_Root]),
-                     insert_before=interp2app(Decorators.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Decorators, Node, W_Root]),
+                     insert_after=interp2app(Decorators.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Decorators.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Decorators.typedef.acceptable_as_base_class = False
 
@@ -3651,12 +3651,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -3689,8 +3689,8 @@
                      accept=interp2app(descr_List_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_List_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(List.fget_nodes, List.fset_nodes ),
-                     insert_after=interp2app(List.descr_insert_after.im_func, unwrap_spec=[ObjSpace, List, Node, W_Root]),
-                     insert_before=interp2app(List.descr_insert_before.im_func, unwrap_spec=[ObjSpace, List, Node, W_Root]),
+                     insert_after=interp2app(List.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(List.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 List.typedef.acceptable_as_base_class = False
 
@@ -4288,12 +4288,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -4326,8 +4326,8 @@
                      accept=interp2app(descr_Or_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Or_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Or.fget_nodes, Or.fset_nodes ),
-                     insert_after=interp2app(Or.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Or, Node, W_Root]),
-                     insert_before=interp2app(Or.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Or, Node, W_Root]),
+                     insert_after=interp2app(Or.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Or.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Or.typedef.acceptable_as_base_class = False
 
@@ -4475,12 +4475,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -4528,8 +4528,8 @@
                      accept=interp2app(descr_Print_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Print_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Print.fget_nodes, Print.fset_nodes ),
-                     insert_after=interp2app(Print.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Print, Node, W_Root]),
-                     insert_before=interp2app(Print.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Print, Node, W_Root]),
+                     insert_after=interp2app(Print.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Print.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     dest=GetSetProperty(Print.fget_dest, Print.fset_dest ),
                     )
 Print.typedef.acceptable_as_base_class = False
@@ -4572,12 +4572,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -4625,8 +4625,8 @@
                      accept=interp2app(descr_Printnl_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Printnl_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Printnl.fget_nodes, Printnl.fset_nodes ),
-                     insert_after=interp2app(Printnl.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Printnl, Node, W_Root]),
-                     insert_before=interp2app(Printnl.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Printnl, Node, W_Root]),
+                     insert_after=interp2app(Printnl.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Printnl.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     dest=GetSetProperty(Printnl.fget_dest, Printnl.fset_dest ),
                     )
 Printnl.typedef.acceptable_as_base_class = False
@@ -5006,12 +5006,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -5044,8 +5044,8 @@
                      accept=interp2app(descr_Sliceobj_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Sliceobj_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Sliceobj.fget_nodes, Sliceobj.fset_nodes ),
-                     insert_after=interp2app(Sliceobj.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Sliceobj, Node, W_Root]),
-                     insert_before=interp2app(Sliceobj.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Sliceobj, Node, W_Root]),
+                     insert_after=interp2app(Sliceobj.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Sliceobj.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Sliceobj.typedef.acceptable_as_base_class = False
 
@@ -5079,12 +5079,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -5117,8 +5117,8 @@
                      accept=interp2app(descr_Stmt_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Stmt_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Stmt.fget_nodes, Stmt.fset_nodes ),
-                     insert_after=interp2app(Stmt.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Stmt, Node, W_Root]),
-                     insert_before=interp2app(Stmt.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Stmt, Node, W_Root]),
+                     insert_after=interp2app(Stmt.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Stmt.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Stmt.typedef.acceptable_as_base_class = False
 
@@ -5522,12 +5522,12 @@
         del self.nodes[:]
         for w_itm in space.unpackiterable(w_arg):
             self.nodes.append( space.interp_w(Node, w_itm))
-    def descr_insert_after(space, self, node, w_added_nodes):
+    def descr_insert_after(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node) + 1
         self.nodes[index:index] = added_nodes
 
-    def descr_insert_before(space, self, node, w_added_nodes):
+    def descr_insert_before(self, space, node, w_added_nodes):
         added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]
         index = self.nodes.index(node)
         self.nodes[index:index] = added_nodes
@@ -5560,8 +5560,8 @@
                      accept=interp2app(descr_Tuple_accept, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                      mutate=interp2app(descr_Tuple_mutate, unwrap_spec=[ObjSpace, W_Root, W_Root] ),
                     nodes=GetSetProperty(Tuple.fget_nodes, Tuple.fset_nodes ),
-                     insert_after=interp2app(Tuple.descr_insert_after.im_func, unwrap_spec=[ObjSpace, Tuple, Node, W_Root]),
-                     insert_before=interp2app(Tuple.descr_insert_before.im_func, unwrap_spec=[ObjSpace, Tuple, Node, W_Root]),
+                     insert_after=interp2app(Tuple.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root]),
+                     insert_before=interp2app(Tuple.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root]),
                     )
 Tuple.typedef.acceptable_as_base_class = False
 

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/astgen.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/astgen.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/astcompiler/astgen.py	Wed Apr 15 16:43:11 2009
@@ -299,12 +299,12 @@
 
 
     def _gen_insertnodes_func(self, buf):
-        print >> buf, "    def descr_insert_after(space, self, node, w_added_nodes):"
+        print >> buf, "    def descr_insert_after(self, space, node, w_added_nodes):"
         print >> buf, "        added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]"
         print >> buf, "        index = self.nodes.index(node) + 1"
         print >> buf, "        self.nodes[index:index] = added_nodes"
         print >> buf
-        print >> buf, "    def descr_insert_before(space, self, node, w_added_nodes):"
+        print >> buf, "    def descr_insert_before(self, space, node, w_added_nodes):"
         print >> buf, "        added_nodes = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_added_nodes)]"
         print >> buf, "        index = self.nodes.index(node)"
         print >> buf, "        self.nodes[index:index] = added_nodes"
@@ -440,8 +440,8 @@
         for attr in self.argnames:
             print >> buf, "                    %s=GetSetProperty(%s.fget_%s, %s.fset_%s )," % (attr,self.name,attr,self.name,attr)
             if self.argprops[attr] == P_NESTED and attr == "nodes":
-                print >> buf, "                     insert_after=interp2app(%s.descr_insert_after.im_func, unwrap_spec=[ObjSpace, %s, Node, W_Root])," % (self.name, self.name)
-                print >> buf, "                     insert_before=interp2app(%s.descr_insert_before.im_func, unwrap_spec=[ObjSpace, %s, Node, W_Root])," % (self.name, self.name)
+                print >> buf, "                     insert_after=interp2app(%s.descr_insert_after, unwrap_spec=['self', ObjSpace, Node, W_Root])," % (self.name, )
+                print >> buf, "                     insert_before=interp2app(%s.descr_insert_before, unwrap_spec=['self', ObjSpace, Node, W_Root])," % (self.name, )
         print >> buf, "                    )"
         print >> buf, "%s.typedef.acceptable_as_base_class = False" % self.name
 

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/buffer.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/buffer.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/buffer.py	Wed Apr 15 16:43:11 2009
@@ -106,6 +106,7 @@
             str2 = other.as_str()
             return space.wrap(getattr(operator, name)(str1, str2))
         descr__cmp.unwrap_spec = ['self', ObjSpace, W_Root]
+        descr__cmp.func_name = name
         return descr__cmp
 
     descr_eq = _make_descr__cmp('eq')

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/function.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/function.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/function.py	Wed Apr 15 16:43:11 2009
@@ -155,7 +155,7 @@
 
     # unwrapping is done through unwrap_specs in typedef.py
 
-    def descr_method__new__(space, w_subtype, w_code, w_globals, 
+    def descr_function__new__(space, w_subtype, w_code, w_globals, 
                             w_name=None, w_argdefs=None, w_closure=None):
         code = space.interp_w(Code, w_code)
         if not space.is_true(space.isinstance(w_globals, space.w_dict)):
@@ -532,7 +532,7 @@
         self.w_func_dict = func.w_func_dict
         self.w_module = func.w_module
 
-    def descr_method__new__(space, w_subtype, w_func):
+    def descr_builtinfunction__new__(space, w_subtype, w_func):
         func = space.interp_w(Function, w_func)
         bltin = space.allocate_instance(BuiltinFunction, w_subtype)
         BuiltinFunction.__init__(bltin, func)

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/gateway.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/gateway.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/gateway.py	Wed Apr 15 16:43:11 2009
@@ -495,6 +495,9 @@
     _all = {'': None}
 
     def _freeze_(self):
+        if BuiltinCode._all.get(self.identifier, self) is not self:
+            print "builtin code identifier %s used twice: %s and %s" % (
+                self.identifier, self, BuiltinCode._all[self.identifier])
         # we have been seen by other means so rtyping should not choke
         # on us
         BuiltinCode._all[self.identifier] = self
@@ -727,11 +730,13 @@
     # Takes optionally an unwrap_spec, see BuiltinCode
 
     NOT_RPYTHON_ATTRIBUTES = ['_staticdefs']
+
+    instancecache = {}
     
-    def __init__(self, f, app_name=None, unwrap_spec = None,
-                 descrmismatch=None, as_classmethod=False):
+    def __new__(cls, f, app_name=None, unwrap_spec = None,
+                descrmismatch=None, as_classmethod=False):
+
         "NOT_RPYTHON"
-        Wrappable.__init__(self)
         # f must be a function whose name does NOT start with 'app_'
         self_type = None
         if hasattr(f, 'im_func'):
@@ -744,6 +749,18 @@
                 raise ValueError, ("function name %r suspiciously starts "
                                    "with 'app_'" % f.func_name)
             app_name = f.func_name
+
+        if unwrap_spec is not None:
+            unwrap_spec_key = tuple(unwrap_spec)
+        else:
+            unwrap_spec_key = None
+        key = (f, unwrap_spec_key, descrmismatch, as_classmethod)
+        if key in cls.instancecache:
+            result = cls.instancecache[key]
+            assert result.__class__ is cls
+            return result
+        self = Wrappable.__new__(cls)
+        cls.instancecache[key] = self
         self._code = BuiltinCode(f, unwrap_spec=unwrap_spec,
                                  self_type = self_type,
                                  descrmismatch=descrmismatch)
@@ -751,6 +768,7 @@
         self.name = app_name
         self.as_classmethod = as_classmethod
         self._staticdefs = list(f.func_defaults or ())
+        return self
 
     def _getdefaults(self, space):
         "NOT_RPYTHON"

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/test/test_gateway.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/test/test_gateway.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/test/test_gateway.py	Wed Apr 15 16:43:11 2009
@@ -161,6 +161,8 @@
         def g(space, b):
             return space.wrap(b)
         app_g = gateway.interp2app(g, unwrap_spec=[gateway.ObjSpace, bool])
+        app_g2 = gateway.interp2app(g, unwrap_spec=[gateway.ObjSpace, bool])
+        assert app_g is app_g2
         w_app_g = space.wrap(app_g)
         assert self.space.eq_w(space.call_function(w_app_g, space.wrap(True)),
                                space.wrap(True))
@@ -172,6 +174,9 @@
             return space.wrap(x * 6)
         app_g = gateway.interp2app(g, unwrap_spec=[gateway.ObjSpace,
                                                    'nonnegint'])
+        app_g2 = gateway.interp2app(g, unwrap_spec=[gateway.ObjSpace,
+                                                   'nonnegint'])
+        assert app_g is app_g2
         w_app_g = space.wrap(app_g)
         assert self.space.eq_w(space.call_function(w_app_g, space.wrap(7)),
                                space.wrap(42))

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/typedef.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/typedef.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/interpreter/typedef.py	Wed Apr 15 16:43:11 2009
@@ -752,7 +752,7 @@
 getset_func_dict = GetSetProperty(descr_get_dict, descr_set_dict, cls=Function)
 
 Function.typedef = TypeDef("function",
-    __new__ = interp2app(Function.descr_method__new__.im_func),
+    __new__ = interp2app(Function.descr_function__new__.im_func),
     __call__ = interp2app(Function.descr_function_call,
                           unwrap_spec=['self', Arguments],
                           descrmismatch='__call__'),
@@ -843,7 +843,7 @@
     return None
 BuiltinFunction.typedef = TypeDef("builtin_function",**Function.typedef.rawdict)
 BuiltinFunction.typedef.rawdict.update({
-    '__new__': interp2app(BuiltinFunction.descr_method__new__.im_func),
+    '__new__': interp2app(BuiltinFunction.descr_builtinfunction__new__.im_func),
     '__self__': GetSetProperty(always_none, cls=BuiltinFunction),
     '__repr__': interp2app(BuiltinFunction.descr_function_repr),
     })

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/__builtin__/interp_classobj.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/__builtin__/interp_classobj.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/__builtin__/interp_classobj.py	Wed Apr 15 16:43:11 2009
@@ -226,6 +226,7 @@
     def unaryop(self, space):
         w_meth = self.getattr(space, space.wrap(name), True)
         return space.call_function(w_meth)
+    unaryop.func_name = name
     return unaryop
 
 def make_binary_returning_notimplemented_instance_method(name):
@@ -240,6 +241,7 @@
             if w_meth is None:
                 return space.w_NotImplemented
             return space.call_function(w_meth, w_other)
+    binaryop.func_name = name
     return binaryop
 
 def make_binary_instance_method(name):
@@ -261,6 +263,7 @@
             return space.call_function(w_meth, w_b)
         else:
             return getattr(space, objspacename)(w_a, w_b)
+    binaryop.func_name = name
 
     def rbinaryop(self, space, w_other):
         w_a, w_b = _coerce_helper(space, self, w_other)
@@ -271,6 +274,7 @@
             return space.call_function(w_meth, w_other)
         else:
             return getattr(space, objspacename)(w_b, w_a)
+    rbinaryop.func_name = "r" + name
     return binaryop, rbinaryop
 
 def _coerce_helper(space, w_self, w_other):

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_codecs/interp_codecs.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_codecs/interp_codecs.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_codecs/interp_codecs.py	Wed Apr 15 16:43:11 2009
@@ -211,6 +211,7 @@
         func = getattr(runicode, rname)
         result = func(uni, len(uni), errors, state.encode_error_handler)
         return space.newtuple([space.wrap(result), space.wrap(len(uni))])
+    wrap_encoder.func_name = rname
     wrap_encoder.unwrap_spec = [ObjSpace, unicode, str]
     globals()[name] = wrap_encoder
 
@@ -224,6 +225,7 @@
         result, consumed = func(string, len(string), errors,
                                 final, state.decode_error_handler)
         return space.newtuple([space.wrap(result), space.wrap(consumed)])
+    wrap_decoder.func_name = rname
     wrap_decoder.unwrap_spec = [ObjSpace, 'bufferstr', str, W_Root]
     globals()[name] = wrap_decoder
 

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_weakref/interp__weakref.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_weakref/interp__weakref.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/module/_weakref/interp__weakref.py	Wed Apr 15 16:43:11 2009
@@ -282,6 +282,8 @@
         code += "    w_obj%s = force(space, w_obj%s)\n" % (i, i)
     code += "    return space.%s(%s)" % (opname, nonspaceargs)
     exec py.code.Source(code).compile()
+
+    func.func_name = opname
     for special_method in special_methods:
         proxy_typedef_dict[special_method] = interp2app(
             func, unwrap_spec=[ObjSpace] + [W_Root] * arity)

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/dictproxytype.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/dictproxytype.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/dictproxytype.py	Wed Apr 15 16:43:11 2009
@@ -19,6 +19,7 @@
             raise OperationError(space.w_TypeError,
                                  space.wrap("expected dictproxy"))
         return getattr(space, opname)(w_obj1.w_dict, w_obj2)
+    compare.func_name = "dictproxy_compare_%s" % (opname, )
     return gateway.interp2app(compare)
 
 # ____________________________________________________________

Modified: pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/fake.py
==============================================================================
--- pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/fake.py	(original)
+++ pypy/branch/wip-fix-stackless-O2-pickling/pypy/objspace/std/fake.py	Wed Apr 15 16:43:11 2009
@@ -99,6 +99,7 @@
         w_obj = space.allocate_instance(W_Fake, w_type)
         W_Fake.__init__(w_obj, space, r)
         return w_obj
+    fake__new__.func_name = "fake__new__" + cpy_type.__name__
 
     kw['__new__'] = gateway.interp2app(fake__new__,
                                        unwrap_spec=[baseobjspace.ObjSpace,



More information about the Pypy-commit mailing list