[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Using Symbolics C with DOS/Unix targets
Date: Sun, 17 Nov 1991 04:59 EST
From: barmar@think.com (Barry Margolin)
Date: Thu, 14 Nov 1991 14:38-0600
From: gooch@TIJERAS.SW-SW.Dialnet.Symbolics.COM (William D. Gooch)
Has anyone thought about using (or better yet, used) Symbolics C to hack
existing programs for portability? I'm thinking of an arrangement along
the lines of CLOE, where the Symbolics machine is the network master for
development and debugging, and combat-ready code is spat toward target
machines using IP/TCP. Final testing, possibly tuning, etc. happens on
the target system. You could even think of producing system .make files
and so forth automatically when appropriate, also per CLOE. (Come to
think of it, it's quite possible that the CLOE Developer could be
adapted for this purpose fairly easily.)
The most significant problem with using Symbolics C to develop programs
intended for Unix or DOS is the limited C library available in Genera.
Many Unix and DOS programs make use of Unix system calls (most of the file
system interface functions are emulated on DOS, but not Genera),
screen-handling libraries (e.g. curses), networking interfaces (e.g.
sockets), databases (e.g. dbm), etc. Symbolics C provides nothing but the
ANSI C library.
It's also not clear how much advantage it has over such things
as Saber C (recently renamed due to company name conflict to
something boring that I can't remember), or even Lightspeed C
These are very graphicly-oriented incremental, dynamic C environments
with such things as unbound-variable detection, etc. that give
you most, if not all, of the advantages of Symbolics C.
Also, developing portable C code is harder than you think. It's
not just a matter of having a strict ANSI compiler. You have to
contend with non-ANSI compilers, compilers with bugs, compilers
with a whole slew of ANSI-sanctioned variations (like the length
of 'int'). Adding one more compiler to this mix is likely to
cause you more problems than it solves.
The problem gets exponentially worse when you have to deal with
the variations in libraries that Barry mentions. We have it
good in the Lisp world, portability wise.