Author: Richard Plangger <[email protected]>
Branch: vmprof-native
Changeset: r90017:b3fd68be4074
Date: 2017-02-09 11:12 +0100
http://bitbucket.org/pypy/pypy/changeset/b3fd68be4074/
Log: check to not register more than one entry in _code_classes
diff --git a/rpython/rlib/rvmprof/rvmprof.py b/rpython/rlib/rvmprof/rvmprof.py
--- a/rpython/rlib/rvmprof/rvmprof.py
+++ b/rpython/rlib/rvmprof/rvmprof.py
@@ -94,6 +94,10 @@
"""
if CodeClass in self._code_classes:
return
+ assert len(self._code_classes) == 0, \
+ "native profiling currently prohibits " \
+ "to have more than one code class. see comment "\
+ "in vmprof_execute_code for details"
CodeClass._vmprof_unique_id = 0 # default value: "unknown"
immut = CodeClass.__dict__.get('_immutable_fields_', [])
CodeClass._immutable_fields_ = list(immut) + ['_vmprof_unique_id']
@@ -180,8 +184,9 @@
'result_class' is ignored (backward compatibility).
NOTE Native profiling: this function can only be called once during
- translation. To remove this restriction, one needs to extend the macro
- IS_VMPROF_EVAL in the repo vmprof/vmprof-python.git.
+ translation. It would require the macro IS_VMPROF_EVAL to check
+ the IP agains several (not one) symbols. The current symbol is called
+ __vmprof_eval_vmprof.
"""
if _hack_update_stack_untranslated:
from rpython.rtyper.annlowlevel import llhelper
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit