Article View: comp.std.c
Article #333restrictive linkers (was: Reserved names in ANSI C)
From: Steve Summit
Date: Sun, 16 Jul 1989 05:35
Date: Sun, 16 Jul 1989 05:35
55 lines
3034 bytes
3034 bytes
Two minor points:
In article <547@cybaswan.UUCP> iiit-sh@cybaswan.UUCP (Steve Hosgood) writes:
>In article <2619@yunexus.UUCP>, davecb@yunexus.UUCP (David Collier-Brown) writes:
>> 0) 6 characters is a lower limit of significance. You're allowed to use more.
>Yeah, but though you may be able to use more, a 'strictly conforming' program
>can't, otherwise it won't port to sites with 6-character linkers.
Presumably the posters and most readers of this group understand
it, but there are apparently many who interpret statements like
the above to mean that external identifiers may not have more
than six characters at all. I'm always seeing subroutine
packages that have incredibly strained, abbreviated identifier
names, to keep them six characters long. You're allowed to use
extra characters for readability; the only problem is that if you
say
int identifier1, identifier2;
you may get
"identi: multiply defined."
It should be perfectly legal to say
int identifier, anotheridentifier;
>If Ada becomes important due to the
>military backing, can't 'C' ride its wake (so to speak) and insist on a
>linker with sensible namewidth?
I believe X3J11 is on record as strongly encouraging better
linkers, and indicating that the six-character significance limit
is likely to disappear in future revisions. (Happily, this would
be a backwards-compatible change, except for programs with
typoes.) No one (not even the maintainers of the systems that
have them) likes the situation with respect to old-fashioned
linkers. However, the compromise had to be made to ensure a
standard that could and would be used.
Steve Summit
scs@adam.pika.mit.edu
P.S. I think that ADA places much more complicated demands on a
linker than simply that it have more than six characters' worth
of significance. (That is, ADA tends to require a new linker
anyway, not just for longer names.) Every ADA implementation
I've seen (not many) comes with its own linker, at least
partially superseding the operating system's default one, even on
systems such as VMS which already have remarkably powerful
standard linkers and object file formats. A language that
supports object/package/cluster concepts typically requires
complicated name resolution and binding in the link phase which
many (most) existing linkers simply aren't equipped to do.
(C++ has the same problem.)
Technical Details
Message-ID:
<12711@bloom-beacon.MIT.EDU>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!agate!ucbvax!bloom-beacon!adam.pika.mit.edu!scsReferences:
<GEOFF.89Jun11231924@onyx.cs.warwick.ac.uk> <2619@yunexus.UUCP> <547@cybaswan.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!agate!ucbvax!bloom-beacon!adam.pika.mit.edu!scs From: scs@adam.pika.mit.edu (Steve Summit) Newsgroups: comp.std.c Subject: restrictive linkers (was: Reserved names in ANSI C) Keywords: linkers, redux Message-ID: <12711@bloom-beacon.MIT.EDU> Date: 16 Jul 89 05:35:33 GMT References: <GEOFF.89Jun11231924@onyx.cs.warwick.ac.uk> <2619@yunexus.UUCP> <547@cybaswan.UUCP> Sender: daemon@bloom-beacon.MIT.EDU Reply-To: scs@adam.pika.mit.edu (Steve Summit) Lines: 55