[pypy-svn] r19176 - pypy/dist/pypy/doc

arigo at codespeak.net arigo at codespeak.net
Sun Oct 30 11:02:37 CET 2005


Author: arigo
Date: Sun Oct 30 11:02:34 2005
New Revision: 19176

Modified:
   pypy/dist/pypy/doc/draft-dynamic-language-translation.txt
Log:
Hand-waving about complexity.


Modified: pypy/dist/pypy/doc/draft-dynamic-language-translation.txt
==============================================================================
--- pypy/dist/pypy/doc/draft-dynamic-language-translation.txt	(original)
+++ pypy/dist/pypy/doc/draft-dynamic-language-translation.txt	Sun Oct 30 11:02:34 2005
@@ -1662,7 +1662,6 @@
        (bs,Es) ) = (bs,Es)`` we conclude that ``(v~w) in Es``.
 
 
-
 Complexity
 **********
 
@@ -1680,8 +1679,23 @@
 to prove that there is no infinite ascending chain, which is enough to
 guarantee termination.
 
-Additionally, an important property of ``lookup_filter`` is to be
-monotonic: XXX
+We will not present a formal bound on the complexity of the algorithm.
+Worst-case senarios would expose severe theoretical problems.  In
+practice, these senarios are unlikely.  Empirically, when annotating a
+large program like PyPy consisting of some 20'000 basic blocks from
+4'000 functions, the whole annotation process finishes in 5 minutes on a
+modern computer.  This suggests that our approach scales quite well.  We
+also measured how many times each rule is re-applied; the results change
+from run to run due to the non-deterministic nature of the meta-rule --
+we pick a random next rule to apply at each step -- but seems to be
+consistently between 20 and 40, which suggests an ``n log(n)`` practical
+complexity.
+
+Moreover, we will have to explore modular annotation in the near future
+for other reasons -- to make the compiled PyPy interpreter modular,
+which is an important strength of CPython.  We plan to do this by
+imposing the annotations at selected interface boundaries and annotating
+each part independently.
 
 
 Non-static aspects



More information about the Pypy-commit mailing list