[pypy-dev] history of PyPy
lac at strakt.com
Sun Sep 14 10:14:34 CEST 2003
In a message of Sun, 14 Sep 2003 09:32:15 +0200, holger krekel writes:
>[Laura Creighton Sat, Sep 13, 2003 at 04:51:47PM +0200]
>> Holger wrote something about 'how Armin, Christian and Holger
>> started discussing this on the german python mailing list' for
>> the history of the project. I've since lost it. Anybody
>> have that, also the exact dates for the Sprints?
>Here is the posting where i offer to organize the first "Minimal
>Python" sprint which quickly turned into "PyPy". It is a response
>to Christian Tismer who said in a "P.S."  to Gerson Kurz that
>writing "a totally minimzed python" would be quite interesting.
>Christian and me involved Armin (in private mails) in the next weeks
>and we quickly agreed to send out the first sprint announcement and
>invitation to the "Hildesheim" sprint (containing the exact dates):
>Actually, i came to the idea of doing that sprint because i attended
>Zope3 sprints and liked several aspects about them. The problem here
>obviously was that we started out from nothing which is not
>common but proved to be workable.
>hope that helps, if not, ask for more detais.
> Never underestimate the potential of a P.S. :-)
Oh man, this is perfect. They want Agile Methodologies!!!
New paragraph should be something like:
Meanwhile, on the German Python mailing list,
http://starship.python.net/mailman/listinfo/python-de an unrelated
discussion was about to bear fruit. FOOTNOTE:
Here's the mail that started it all,
include full text.
Academically trained Python
programmers were pondering writing an implementation of Python in
itself. This group included Armin Rigo, author of Psyco
http://psyco.sourceforge.net/introduction.html, a specialising
Just-In-Time compiler for Python, and Christian Tismer, author of
Stackless Python, http://www.stackless.com/ an implementation of
Python which does not use the C stack. These people knew and were
interested in doing exactly that as part of the design.
It is useful to quote Armin Rigo, stating the goals of Psyco in full,
from its website:
My goal in programming Psyco is to contribute to reduce the
following wide gap between academic computer science and industrial
While the former develops a number of programming languages
with very cool semantics and features, the latter stick with low-level
languages principally for performance reasons, on the ground that the
higher the level of a language, the slower it is. Althought clearly
justified in practice, this belief is theoretically false, and even
completely inverted --- for large, evolving systems like a whole
operating system and its applications, high-level programming can
deliver much higher performances.
The new class of languages called "dynamic scripting
languages", of which Python is an example, is semantically close to
long-studied languages like Lisp. The constrains behind their designs
are however different: some high-level languages can be relatively
well statically compiled, we can do some type inference, and so on,
whereas with Python it is much harder --- the design goal was
different. We now have powerful machines to stick with interpretation
for a number of applications. This, of course, contributes to the
common belief that high-level languages are terribly slow.
Psyco is both an academic and an industrial project. It is an
academic experiment testing some new techniques in the field of
on-line specialization. It develops an industrially useful
performance benefit for Python. And first of all it is a modest
High-level languages are faster than low-level ones!
FIXME Footnote to: http://psyco.sourceforge.net/introduction.html
PyPy would be a more ambitious step, of course.
Also instrumental was Holger Krekel, at TrillkeGut a (what the heck
do you call it?? in Hildesheim). Holger Krekel was experienced
in one of the latest in Agile Software methodologies, Sprint-driven
development, from his experience in the Zope HOLGER
WRITE ME A PARAGRAPH HERE PLEASE ABOUT WHY THIS IS COOL
This was precisely what the Python Business Forum members had been
looking for. Academics conversant in the latest in compiler theory
who were interested in producing the Python interpreter which they
needed. We began discussing the possibility of collaboration, both
on mailing lists, FIXME list our mailing list and in our first
face-to-face meeting at Hildesheim, Germany Feb 17-23 2003.
We decided to make a prototype to test the proof of concept, and our
ability to work together. We would get together every six weeks in
our own time, and work on the prototype in intense work sessions which
are known as 'Sprints'. FIXME Etymology of Sprint? After the first
Sprint at TrillkeGut in Hildesheim, we held subsequent Sprints at AB
Strakt in Gothenburg, Sweden, and at the University of
Louvain-La-Neuve in Belgium.
By the time the Louvain-La-Neuve Sprint, which was held June 20-24,
ended, the PyPy project had produced a working prototype. There
existed a working interpreter and standard implementation of 90% of
the python types, as well as such language features as nested scopes,
generators and metaclasses. We had begun work on a type inference
engine. Perhaps most importantly, we had the enthusiastic support of
the Python community. Guido van Rossum, author of Python, not only
endorsed the PyPy project, but attended our Louvain-La-Neuve Sprint.
No work had been done on actually Optimising the code, so it ran
FIXME 30,000 times(?) slower than existing Python. But for a
proof of concept, approximately three weeks work total, it was
It was time to look for funding.
More information about the Pypy-dev