Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!hao!ames!sdcsvax!ucsdhub!hp-sdd!hplabs!sdcrdcf!ism780c!nobody From: nobody@ism780c.UUCP (Unprivileged user) Newsgroups: comp.lang.c Subject: Re: MAJOR ANSI C WART (my opinion, of course) Message-ID: <7637@ism780c.UUCP> Date: Fri, 23-Oct-87 21:50:41 EST Article-I.D.: ism780c.7637 Posted: Fri Oct 23 21:50:41 1987 Date-Received: Sun, 25-Oct-87 23:19:36 EST References: <1298@wyszecki.munsell.UUCP> <1386@dataio.Data-IO.COM> <2503@mmintl.UUCP> Reply-To: marv@ism780.UUCP (Marvin Rubenstein) Organization: Interactive Systems Corp., Santa Monica CA Lines: 32 >>I don't understand the problem that the vendors have. If the vendors don't >>have control over the linker, they can write their own. I know from >>experience: for Datalight C, ... > >This is realistic for micro-computers, but not really for minis. In the >mainframe environment, forget it. Even for minis, people want to link >together programs written in different languages. This won't work if each >language has its own linker. (The time is coming when this won't do in the >micro arena, either.) > >Frank Adams Ah, but it can work. I once wrote a compiler for an extended version of Pascal. The compiler allowed very long identifiers. The host operating system linker allowed six character names using upper case only. Never the less the Pascal program could reference routines in the system library. The way this worked was that a 'Binder' program was supplied along with the compiler. The binder linked all the Pascal objects with their long external names. If there were any unresolved references, the output of the binder was handed to the host system's linker. And Lo, an executable module resulted. Cleary, if a FORTRAN program referenced a Pascal subroutine, then THAT Pascal subroutine name was restricted by the FORTRAN naming rules. BTW. I also supplied an 'librarian' so that libraries of Pascal subroutines could be maintained. The effort to do the binder and librarian represented about 10% of the total compiler effort. And how did the debugger reference the Pascal variables? Simple, The host system did not have one. (Is this true for all systems with 6 character linkers?) Marv Rubinstein