[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