The Cecil Group at the University of Washington's Department of Computer Science and Engineering released version 3.3 of the Vortex compiler infrastructure in February 2006. Vortex is a language-independent optimizing compiler back-end for object-oriented languages. This release includes front-ends for Cecil and Java (front-ends for older versions of Vortex were developed for C++, Smalltalk, and Modula-3, but those front-ends are no longer available).
This release also includes the first release of a Vortex front-end for Diesel, the successor to Cecil currently under development. For new code and for experimentation, we recommend using Diesel over Cecil, since it includes several refinements and additions over Cecil, and Vortex's implementation of typechecking is significantly more complete for Diesel than for Cecil.
A short FAQ on using Cecil and Vortex is also available.
Aside from introducing the Diesel language front-end, this release is primarily a maintenance release, including a number of small bug fixes. It also includes a more robust installation process, which can cope with installation on systems to which our precompiled executables do not successfully port.
If you want just to play around with Cecil, without downloading a full Vortex Cecil release, you can download, uncompress (using gunzip) and unpack (using tar) one of the following stand-alone Cecil interpreter executables. If you want to download some Cecil source code to look at, just download, uncompress, and unpack the Cecil front-end tar file and look in the vortex/Cecil/src directories. (The precompiled Cecil interpreter executables may not be portable from our system to yours. If an executable doesn't work for you, or if a precompiled executable isn't available for your platform, then follow the directions below to download and install the full Vortex and Cecil release.)
If you want just to play around with Diesel, without downloading a full Vortex Diesel release, you can download, uncompress (using gunzip) and unpack (using tar) one of the following stand-alone Diesel interpreter executables. If you want to download some Diesel source code to look at, just download, uncompress, and unpack the Diesel front-end tar file and look in the vortex/Diesel/src directories. (The precompiled Diesel interpreter executables may not be portable from our system to yours. If an executable doesn't work for you, or if a precompiled executable isn't available for your platform, then follow the directions below to download and install the full Vortex and Diesel release.)
To install and configure Vortex, follow these steps (you can also see the license agreement, the main README file, the INSTALL file with the installation instructions, and the manuals without getting the whole distribution):
You need to download (platform-independent) tar files for the basic system infrastructure plus each desired front-end:
You also need to download either tarfiles containing the precompiled Vortex binary for the architecture/OS combination you're using, or pregenerated .c/.h files suitable for the word-size of your platform from which the Vortex binary can be compiled. You can download both, in case the precompiled binary doesn't port from our machine to your machine, and you can download several different versions, if you're planning to run Vortex on multiple architectures.
While we currently only have access to Linux, Windows, and Mac OS X machines, we have successfully built older versions of Vortex and its front-ends on other platforms, including Sparc/SunOS 4.x, Sparc/Solaris 5.5.x, Sparc/Solaris 5.8, PowerPC/AIX, Alpha/OSF1, and HP-PA/HP-UX, and there is support in the current Vortex release for these platforms. Porting Vortex to a new platform is also feasible; see the discussion in notes/INSTALL.
Note: On x86/Linux and x86/Cygwin systems, we have compiled our code successfully using gcc-3.3.x and gcc-4.0.x, but the optimizer in gcc-3.4.x seems to break on our code.
To run Vortex, Cecil, or Diesel on Windows, you need to install the Cygwin tools first, including (for Vortex) at least gcc/g++, make, tcsh, and perl, and setting the default text file type to Unix instead of DOS. Note: WinZip converts some newline endings in scripts to cr/nl sequences, which sometimes breaks tcsh. So instead of using WinZip to extract the tar file, save the tar files and use the cygwin tar command to unpack the tar file. If you don't do this, you'll likely get an error when you try to run SETUP to create any needed script wrappers.)
You can browse the various Cecil/Diesel/Vortex manuals without downloading the entire release. (The postscript files for the first two manuals are included in the release files for the common parts of the Vortex infrastructure; the next two manuals come with the Cecil front-end; the last two manuals come with the Diesel front-end.)
You can browse some (old) experimental results for Cecil, Java, and C++.
To receive information about the status of Vortex, bug fixes, etc., you can subscribe to a Cecil/Diesel/Vortex interest mailing list (it is a very low volume list, and spammers don't abuse it since only subscribers can post to it). See the instructions here.
Bug reports can be emailed here.
For more information, check out our home page. We would be glad to hear about your experiences with Cecil, Diesel, and Vortex!