[pypy-dev] LLVM - did we know this?

Armin Rigo arigo at tunes.org
Tue Oct 28 16:33:15 CET 2003


Hello PyPy,

from short IRC discussions on the IRC channels and evaluating
the link that Christian provided (thanks, thanks, thanks!) 
it might make sense to send off the following mail to the
LLVM developers. Comments? 

    Holger, Armin

--- proposed mail ----

Hello Chris,

Luckily your project (LLVM) came to our attention today. Especially
your message here 

http://mail.cs.uiuc.edu/pipermail/llvmdev/2003-October/000501.html

along with the goals and documentation about the project made a
great impression on us.  

This seems like a perfect match for our PyPy project which we started
earlier this year.  It is a reimplementation of Python within Python (as a
good example of a higher level language), aimed at a more flexible,
configurable and performant runtime system.  To produce low
level machine code the architecture currently has four stages:

1) compiling source code into byte code
2) performing symbolic/abstract interpretation and generating an
   intermediate flow-graph representation of the program.
3) (optionally) optimizing the graph 
4) generating low-level C code

When we learned about LLVM, the link was immediately obvious:
the flow-graph representation is exactly like LLVM code. So 
please excuse us, if this mail is a bit over-enthusiatic :-)
LLVM is also a perfect match because it can either agressively
compile statically, or quickly generate code at runtime, which
will be essential to port to PyPy the just-in-time compilation
techniques prototyped in Psyco (http://psyco.sourceforge.net).

Maybe a bit more background what we did or are: 

- we are an international group of individuals collaborating on 
  our free time mostly. We are very involved with open source
  communities and especially the Python communities. 

- During the course of four one-week meetings (which we call development
  "sprints") we have done a rather complete interpreter and can generate 
  some working C or Lisp code already.

- we very recently submitted a funding proposal to the European Union:

    http://codespeak.net/svn/pypy/trunk/doc/funding/proposal/part_b.pdf

  and you may find these two chapters particularly interesting:

    http://codespeak.net/pypy/index.cgi?doc/funding/B1.0_objectives
    http://codespeak.net/pypy/index.cgi?doc/funding/B6.0_detailed

However, we'd be interested in collaborating with your project on
(hopefully) several levels. We will certainly consider contributing a
PowerPC backend. On another level, some of the PyPy core developers are
actually also involved with the 'codespeak' site which aims to connect
interesting open source projects and provide new collaborative services. 

    http://codespeak.net

Also we are extensively using subversion which is a very interesting
(and stable) alternative to cvs. For more info about subversion, see 

    http://svnbook.red-bean.com/book.html#svn-ch-1-sect-1

but we are also interested in innovative and collaborative ways 
of software development, like "sprints".

So if you need any help with setting up some public infrastructure 
the codespeak guys will certainly welcome you.   Feel free to forward
this mail to the LLVM mailing list, btw.  We are just interested in
getting some first contact and enter a productive discussion and 
- who knows - some interesting collaboration! 

A bientot,

    Armin Rigo, Holger Krekel



More information about the Pypy-dev mailing list