Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!aplcen!ginosko!uunet!ibmpa!ghoti!lmb From: lmb@ghoti.uucp (Larry Breed) Newsgroups: comp.sys.ibm.pc.rt Subject: Re: Who uses IBM/4.3 (AOS)? Message-ID: <2151@ibmpa.UUCP> Date: 16 Sep 89 04:26:17 GMT References: <2008@ibmpa.UUCP> <1989Sep8.030653.19509@larouch.uucp> Sender: news@ibmpa.UUCP Reply-To: lmb@ibmsupt.UUCP (Larry Breed) Organization: IBM AWD Palo Alto Lines: 30 In article schwartz@shire.cs.psu.edu (Scott Schwartz) writes: > >We'll see about the new release (2.1s) as soon as it is installed. My >first test program will look like this: > >#ifdef __STDC__ /* Oh good, a 100% ANSI conforming compiler! */ >#define FOO(x) #x >static char foo[] = FOO(bar); > /* should expand to ``static char foo[] = "bar";'' */ >#endif > >All previous releases of hc get this wrong; they fail to compile it. > Actually all releases of hc have had an ANSI preprocessor that handles stringizing. You can disable cpp, and enable the ANSI preprocessor, with the command-line option -Hnocpp. See the hc(1) man page for this, -Hcpp, and other useful options. Cpp is the default preprocessor on AOS because we weren't willing, in 1967, to try to force a nonstandard preprocessor on customers. (For one thing, Berkeley source wouldn't preprocess.) Yet, the language supported is ANSI C, so __STDC__ really has to be on. I should have taken this inconsistency more seriously; Scott's note is evidence of the confusion my choice caused. Disclaimer: Don't blame my employer, blame: Larry Breed (415) 855-4460 uucp: uunet!ibmsupt!lmb inet: ibmsupt!lmb@uunet.uu.net