CSE 231: Advanced Compilers

Course Project Set-Up Instructions


We will be using CVS and some locally-developed scripts to manage distribution and updating of the course project infrastructure. Each group will create a group-shared CVS repository holding the project software, and each group member will check out their own copy of the group software to work on, using CVS to coordinate among group members. If there are bug fixes that we wish to provide you with, our scripts will allow you to integrate our updates with your own changes via the CVS repository.

The following instructions tell you how to get set-up initially, and how to update your CVS repository if we provide any bug fixes or skeleton code.


Group set-up

First, each group will be assigned a group directory in /net/cs/class/fa06/cse231. For example, the first group will get the /net/cs/class/fa06/cse231/group01 directory.

Once you have a group name, one of the group members should log onto a Linux machine (eg: csegrad.ucsd.edu), and run the following command:
% /net/cs/class/fa06/cse231/common/bin/cvs-initial-import <group_name>
This will create a CVS repository in the directory .CVS under your group directory, and import the initial project software distribution into it.

Individual set-up

Each group member will need to check-out a copy of the CVS repository. You can do this either on a Linux machine or on a Windows machine running Cygwin (with at least perl, gcc/g++, tcsh, make, and ssh). The instructions on how to do this are the same, regardless of the operating system you use.

First, make sure to not use gcc-3.4.x. Use gcc-3.3.x or gcc-4.0.x

Now, set the environment variable CVS_RSH to be the value ssh. For the purposes of running Vortex, you need to use csh or tcsh. Other shells are mostly supported, but there are small bugs with their support in Vortex, and so it's better not to use them for now. So, to get CVS_RSH to be ssh, just add the following to your .cshrc:

setenv CVS_RSH ssh
Copy the file /net/cs/class/fa06/cse231/common/bin/cvs-checkout-and-setup to the computer you want to use. Edit this file so that the first line of the script points to csh.

Pick a directory where you want to install Vortex, call it <VORTEX_DIR>. If you're having trouble finding disk space for this, you can always use your group directory as <VORTEX_DIR> (but then you have to run on a machine where the group directory is mounted). Change to the <VORTEX_DIR> directory, and run the above script in the following way:

% cvs-checkout-and-setup <group_name> <user_name>
If everything goes well, you will be asked for your password twice. The script will create a directory <VORTEX_DIR>/<user_name>. Then it will check out a copy of the repository into this directory, and finally call the Vortex SETUP script to set things up (which takes a while to run). You are successfully set-up if the directory <VORTEX_DIR>/<user_name>/vortex contains the files SETUP-{Vortex,Diesel,Rhodium}.<arch>.done, where <arch> depends on what OS you're running on, e.g. linux.

Now, change your .cshrc by adding the following:
setenv VORTEX_HOME <VORTEX_DIR>/<user_name>/vortex
if (-f ${VORTEX_HOME}/bin/shell/vortex.cshrc) then
   source ${VORTEX_HOME}/bin/shell/vortex.cshrc
else

   setenv VORTEX_ARCH unknown
endif

Code updates

As we fix bugs or add new functionality to Whirlwind, we will make new releases available. Each time we fix something, we will send an email out to the class mailing list.

In order to update to the latest version, one person from each group needs to run the following on csegrad.ucsd.edu:
% /net/cs/class/fa06/cse231/common/bin/cvs-import-latest <group_name>
Then each person from the group should run the following on the machine they used to install Vortex:
% cd $VORTEX_HOME
% cvs update -d -P