The latest development release of PolyJ, on the other hand, is here.
Note: We were calling this project "PJava" for a while, but since there there seems to be another project called PJava out there, we've changed the name to "PolyJava."
PolyJava is an extension to the Java language which implements parametric polymorphism, with a constraint mechanism similar to that used for parameterized types in CLU. We implement these extensions by translating parameterized code into standard Java, which can then be compiled with any Java compiler, and run on a standard JVM.
This project has been fairly well tested, but bugs probably remain. No new features will be added to version 0.2.
We love bug reports, and we need as many testers as we can get. We only ask that you read the documentation below, especially the section on known deficiencies, before reporting your bugs to nickm@mit.edu
The compiler is based on David Engberg's guavac. As currently implemented, our target language is Java, so you'll need to have a Java installation in order to test the compiler.
The current version is 0.2.0b. It fixes a number of bugs in 0.2.0. More bugs are known to exist: we hope to fix these in 0.2.1. 0.2.1 will fix these bugs, and improved on the existing documentation.