Author: Antonio Cuni <anto.c...@gmail.com> Branch: Changeset: r59121:6df3c512293e Date: 2012-11-29 11:18 +0000 http://bitbucket.org/pypy/pypy/changeset/6df3c512293e/
Log: merge heads diff --git a/pypy/tool/jitlogparser/parser.py b/pypy/tool/jitlogparser/parser.py --- a/pypy/tool/jitlogparser/parser.py +++ b/pypy/tool/jitlogparser/parser.py @@ -1,4 +1,5 @@ import re, sys +import os from pypy.jit.metainterp.resoperation import opname from pypy.jit.tool.oparser import OpParser @@ -160,19 +161,27 @@ if op.name == 'debug_merge_point': self.inline_level = int(op.args[0]) parsed = parse_code_data(op.args[2][1:-1]) - (self.name, self.bytecode_name, self.filename, + (self.name, self.bytecode_name, filename, self.startlineno, self.bytecode_no) = parsed break else: self.inline_level = 0 parsed = parse_code_data(loopname) - (self.name, self.bytecode_name, self.filename, + (self.name, self.bytecode_name, filename, self.startlineno, self.bytecode_no) = parsed + self.filename = self.normalize_filename(filename) self.operations = operations self.storage = storage - self.code = storage.disassemble_code(self.filename, self.startlineno, + self.code = storage.disassemble_code(filename, self.startlineno, self.name) + def normalize_filename(self, filename): + home = os.path.expanduser('~') + os.path.sep + if filename is not None and filename.startswith(home): + filename = filename.replace(home, '~' + os.path.sep) + return filename + + def repr(self): if self.filename is None: return self.bytecode_name diff --git a/pypy/tool/jitlogparser/test/test_parser.py b/pypy/tool/jitlogparser/test/test_parser.py --- a/pypy/tool/jitlogparser/test/test_parser.py +++ b/pypy/tool/jitlogparser/test/test_parser.py @@ -354,3 +354,14 @@ f = Function.from_operations(loop.operations, LoopStorage()) assert f.chunks[-1].filename == 'x.py' assert f.filename is None + +def test_normalize_filename(): + import os.path + abspath = os.path.expanduser('~/foo.py') + ops = parse(''' + [i0] + debug_merge_point(0, 0, "<code object stuff. file '%s'. line 200> #10 ADD") + ''' % abspath) + res = Function.from_operations(ops.operations, LoopStorage()) + assert res.filename == '~/foo.py' + assert res.chunks[0].filename == '~/foo.py' _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit