[pypy-dev] Dependence Graphs in Pypy?

Armin Rigo arigo at tunes.org
Wed Aug 8 21:05:57 CEST 2012


Hi Tim,

An additional remark: if you're looking for a tool that is able to
extract a complete call graph from a random Python program, then it's
impossible.  Only approximations can be done, like e.g. done in
pylint, I believe.

Such tools are pointless in PyPy but could be useful in other
projects.  For example I can imagine a tool that would statically
compile some version of a random Python program, including all
necessary guards to check at run-time that the assumptions made are
correct.  When these guards fail, it would fall back to a regular
interpreter.

The difference with PyPy is that the latter uses a tracing JIT
compiler to do at run-time (partially) the same job as I describe
above.  It does it by observation of the run-time behavior, which is a
rather better estimator of the program's general behavior than a
complex static analysis.  And it dispenses us from writing any such
analysis.  This gives us a result that is not specific to a particular
version of Python (or to Python at all).


A bientôt,

Armin.


More information about the pypy-dev mailing list