[pypy-dev] unladen/swallow, pyjs+pyv8, pyjs+python-spidermonkey: accessing c python modules from optimised python compilers

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sun Apr 5 20:10:28 CEST 2009


i thought you might like to know that discussions which i believe may
be of benefit to pypy are underway.  you will have heard of
unladen/swallow, an effort to replace the stack machine of
http://python.org with a LLVM JIT compiler.  you may also have heard
of the experiments to combine http://pyjs.org with
http://code.google.com/p/pyv8 and also of the experiment to combine
http://pyjs.org with python-spidermonkey.

the "fly in the ointment" is that for "full" optimisation to occur, it
is necessary to "break out" from the prison that intobject.c,
longobject.c etc. make.

once this prison is opened, by turning the hard-coded python types
into a more flexible and dynamically-overridable architecture, you
(the pypy developers) will be free to write modules that will allow
interoperability between [admittedly recompiled] c-based python
modules, with no effort [other than recompilation] required on the
part of the users.

if you believe that this is something that would be of benefit to
pypy, you should consider participating in the discussion and design
of the dynamic architecture which will allow _all_ the "python
optimisers" to be free of the restrictions imposed by the "original"
c-based python implementation.

the google engineers of unladen/swallow have absolutely no qualms
about making, and maintaining, a fork of the "original"
http://python.org and so it will be a simple matter to tell pypy users
"yes, go get the version of python unladen/swallow, recompile your
c-based module and then pypy will be able to talk to your c-based
module, unmodified."


More information about the Pypy-dev mailing list