The Cecil Group at the University of Washington's Department of Computer Science and Engineering has released version 2.0 of the Vortex compiler. Vortex is a language-independent optimizing compiler back-end for object-oriented languages; this release includes front ends for Cecil, Java, and C++. A Modula-3 front end has also been developed. More information about the compilation technology utilized by Vortex can be found in a number of the papers published by Cecil group members (in particular, an overview of Vortex and a more detailed description).
WARNING: Vortex is a large, resource-hungry beast, intended as a base for research into compiler organization and optimization rather than fast, compact compilation. As one data point, invoking Vortex with full optimizations to compile the Vortex compiler itself (~85K lines of Cecil) from scratch requires ~96-128MB of main memory and several hours of CPU time. On the other hand, compiling a small program without optimization takes only ~20MB of main memory and a minute or two of CPU time, using separately-compiled shared Cecil libraries. Such programs can also be equipped with an interpreter interface that lets new method implementations be patched into a running program without even restarting execution.
You can see copies of the license agreement and the main README file without getting the whole distribution. Compressed (via gzip) tar files containing Vortex 2.0 are currently available for the following architecture/OS combinations:
To port Vortex to a new architecture/OS combination, you'll need to get one of the following tar files (depending on the pointer size supported by your OS):Bug reports can be sent to cecil-bugs. Please include an exact description of the problem and a short program reproducing the bug.