[net.micro.cbm] Review of Pro-Line C compiler

rbm@sftri.UUCP (R.B.Murray) (04/19/85)

I just bought "C POWER", the C compiler for the C-64 by B. Hilchie, sold
by Pro-Line Software in Ontario.  I'm pleased to find that it's for real.
(I have no connection whatsoever with the author or publishers.)
I ordered over the phone (416-273-6350) and it arrived in four days
via airmail (!).

The compiler comes on a two-sided floppy. Side one has the compiler, linker,
editors, and a mini-shell.  The shell has rm, mv, cp, cc, link, ls, and
a couple of other utilities.  This is nice to have just by itself.
	There are two editors. "ed" is a screen editor (not like unix(TM)'s "ed"
at all.)  It is fairly simple but quite useful, with vertical and horizontal
scrolling (lines can be well over 100 characters wide.)  I never use it, however;
I use "ced", which is just like "ed"  except that it has a C syntax checker
(and takes longer to load.)  This lets me weed out the syntax errors before
I have to load the compiler proper.
	The implementation is remarkably complete. You can't initialize static
structures;  There are no bitfields (no great loss);
and tabs are not recognized.  
	Side two of the disk has the libraries on it.  There are are lot of functions
supplied, including most of the everyday ones (including such goodies as
malloc, qsort, setjmp/longjmp.) A man page is supplied for each function.

	There are a few drawbacks, however.  If you only have one disk drive,
to compile you must:
	load the compiler disk to run "cc";
	swap to the source disk to let the compiler read your source (you can't	
	put the source on the compiler disk, its write protected);
	swap back to the compiler disk to continue compiling;
	swap to the source disk to write the dot-o;
	Run the linker, which reads the dot-o;
	swap in the flip side of the compiler disk, which reads the libraries;
	swap back to the source disk to write the executable.

This is not the case if you have two drives; you can tell the shell which drive
has the compiler and which has the source. You probably still have to swap in the
library disk when linking, though.
	
The only component which loads slowly enough to be annoying is the compiler itself.
I haven't timed it, but I guess it takes on the order of 45 seconds to get started.
It scans the source at about 180 lines per minute.  Creating the dot-o 
takes another 30 seconds or so for a short program.
Linking is very fast (~10 seconds for a short file, ~20 seconds for the libraries.)
All of this means that an edit-compile-link-run iteration takes 5 minutes or so
and a lot of disk shuffling (get me that other drive!).  However, this is the first
real language I have found for the c64. The generated code sure is fast!
	One other complaint- the compiler is not very tolerant of disk errors.
When using it with my badly aligned drive, I had problems ranging from
hanging to mysterious error messages ("Illegal assignment"?)  which went
away when the disk was repaired.
	The manual mentions a bulletin board for users of the compiler, but
the published number does not answer.  As this is a new product, I assume the
bbs is not set up yet.
	Overall, an excellent piece of software. I plan to do all my programming
in C from here on in.
						Rob Murray

(TM) UNIX is a trademark of AT&T Bell Laboratories.