[pypy-commit] pypy inline-dict-ops: Add the posibility to specify which categories you're interested in. Use
fijal
noreply at buildbot.pypy.org
Sun Jul 3 19:13:17 CEST 2011
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: inline-dict-ops
Changeset: r45327:143b5e129bca
Date: 2011-07-03 19:20 +0200
http://bitbucket.org/pypy/pypy/changeset/143b5e129bca/
Log: Add the posibility to specify which categories you're interested in.
Use PYPYDEFAULTLOG as an env var
diff --git a/pypy/rlib/debug.py b/pypy/rlib/debug.py
--- a/pypy/rlib/debug.py
+++ b/pypy/rlib/debug.py
@@ -1,6 +1,26 @@
-import sys, time
+import sys, time, os
from pypy.rpython.extregistry import ExtRegistryEntry
+class DebugState(object):
+ def __init__(self):
+ self.prefixes = os.environ.get('PYPYDEFAULTLOG', 'all').split(':')
+ if self.prefixes == ['']:
+ self.prefixes = []
+ self.categories = []
+
+ def should_print(self, category=None):
+ if category is None:
+ category = self.categories[-1]
+ if self.prefixes != ['all']:
+ for prefix in self.prefixes:
+ if category.startswith(prefix):
+ break
+ else:
+ return False
+ return True
+
+debug_state = DebugState() # a global state object
+
def ll_assert(x, msg):
"""After translation to C, this becomes an RPyAssert."""
assert x, msg
@@ -55,6 +75,8 @@
# or compatible
def debug_print(*args):
+ if not debug_state.should_print():
+ return
for arg in args:
print >> sys.stderr, arg,
print >> sys.stderr
@@ -85,18 +107,25 @@
_stop_colors = ""
def debug_start(category):
+ debug_state.categories.append(category)
+ if _log is not None:
+ _log.debug_start(category)
+ if not debug_state.should_print(category):
+ return
c = int(time.clock() * 100)
print >> sys.stderr, '%s[%x] {%s%s' % (_start_colors_1, c,
category, _stop_colors)
+
+def debug_stop(category):
if _log is not None:
- _log.debug_start(category)
-
-def debug_stop(category):
+ _log.debug_stop(category)
+ last = debug_state.categories.pop()
+ assert category == last
+ if not debug_state.should_print(category):
+ return
c = int(time.clock() * 100)
print >> sys.stderr, '%s[%x] %s}%s' % (_start_colors_2, c,
category, _stop_colors)
- if _log is not None:
- _log.debug_stop(category)
class Entry(ExtRegistryEntry):
_about_ = debug_start, debug_stop
More information about the pypy-commit
mailing list