Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!hao!oddjob!gargoyle!ihnp4!chinet!dag From: dag@chinet.UUCP (Daniel A. Glasser) Newsgroups: comp.lang.c Subject: Re: MAJOR ANSI C FLAW (my opinion, of course) Message-ID: <1788@chinet.UUCP> Date: Tue, 27-Oct-87 12:56:59 EST Article-I.D.: chinet.1788 Posted: Tue Oct 27 12:56:59 1987 Date-Received: Fri, 30-Oct-87 07:11:16 EST References: <1298@wyszecki.munsell.UUCP> <8781@utzoo.UUCP> <135@usl-pc.UUCP> Reply-To: dag@chinet.UUCP (Daniel A. Glasser) Organization: Chinet - Public Access Unix Lines: 43 Summary: New linkers for old machines & let us move on Once again, people seem to be missing the point about old systems with old object formats and old linkers which only support short mono-case identifiers. Sure, the compiler writer can write a pre-linker or a whole linker that can be used to link both old and new object formats together. This is a LOT of work. The pre-linker would prohibit the use of some features provided by some linkers in the final link, like overlays between user-supplied modules. Remember that not all machines have huge linear address spaces. Not even some so-called "modern" ones. Lets look at a simple example: RT-11 linker replacement. The standard DEC PDP-11 object format stores labels in RAD-40./RAD-50, which has no lower case, so name smashing is out. If the compiler vendor chooses to write a linker and have that linker accepted by the user community, the following features must be supported: code overlays (RT-11 style) PID only (.SAV) Relocatable (.REL,.SYS) Now, lets move on to TKB, the RSX-11M/M+ task builder. This linker requires support of PLAS overlays, memory resident/disk resident overlays, clustered libraries, supervisor libraries, shared code, Psect extension, shared libraries, etc. etc. etc.. Just TRY and read the TKB manual some time. It is not worth the compiler vendors while to try and write a replacement for a very powerful (if difficult to use) tool unless the market is being limited to simple users. If you don't want to write for these machines anyway, why do you care at all about the six character limit? Most Unix systems support names at least 16 characters long, and so do most other new systems. My point is that you should stop all this noise about the six monocase character external identifer MINIMUM maximum. The arguments are going round and round, and it does not make one bit of difference to the majority of programmers, since they don't have to deal with the low end implementation. A compiler that supports 32767 character externals using the full ISO latin 1 character set can still be fully conforming -- a compiler that supports only 5 character mono-case character externals cannot. That is all that there is to it. Now, let us get on to some more contriversial topics, y'know, things that matter. Huh? -- Daniel A. Glasser ...!ihnp4!chinet!dag ...!ihnp4!mwc!dag ...!ihnp4!mwc!gorgon!dag One of those things that goes "BUMP!!! (ouch!)" in the night.