Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!brl-smoke!gwyn From: gwyn@brl-smoke.ARPA (Doug Gwyn ) Newsgroups: comp.lang.c Subject: Re: MAJOR ANSI C FLAW (my opinion, of course) Message-ID: <6567@brl-smoke.ARPA> Date: Thu, 15-Oct-87 09:33:17 EDT Article-I.D.: brl-smok.6567 Posted: Thu Oct 15 09:33:17 1987 Date-Received: Sat, 17-Oct-87 07:34:19 EDT References: <1298@wyszecki.munsell.UUCP> Reply-To: gwyn@brl.arpa (Doug Gwyn (VLD/VMB) ) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 36 In article <1298@wyszecki.munsell.UUCP> jwf@munsell.UUCP (Jim Franklin) writes: >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? This constraint on portable programming IS NOT AN INVENTION OF X3J11; it is the sort of thing a programmer concerned with portability has always had to take into account. The half-million lines of portable C code I've created, plus another half-million lines of less-portable code that I personally maintain, do not rely on long external name significance. That's because I have been concerned with portability all along, and resorted to practical measures rather than wishful thinking. I have absolutely no sympathy for programmers who ignored the clear warning about this given in K&R and are now shouting that "X3J11 has broken their (already non-portable) code". No matter what the ANSI C standard says, that aspect of your code remains exactly as portable (or not) as it currently is. The only practical effect of specifying longer external name significance is to reduce the number of implementations that will conform to the standard in the near future. Because there are intentionally no COBOL-like "levels" to the ANSI C standard, a programmer is in general unable to determine just WHAT a non-conforming "C" implementation consists of; it could be non-conforming in ways much more important than limited external identifier significance. X3J11 obviously decided it would be a bigger disservice to the C programming community to limit the number of environments that could be advertised as ANSI-conforming due to this one issue than to support a larger range of conforming environments at the expense of the portable programmer having to take proper precautions. Your ideas about what is involved in improving existing linker and object module format limitations are incredibly naive. They WILL eventually improve, but not overnight, and what the ANSI C standard currently says applies about as much pressure as is realistically possible in that direction.