[gnu.gcc] #pragma, #import and NeXTStep

chari@nueces.cactus.org (Chris Whatley) (01/24/90)

Ron, you make some good points but you are ignorant in a few areas.

rfg@ics.uci.edu (Ron Guilmette) writes:

>In article <642@cscnj.csc.COM> georgep@cscnj.csc.COM (George Petrou) writes:
>Sounds entirely bizzare.  I'm not a `graphical interface' kinda guy, so I
>should not really be commenting (because I don't know squat about MS-Windows
>or about the windowing system on the NeXT... which I believe is X11) but
>let me just say that it sounds like a gigantic hassle to be changing
>windowing systems.  I won't say anymore because rms doesn't like people
>discussing "propritary" software (e.g. the Microstuff stuff) here in the
>Gnuse groups.

The NeXT window system is similar to X in only one way and that is the
client-server model that are their foundations. The NeXT windowserver
speaks DisplayPostScript and is in no way X11 compatible. There will
soon be an X11 server for the NeXT which runs as a window under the
NeXTStep envronment and translates X calls to tokenized PostScript
for the display server to display (at least that is what I have read).

>One footnote.  I have recently learned that the NeXT system has become
>incompatible with current versions of the GNU C compiler.

>The problem is that NeXT invented (or borrowed) a new type of preprocessor
>directive that GCC doesn't know how to deal with (and never will).

>The directive is called "#import" and according to reports I have recieved,
>this directive is being used within (at least some of) NeXT's "system"
>include files (perhaps many of them).  You know... the files that you
>often have to include in typical C programs like <sys/file.h>, etc.

Here you are definitely incorrect. '#import' is a directive to the
obejctive-C preprocessor which, in most incarnations of Objective-C,
is a separate entity from the c-compiler and preprocessor. Due to
speed considerations, the objective-C preprocessor has been
incorporated into NeXT's internal version of gcc. The only place this
directive is used is in the currently non-portable application kit
headers which are written in Objective-C only. I have never seen it in
any standard includes.

>Since GCC does not recognize this directive (for good resons that are
>described below), their use within system include files makes it virtually
>impossible to use the latest (and most robust/reliable) version(s) of GCC
>on your NeXT to compile anything but the most trivial programs.

Wrong. Do you call akcl, maxima, c-news, rn, nn, emacs, rcs, bash,
kermit, nntp, patch, X11R3 trivial? Also, my understanding from an
expert, is that the most recent version of gcc is not as robust as the
current one. Anyway, gcc 1.36 has been made on the NeXT. The config
files are in the archive at j.cc.purdue.edu.

Since it is clear that '#import' is from Objective-C then there is no
point rebutting your arguments in favor of '#pragma once' over
'#import'. They both exist in NeXT's version of gcc and both work.

>Mr. Jobs, are you listening?

Duh.

#import ".signature"

-- 
Chris Whatley
Work: chari@pelican.ma.utexas.edu (NeXT Mail)		(512/471-7711 ext 123)
Play: chari@nueces.cactus.org (NeXT Mail)		(512/499-0475)
Also: chari@emx.utexas.edu