PyPy wins a funding contract with the EU

PyPy aims at producing a simple runtime-system for the Python language,

Our primary Scientific objective is to investigate novel techniques (based on Aspect-Oriented-Programming code generation and abstract interpretation) for the implementation of practical dynamic languages, breaking the compromise between flexibility, simplicity and performance trade-offs and expanding the range (small-to-large) of directly supportable runtime platforms.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Type inference as well

AOP and codegen seem to be very popular, but why don't they advertise other great features, and hide them in the architectural docs:
...the annotator which performs type inference on the flow graph...
Is type inference a standard feature of abstract interpretation?

[on edit: well, it is not hidden. in fact, "Summary and Objectives" seems to be the only document without "type inference" in it, which is probably ok]

I suggest reading architecture document, especially the part discussing RPython:

RPython code is restricted in such a way that the translator is able to compile low-level typed code. How much dynamism we allow in RPython depends, and is restricted by, the Flow Object Space and the Annotator implementation. The more we can improve this translation phase, the more dynamism we can allow. In some cases, however, it will probably be more feasible and practical to just get rid of some of the dynamism we use in our interpreter level code. It is mainly because of this trade-off situation that we don't currently try to formally define 'RPython'.

For some reason PreScheme comes to mind...

VLISP PreScheme

I actually meant the VLISP PreScheme, though Scheme48 was the first to introduce the concept:
Pre-Scheme is a statically typed dialect of Scheme that gives the programmer the efficiency and lowlevel machine access of C while retaining many of the desirable features of Scheme. The PreScheme compiler makes use of type inference, partial evaluation and Scheme and Lisp compiler technology to compile the problematic features of Scheme, such as closures, into C code without significant run-time overhead.

Oh, googling PyPy and PreScheme gave some results...