Several notes about homework submissions:
Do not put spaces in your filenames.
Write memos in the HTML format specified in project 2.
Limit your README to 80 columns a line, please.
You may make only limited assumptions about the environment in
which we will run your programs, including
run-tests scripts. You may assume only the
You may also assume an appropriate setting for
This has three consequences. First, if you need some other setting in your environment (which is unlikely given the nature of the project and the languages most of you are using), you must set those environment variables directly within your scripts.
Second, if you use a compiler or runtime that's not in the
above PATH, you must adjust your scripts accordingly. You may
either set the
PATH variable in those scripts, or
you may specify absolute paths for compilers, etc. (In
particular, if you need Java 5, you must arrange for the
scripts to use
/arch/beta/bin, not out
DISPLAY variable, so no GUIs. If we
ask you to write a GUI at some point, we'll explicitly relax
To test your setup, run your scripts as follows:
/usr/bin/env -i PATH=/arch/unix/bin:/usr/X11R6/bin:/usr/bin:/bin TERM=$TERM ./compile
Along the lines of the following item, you may assume that we
will run your scripts from within the top-level directory of
your submission (that is, from
turnin/ProjectN, the directory that is
supposed to contain the scripts). Of course, you shouldn't
make any assumptions about what that directory
is named, as we'll almost certainly check it out with
a different name when we grade. (Grading twenty-five different
directories all named
Project3 doesn't work so
On a related note: do not use absolute paths to refer to parts of your submission.
As some of you have learned, the different end-of-line
conventions can cause problems with cross-platform portability.
Fortunately, Subversion can help with this. For plain text
files, including and especially
run-tests scripts, you need to set
svn:eol-style property correctly. We haven't
talked about properties, but here's how you do this:
wheresvn propset svn:eol-style native README
READMEis the name of the file to be set. As with other SVN commands, you may supply multiple file arguments. Like any other change, this has to be committed. See the SVN book (
svn:eol-style) for more details on what's going on here.
There is a way to automate this process so that, for example,
*.java files are automatically set to a native
eol-style. If you're interested, see Richard.
If you check in your
compile script under
Windows, it won't automatically be executable when you (or we)
check it out under Solaris. To fix this, do the following:
and commit the change. (You can actually use any value in place of "svn propset svn:executable x compile run run-tests
x"; the important thing is that the property actually have a value.)