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
the compile
, run
,
and run-tests
scripts. You may assume only the
following
variable:
PATH=/arch/unix/bin:/usr/X11R6/bin:/usr/bin:/bin
You may also assume an appropriate setting
for TERM
.
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 javac
and java
out
of /arch/beta/bin
, not out
of /usr/bin
.)
Third: no DISPLAY
variable, so no GUIs. If we
ask you to write a GUI at some point, we'll explicitly relax
this restriction.
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
within 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
well.)
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
the compile
, run
,
and run-tests
scripts, you need to set
the 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
README
is 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
(propset
, svn:eol-style
)
for more details on what's going on here.
There is a way to automate this process so that, for example,
all *.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.)