Author: Mark Pearse <[email protected]>
Branch: SpecialisedTuples
Changeset: r49098:d693552c9046
Date: 2011-11-06 11:30 +0100
http://bitbucket.org/pypy/pypy/changeset/d693552c9046/

Log:    (mwp) create Classes for float-float and str-str specialisations

diff --git a/pypy/objspace/std/specialisedtupleobject.py 
b/pypy/objspace/std/specialisedtupleobject.py
--- a/pypy/objspace/std/specialisedtupleobject.py
+++ b/pypy/objspace/std/specialisedtupleobject.py
@@ -23,6 +23,14 @@
                 val0 = space.int_w(w_item0)
                 val1 = space.int_w(w_item1)
                 return W_SpecialisedTupleObjectIntInt(space, val0, val1)
+        if space.type(w_item0) == space.w_float and space.type(w_item1) == 
space.w_float:
+                val0 = space.float_w(w_item0)
+                val1 = space.float_w(w_item1)
+                return W_SpecialisedTupleObjectFloatFloat(space, val0, val1)
+        if space.type(w_item0) == space.w_str and space.type(w_item1) == 
space.w_str:
+                val0 = space.str_w(w_item0)
+                val1 = space.str_w(w_item1)
+                return W_SpecialisedTupleObjectStrStr(space, val0, val1)
     raise NotSpecialised                        
 
 class W_SpecialisedTupleObject(W_Object):
@@ -98,8 +106,10 @@
     return cls
     
     
-W_SpecialisedTupleObjectIntInt = 
make_specialised_class('W_SpecialisedTupleObjectIntInt', int,int)
-    
+W_SpecialisedTupleObjectIntInt     = 
make_specialised_class('W_SpecialisedTupleObjectIntInt',     int,int)
+W_SpecialisedTupleObjectFloatFloat = 
make_specialised_class('W_SpecialisedTupleObjectFloatFloat', float,float)
+W_SpecialisedTupleObjectStrStr     = 
make_specialised_class('W_SpecialisedTupleObjectStrStr',     str, str)
+
 registerimplementation(W_SpecialisedTupleObject)
 
 def delegate_SpecialisedTuple2Tuple(space, w_specialised):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to