[pypy-svn] r30341 - pypy/dist/pypy/translator/cli
antocuni at codespeak.net
antocuni at codespeak.net
Sat Jul 22 00:17:45 CEST 2006
Author: antocuni
Date: Sat Jul 22 00:17:40 2006
New Revision: 30341
Modified:
pypy/dist/pypy/translator/cli/database.py
pypy/dist/pypy/translator/cli/ilgenerator.py
Log:
Added the possibility of inserting debug messages during constants
initialization.
Modified: pypy/dist/pypy/translator/cli/database.py
==============================================================================
--- pypy/dist/pypy/translator/cli/database.py (original)
+++ pypy/dist/pypy/translator/cli/database.py Sat Jul 22 00:17:40 2006
@@ -17,6 +17,8 @@
except NameError:
from sets import Set as set
+DEBUG_CONST_INIT = False
+
CONST_NAMESPACE = 'pypy.runtime'
CONST_CLASS = 'Constants'
@@ -178,16 +180,20 @@
# this point we have collected all constant we
# need. Instantiate&initialize them.
+ ilasm.stderr('CONST: instantiating', DEBUG_CONST_INIT)
for const in self.consts.itervalues():
type_ = const.get_type()
const.instantiate(ilasm)
ilasm.store_static_constant(type_, CONST_NAMESPACE, CONST_CLASS, const.name)
+ ilasm.stderr('CONST: instantiated', DEBUG_CONST_INIT)
- for const in self.consts.itervalues():
+ for i, const in enumerate(self.consts.itervalues()):
+ ilasm.stderr('CONST: initializing #%d' % i, DEBUG_CONST_INIT)
type_ = const.get_type()
ilasm.load_static_constant(type_, CONST_NAMESPACE, CONST_CLASS, const.name)
const.init(ilasm)
+ ilasm.stderr('CONST: initialization completed', DEBUG_CONST_INIT)
ilasm.ret()
ilasm.end_function()
Modified: pypy/dist/pypy/translator/cli/ilgenerator.py
==============================================================================
--- pypy/dist/pypy/translator/cli/ilgenerator.py (original)
+++ pypy/dist/pypy/translator/cli/ilgenerator.py Sat Jul 22 00:17:40 2006
@@ -209,3 +209,10 @@
def opcode(self, opcode, *args):
self.code.write(opcode + ' ')
self.code.writeline(' '.join(map(str, args)))
+
+ def stderr(self, msg, cond=True):
+ from pypy.translator.cli.support import string_literal
+ if cond:
+ self.call('class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()')
+ self.opcode('ldstr', string_literal(msg))
+ self.call_method('void class [mscorlib]System.IO.TextWriter::WriteLine(string)', virtual=True)
More information about the Pypy-commit
mailing list