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: <6544@brl-smoke.ARPA> Date: Sat, 10-Oct-87 00:13:41 EDT Article-I.D.: brl-smok.6544 Posted: Sat Oct 10 00:13:41 1987 Date-Received: Mon, 12-Oct-87 02:53:27 EDT References: <1132@gilsys.UUCP> Reply-To: gwyn@brl.arpa (Doug Gwyn (VLD/VMB) ) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 60 In article <1132@gilsys.UUCP> mc68020@gilsys.UUCP (Thomas J Keller) writes: > I want to know which compiler vendor had enough power to force this pile >of BULL**T down the committee's throats?????? What makes you think that's what happened? When X3J11 realized that this was a real issue for several systems, they voluntarily, however reluctantly, acknowledged this very real constraint when setting implementation minimums. > So quite a few vendors opt for the minimums, while others opt for more >reasonable numbers. There goes your portability! Only those vendors who have such an restriction are likely to impose it. This includes those who produce C implementations but have no control over the linker that will be used. > Response: true enough. If I stick to a 6 char external minimum, my coding >style and readability will be severely compromised. Ever try to provide large >numbers of MEANINGFUL identifier names with a 6 char limit???? First of all, I routinely program within this constraint; it's slightly annoying but workable. UNIX programmers had a 7-character external identifier significance constraint until recently, when Berkeley added support for "flexnames" that AT&T eventually picked up for System V. Secondly, there are tricks for mapping longer names to unique shorter ones when necessary (which will be the case in only a few environments). Although such mapping generally hampers debugging, in such environments you probably won't find very good debuggers anyway. > I defy ANYONE to offer a rational, realistic explanation for this >abomination. This decision was obviously political, as there *IS* no rational >technical reason for such a crock. I don't know what you consider rational. X3J11 thought it was rational to acknowledge facts of reality and accommodate them in the standard. Note that longer external identifier significance is mentioned as a "common extension". Also, under "Future Language Directions", the draft Standard states: Restriction of the significance of an external name to fewer than 31 characters or to only one case is an obsolescent feature that is a concession to existing implementations. You may not realize it, but that is an extremely strong hint that the committee deplores the existing situation and are warning that it had better improve before the next revision of the Standard. "Obsolescent" has definite meaning according to "standards language"; this allows removal of this constraint in the next revision. I don't know what more could have realistically been done. > I wish I knew how to contact the committee and propose that they fix their >screwup. Maybe someone who reads this will know, and pass it on. This has been discussed by the committee several times and reaffirmed each time, although the wording has been "toughened up" about this. P.S. As usual, the above is all my opinion, not necessarily X3J11's.