Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site calgary.UUCP Path: utzoo!linus!decvax!decwrl!amd!dual!zehntel!ihnp4!alberta!calgary!radford From: radford@calgary.UUCP (Radford Neal) Newsgroups: net.lang.c Subject: RE: 6 char externs and the ANSI standard Message-ID: <634@calgary.UUCP> Date: Tue, 9-Oct-84 17:06:32 EDT Article-I.D.: calgary.634 Posted: Tue Oct 9 17:06:32 1984 Date-Received: Fri, 12-Oct-84 05:27:55 EDT Organization: U of Calgary, Calgary, Alberta Lines: 26 I think the standard should specify INDEFINITE length identifiers, both internal and external. If this is thought to be too much, about 16 is the minimum. SIX is right out. Since C does not have a "package" mechanism, libraries of routines should really prefix all external names to avoid conflicts with application routines and with other packages. For example, I have a library in which all externals are prefixed by "j_" in order to avoid conflicts. Two characters is about minimum for a prefix, so the proposal would leave only FOUR significant characters in an external name, which is nowhere near enough to be meaningful. Six character names are downright archaic. If the standard specifies this, the temptation to make use of a local extension to the length will be irresistable (and rightly so). This defeats the whole purpose of the excercise. Rewriting a brain-damaged loader is not all that difficult. Whatever you do, the one place where indefinite-length identifiers ABSOLUTELY MUST be allowed is in the pre-processor. As long as this is the case, one can at least rename all one's long identifiers as short ones with a .h file. Radford Neal Dept. of Computer Science University of Calgary