day@kovacs.UUCP (David Yost) (10/09/84)
There have been many, many wonderful arguments for
standard long global identifiers on net.lang.c, more than
anything I could ever think of.
The only important argument against long externals has
been that on some systems it is impossible to build a
compatible implementation. Nonsense.
To C implementors on those unfortunate systems that
have object module formats with monocase identifiers or
identifiers limited to 2, 5, 6, 8, or whatever, follow
these simple steps:
1. Design a new object module format that conforms to
the C standard. Implement your C compiler to
output this format (preferably after going through
an assembler, which you should also provide).
2. If it is impossible to design the C object format
so that it can be executed by the operating
system, then provide a translator from C object
format to executable format or provide a linker
option for making an executable. Be sure you
provide a way to output the executable with a
complete symbol table, so a reasonable debugger
can be implemented.
3. If there is a need to link in modules produced by
some other language, such as fortran or macro,
then provide an object translator from that format
to your C object format. If the identifiers in
that language are monocase, then map them to lower
case in the C format. This conversion program
should provide for an optional lookup table
mapping old names to new names.
If that's too much work, then please don't implement
a C compiler at all.
Since many new linkers and assemblers are going to have
to be built, I suggest that an ANSI C assembler/linker
standards committee should be formed to try to keep
this part of the C compiler environment standard.
One of the important issues here is that provision
should be made for symbol table information to support
source-level debuggers. And please, let's not standardize
on the unix linker. It's too simple-minded.
--dave yostbsa@ncoast.UUCP (Brandon Allbery) (10/13/84)
> Article <>, from day@kovacs.UUCP (David Yost) +---------------- | ... And please, let's not standardize | on the unix linker. It's too simple-minded. AMEN! It'd be nice to patch some existing programs to get around curses brain damage with nl termcap strings. Unfortunately, there's no way in Unix to make an executable to which you can append more functions... --bsa -- ---------------------------------------+--------------------------------------- From the tangled paths of the mind of: | the.world!ucbvax!decvax!cwruecmp! Brandon Allbery @ North Coast Xenix | {atvax!}ncoast!{tdi1!}bsa 6504 Chestnut Road, Independence, Ohio |--------------------------------------- (216) 524-1416 \ 44131 | R01{64,65,76}@CSUOHIO.BITNET ---------------------------------------+--------------------------------------- `Confusion is my natural state.'