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

Reply via email to