[unix-pc.general] All the gnu stuff

alex@umbc3.UMD.EDU (Alex S. Crain) (09/20/88)

	Brant Cheiks (Hope thats spelled right) asked for the status
of all the GNU stuff, so I checked around. this information is as
accurate is I could make it.

	BISON/GNUMAKE/GNUGREP, etc: These work as advertised. I think
that Bison generates better compilers then yacc, but I'm not sure.
last I heard, gnumake was moving towards compatability with system 5
make, so there's probably no gain there. I remember hearing thta
gnugrep was significantly faster then bsd or sysV grep, but again, I'm
not sure.

	GNUCHESS: beats me every time :-). Still no graphics support
for the 3b1, although they include bitmaps for all the pieces with the
distribution.

	GCC: The compiler works very well and is complete as of 1.26.
1.27 was released with bugs unrelated to the unixpc, (Shame, shame,
rms), they were corrected in a hurry, and 1.28 was released shortly
thereafter. gcc still (and always will) irritate a bug in /lib/cpp, so
boostrapping is a pain. Once you have a running gcc, though, just type
'make'. gcc uses the 3b1 assembly format, with sdb style debugging
info.

	gcc offers a couple of advantaged over /bin/cc. It is true
ANSI-C, with all that that impies (function prototypes, volitile,
etc), with some non-ANSI extensions, such as inline functions, etc.

	gcc supports optional 16bit default ints (-mshort).
Unfortunately, the librarys do not, but its nice to know. There are
also some other machine dependant switches like -momit-frame-pointer,
which are fun to play with, if nothing else.

	With the exception of the gnulib math routines, gcc produces
much better code than /bin/cc. Since gnulib is produced by /bin/cc, it
contains a fair bit of overhead. It would be trivial, however, to tune
gnulib to the point where it was nearly as good as the stock librarys.
In fact I did it, but never finished it.

	There arn't many bugs in /bin/cc, but they are there. I am not
aware of any bugs in gcc, which I use very regularly. sdb support is
still very new, but it appears to work well. If you do find a bug in
gcc it will be fixed, no one has touched /bin/cc for awhile.

	GDB: Bob Rose (rrr@naucse.UUCP) built gdb for the 3b1, using
COFF object code and sdb debugging info. I haven't used gdb on the 3b1
yet, but I know that gdb on a VAX makes sdb look real cheesy. because
it uses sdb info, gdb will work with gcc or cc. Unfortunaty, Bob has
declined to support the port, so I imagine that it will be awhile
before its very stable :-(.  On the other hand, GDB is moving in the
COFF direction, so if Bob sent his diffs off to mit, they will
probably help the general effort. (Bob? are you listening? send them
to rms@wheaties.ai.mit.edu).

	GAS/GLD: This stuff works, BUT produces BSD format objects. It
also supports an extended symbol table format for gdb, and is
potentially really nice. I have heard reports of gas producing COFF
format object files, but have never actuall seen it. I've been asked
to work on a program to convert COFF objects to BSD and back
again...Interesting? yes. Useful? maybe.  The idea is to generate a
write/make/debug system using bsd objects, and then convert them to
COFF for execution. I like the idea of a COFF object with BSD symbol
table info tacked on the end. All of its sort of goofy.

	C-Scheme: I heard that someone had this running once, but not
much after that. Its reasonable to think that it might, but with KCL
and Xlisp up and running, I doubt that it will have much of a
following.

	CONCLUSIONS: I've been involved in gcc for awhile now, and I'm
a bit biased, since alot of the code is mine, but here goes.

	GAS/GLD/C-Scheme - hacker material, and will stay that way for
at least a year.

	GDB - I don't know how well this works, I would image that its
at least as nice as sdb, even if it has bugs. In theory, gdb is really
slick, and since debuggers are programmers toys anyway, it probably
worth looking at.

	GCC - I've been saying 'make CC=gcc' for so long that I hate
to rename it. I think instead that I'll play with the Makefile
defaults. In any case, I'm content with its performance. I'll be
posting assembly source for an optimized gnulib real soon, All I have
to do is wrap it. In any case, its at least as polished as /bin/cc,
with the exception of the intermitant bugs in 1.27.

	GNUMAKE/GNUGREP/BISON/GNUCHESS.... - get em if you need em.
Bison is nice if you do alot of parsers, I wish that there was a
manual besides the yacc stuff.

-- 
					:alex.
					Systems Programmer
nerwin!alex@umbc3.umd.edu		UMBC
alex@umbc3.umd.edu