Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!rutgers!pyrnj!mirror!ima!haddock!karl From: karl@haddock.UUCP (Karl Heuer) Newsgroups: comp.lang.c Subject: Re: draft ANSI standard: major, quiet, unnoticed change Message-ID: <187@haddock.UUCP> Date: Thu, 4-Dec-86 20:54:05 EST Article-I.D.: haddock.187 Posted: Thu Dec 4 20:54:05 1986 Date-Received: Fri, 5-Dec-86 06:07:18 EST References: <1379@hoptoad.uucp> Reply-To: karl@haddock.ISC.COM.UUCP (Karl Heuer) Organization: Interactive Systems, Boston Lines: 19 Keywords: nonstandard predefined words Summary: It can still be done In article <1379@hoptoad.uucp> gnu@hoptoad.uucp (John Gilmore) writes: >The new standard disallows an implementation's pre-#defining any words >that don't begin with _ (section 3.8.8, "No macro names without a >leading underscore shall be predefined."). This breaks all the code >that uses ["#ifdef vax", etc.] I noticed this too, and wondered how we are expected to do architecture- dependent conditional compilation in the future. Perhaps the idea is to use "#ifdef _vax", etc. >One possible workaround is a set of configuration #define's which are only >visible to #if and #ifdef, not to program code. [Suggests "#pdefine vax"] This would still break the letter of the proposal. But if it's permitted, it's not necessary to make a new #-word; since macros cannot be recursive, "#define vax vax" will do. I believe the old V6 cpp allowed this sort of thing as a special case. Karl W. Z. Heuer (ima!haddock!karl or karl@haddock.isc.com), The Walking Lint