CLAS
Richard A. O'Keefe
ok@atlas.otago.ac.nz
Fri, 5 Mar 1999 12:00:23 +1300 (NZDT)
There are a number of typos in the clas.html file:
"qubic" should be "cubic"
"infered" should be "inferred"
"swapes" should be "swaps"
"unifies" should be "uniquifies" (ugh)
Probably others that I missed on a quick scan.
More importantly, this package suggests two principles that should guide
future releases of this and other Clean packages.
1. The distribution should include the documentation.
I did save the clas.html file, _but_ it refers to a bunch of .gif
and other files, so that to view the documentation I _have_ to do
remote accesses which the department is billed for. How much
better if _all_ the files I needed for documentation were there
right in the .tag.gz or .zip file!
2. Because Clean is a layout-sensitive language,
DISTRIBUTED CLEAN SOURCES SHOULD NEVER *EVER* CONTAIN TABS.
I would like to be able to use the *same* source files on my Unix
systems (where tabs are by default and for all practical purposes
immutably set to 8) and on my and my students Mac boxes (where
tabs are whatever Clean wants them to be, is it 3 or 4?).
Ok, so on a Unix box it is easy enough to do
for F in *.?cl ; do
mv $F $F.BAK
pr -t -e4 $F.BAK >$F
done
but it's even easier if the original developer makes sure there are
no tabs in the first place so that NOBODY has to do this. I was
lucky this time, guessing -e4 seems to have worked. But why should
I have to guess?
For what it's worth, I have suggested to the Clean team before that
allowing special header comments like
//charset=iso-latin-1 tabs=4
would help a lot. (Once again, on a UNIX box I have tools to let me
convert from pretty well anything to pretty well anything else, but
it would be a lot easier if I didn't have to guess what the original
character set was.) Well, they have other things to worry about, so
perhaps someone else will have to do it. It'd be awfully handy for
moving Haskell files around too.
Portability of sources and documentation matters a lot to me because
I develop examples on UNIX and MacOS, for students who will be using
them on MacOS, Windows, and Linux. (I also try to write most of my
examples in Clean, Haskell, and SML. Makes life interesting. I've
no intention of asking the Clean team to make their compiler support
any other languages!)