Author: Antonio Cuni <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit