[pypy-svn] r53386 - in pypy/branch/less-meta-instances/pypy: rpython/ootypesystem translator/cli translator/cli/test

antocuni at codespeak.net antocuni at codespeak.net
Sat Apr 5 14:08:21 CEST 2008


Author: antocuni
Date: Sat Apr  5 14:08:20 2008
New Revision: 53386

Modified:
   pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/ootype.py
   pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/rootype.py
   pypy/branch/less-meta-instances/pypy/translator/cli/database.py
   pypy/branch/less-meta-instances/pypy/translator/cli/test/runtest.py
Log:
fix the exceptiontransformer for ootype and cli



Modified: pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/ootype.py
==============================================================================
--- pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/ootype.py	(original)
+++ pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/ootype.py	Sat Apr  5 14:08:20 2008
@@ -47,7 +47,10 @@
 
     def _defl(self):
         return nullruntimeclass
-    
+
+    def _example(self):
+        return _class(ROOT)
+
 Class = Class()
 
 class Instance(OOType):
@@ -780,6 +783,7 @@
         self._INSTANCE = INSTANCE
 
 nullruntimeclass = _class(None)
+Class._null = nullruntimeclass
 
 class _instance(object):
     

Modified: pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/rootype.py
==============================================================================
--- pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/rootype.py	(original)
+++ pypy/branch/less-meta-instances/pypy/rpython/ootypesystem/rootype.py	Sat Apr  5 14:08:20 2008
@@ -32,6 +32,11 @@
 
 class OOClassRepr(Repr):
     lowleveltype = Class
+
+    def rtype_is_true(self, hop):
+        vlist = hop.inputargs(self)
+        return hop.genop('oononnull', vlist, resulttype=ootype.Bool)
+    
 ooclass_repr = OOClassRepr()
 
 class OOInstanceRepr(Repr):

Modified: pypy/branch/less-meta-instances/pypy/translator/cli/database.py
==============================================================================
--- pypy/branch/less-meta-instances/pypy/translator/cli/database.py	(original)
+++ pypy/branch/less-meta-instances/pypy/translator/cli/database.py	Sat Apr  5 14:08:20 2008
@@ -7,9 +7,9 @@
 from pypy.translator.cli.comparer import EqualityComparer
 from pypy.translator.cli.node import Node
 from pypy.translator.cli.support import string_literal, Counter
+from pypy.translator.cli.cts import types
 from pypy.rpython.ootypesystem import ootype
 from pypy.rpython.ootypesystem.module import ll_os
-from pypy.translator.cli.opcodes import opcodes
 from pypy.translator.cli import dotnet
 from pypy.rlib.objectmodel import CDefinedIntSymbolic
 from pypy.translator.oosupport.database import Database as OODatabase
@@ -130,6 +130,8 @@
         return name
 
     def class_name(self, INSTANCE):
+        if INSTANCE is ootype.ROOT:
+            return types.object.classname()
         try:
             NATIVE_INSTANCE = INSTANCE._hints['NATIVE_INSTANCE']
             return NATIVE_INSTANCE._name

Modified: pypy/branch/less-meta-instances/pypy/translator/cli/test/runtest.py
==============================================================================
--- pypy/branch/less-meta-instances/pypy/translator/cli/test/runtest.py	(original)
+++ pypy/branch/less-meta-instances/pypy/translator/cli/test/runtest.py	Sat Apr  5 14:08:20 2008
@@ -100,7 +100,7 @@
             if hasattr(self.db, 'exceptiontransformer'):
                 ilasm.opcode('call', 'bool rpyexc_occured()')
                 ilasm.opcode('brfalse', 'print_result') # no exceptions
-                ilasm.opcode('call', 'Object rpyexc_fetch_value()')
+                ilasm.opcode('call', '[mscorlib]System.Object rpyexc_fetch_value()')
                 ilasm.call('string class [pypylib]pypy.test.Result::FormatException(object)')
                 ilasm.call('void class [mscorlib]System.Console::WriteLine(string)')
                 ilasm.opcode('br', 'return')


More information about the pypy-svn mailing list