Cool is built entirely on public domain tools; it generates code for a MIPS simulator, spim . Thus, the project should port easily to other platforms. The project has been used for teaching compilers at many institutions and the software is stable.
The complete Cool distribution includes the manual, source and makefiles for the compiler, source and makefiles for each of the assignments, and regression tests. Instructors can obtain the complete distribution by sending mail to aiken@cs.berkeley.edu.
Student distributions are available below for several different architectures. These distributions include object code for the coolc reference compiler, assignments, and all documentation. The only components omitted are source for the reference compiler and the regression tests.
A longer description of the Cool compiler project is available, as are lecture notes from a course that used Cool. If you just want a quick look at the manual, click here. Finally, if you are having problems using or implementing Cool, check the Cool faq.
Distributions are available for the following architecture/operating system combinations. You will also need the installation notes.
A bug has been isolated in the support code for the third programming assignment. The file cool/assignments/PA3/cool-tree.handcode.h should have another member in the Expression_EXTRAS:
Expression_class() { type = (Symbol) NULL; }
All of the distributions---except for the RS/6000---are now version 1.3. The major changes from previous versions are: the code is now more portable (in particular, problems linking with the GNU 2.7.2 library have been fixed), and the Makefiles have been further parameterized to make the system easier to install using various archivers and linkers. There have also been numerous minor corrections to the documentation, instructions, and assignments. If you have a pre-1.3 system, it is worth upgrading.
The problems listed above have been fixed and a new instructors' version is available. The student distributions will be rebuilt with the changes shortly.
A few lines on pages 16 and 17 of the manual were garbled by an interaction between LaTeX and CVS. This manual is corrected. The changes have not been propagated to the distributions above yet.
There have been some problems compiling the system with compilers other than g++. In particular, the APS package, which is included with the Cool distribution, makes use of some g++ extensions. If you are using g++ there should be no problem. Otherwise, the problems are relatively minor and we are fixing them; an updated release should be available soon.
If you downloaded a student distribution before August 14, you may wish to dowload it again. Several documentation files were inadvertently omitted.
Alex's home page.