Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!bloom-beacon!oberon!cit-vax!ucla-cs!zen!ucbcad!ames!amdahl!oliveb!sun!gorodish!guy From: guy%gorodish@Sun.COM (Guy Harris) Newsgroups: comp.lang.c Subject: Re: MAJOR ANSI C FLAW (my opinion, of course) Message-ID: <30965@sun.uucp> Date: Thu, 15-Oct-87 05:26:58 EDT Article-I.D.: sun.30965 Posted: Thu Oct 15 05:26:58 1987 Date-Received: Sat, 17-Oct-87 07:24:35 EDT References: <1298@wyszecki.munsell.UUCP> Sender: news@sun.uucp Lines: 53 > What is better? Having a few companies with large resources and a large > potential payback fix a few compilers/linkers, or have the entire rest of > the C community rewrite many millions of lines of C? I remain completely unconvinced that the advent of the ANSI C standard will cause "millions of lines of C to be rewritten" to conform to the 6-character one-case limitation. The ANSI C standard *in no way* tightens the requirements for fully-portable code; in fact, it substantially *loosens* those requirements! ANSI C compilers are required to consider internal symbols to be different if they differ anywhere in the first 31 characters; code written to be portable to older UNIX compilers will have no trouble with this. They are required to offer many library routines that may not be offered with current C implementations; they are required to support not only "K&R C", but the extensions subsequently made to it, such as "enum"s, "void", non-unique structure names, etc., etc.. And, as for the 6-character one-case limits on external identifiers - if you really want to be portable to *all* C implementations, you have to obey that restriction *NOW*. Any organization imposing C coding standards, or standards for C implementations that they purchase, is completely free to to relax restrictions so that conforming, but not strictly conforming, applications meet the coding standards, and is completely free to impose additional restrictions on C implementations over and beyond the minimal restriction that they be minimally ANSI C conformant. They could, for example, say "no C implementation shall be purchased unless it supports at least 7 character external names without case restrictions", if they don't care about OS/360-and-successors. As for the claim that "the entire rest of the C community" will end up rewriting "millions of lines of C", I can cite several organizations of whom I'd willing to bet $10,000 *each* that they will not rewrite the bulk of the C code in their UNIX implementations to conform to the minimal 6-character one-case external name limitation (in fact, in many cases, they probably will not rewrite a *single line* of C code to conform to that restriction!): American Telephone and Telegraph Corporation Apollo Computer Digital Equipment Corporation Hewlett-Packard International Business Machines Corporation Sun Microsystems ... (If your company isn't on this list, it's just because I didn't want to fill up half this article with the list; if I thought people would actually take me up on the bet, I'd lengthen the list considerably and then put in my order for an F40....) Guy Harris {ihnp4, decvax, seismo, decwrl, ...}!sun!guy guy@sun.com