CSE 501: Implementation of Programming Languages

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, you need to form your groups, and one person from the group needs to email Craig and Marius with the names of the group members. Once we get your email, we will create a project directory for you, and assign you a group name. The project directories will all be in /projects/instr/06wi/cse501. For example, the first group, cse501a will get the /projects/instr/06wi/cse501/cse501a directory.

Once you have a group name, one of the group members should log onto a Unix machine, and run the following command:
% /cse/courses/cse501/06wi/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 Unix machine or on a Windows machine running Cygwin. Here are the instructions to follow based on which operating system you want to use.

Unix

You can set up your own Vortex tree for Unix machines by running the following:
% /cse/courses/cse501/06wi/bin/cvs-checkout-and-setup <group_name> <user_name>
This will create a directory <user_name> under your group directory. 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 /projects/instr/06wi/cse501/<group_name>/<user_name>/vortex contains the files SETUP-{Vortex,Diesel,Java}.<arch>.done, where <arch> depends on what OS you're running on, e.g. linux.

Now, change your .cshrc (or other appropriate shell initialization file) by adding the following (where you need to change <group_name> and <user_name> as appropriate):
setenv VORTEX_HOME /projects/instr/06wi/cse501/<group_name>/<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

Windows

First, install Cygwin (with at least perl, gcc/g++, tcsh, make, and ssh). Now, you need to choose a directory (in Cygwin) on your Windows machine to install Vortex. Let's call this directory <VORTEX_DIR>. Now you can set up your own Vortex tree on windows by running the following commands in Cygwin:
% setenv CVS_RSH ssh
% cd <VORTEX_DIR>
% cvs -d <user_name>@lagoon.cs.washington.edu:/projects/instr/06wi/cse501/<group_name>/.CVS co vortex
% cd vortex
% setenv VORTEX_HOME <VORTEX_DIR>/vortex
% mkdir $VORTEX_HOME/bin/winnt
% <ftp the file /projects/cecil/bin/winnt/vortex.exe to the file $VORTEX_HOME/bin/winnt/vortex.exe>
% $VORTEX_HOME/bin/shell/SETUP
Then it will checkout a copy of the repository into <VORTEX_DIR>, and 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>/vortex contains the files SETUP-{Vortex,Diesel,Java}.winnt.done.

Now, change your .cshrc (or other appropriate shell initialization file) by adding the following (where you need to change <group_name> and <user_name> as appropriate):
setenv CVS_RSH ssh
setenv VORTEX_HOME <VORTEX_DIR>/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:
% /cse/courses/cse501/06wi/bin/cvs-import-latest <group_name>
Then each person from the group should run:
% cd /projects/instr/06wi/cse501/<group_name>/<user_name>/vortex
% cvs update -d -P