delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/11/28/21:27:46

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT sourceware DOT cygnus DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
Message-Id: <9911290226.AA08186@mlx.com>
Mime-Version: 1.0 (NeXT Mail 3.3 v118.2)
From: MarketLogix <mlx AT mlx DOT com>
Date: Sun, 28 Nov 99 18:26:44 -0800
To: "Larry Hall (RFK Partners, Inc)" <lhall AT rfk DOT com>
Subject: Re: windows.h breaks ObjC ?
Cc: cygwin AT sourceware DOT cygnus DOT com
Reply-To: mlx AT san DOT rr DOT com
References: <3 DOT 0 DOT 5 DOT 32 DOT 19991128183022 DOT 00ab6100 AT pop DOT ma DOT ultranet DOT com>


Begin forwarded message:

X-Sender: lhall AT pop DOT ma DOT ultranet DOT com
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.5 (32)
Date: Sun, 28 Nov 1999 18:30:22 -0500
To: mlx AT san DOT rr DOT com
From: "Larry Hall (RFK Partners, Inc)" <lhall AT rfk DOT com>
Subject: Re: windows.h breaks ObjC ?
Cc: "cygwin AT sourceware DOT cygnus DOT com" <cygwin AT hotpop DOT com>
In-Reply-To: <9911281643 DOT AA07798 AT mlx DOT com>

At 08:43 AM 11/28/99 -0800, you wrote:
>Hi all,
>
>Just installed v1.0 and spent the whole weekend pulling my hair out.
>
>Oh, the general product looks pretty nice but I'm afraid that the new
>windows headers somehow break ObjC preprocessing.  I know that Cygnus
>has never supported ObjC so, as usual, I didn't expect much.
>
>But it seems as though we may have hit a new low here.
>
>Either that or I'm just too bleary-eyed to see something obvious.
>
>Take this source code example, lets call it -> test.c
>
>#include <windows.h>
>#include <objc/Object.h>
>int main ( int argc, char *argv[] (
>{
>  printf("hello world\n");
>  return 0;
>}
>
>now try to compile it to object via:
>
>gcc -c -x objective-c test.c -o test.o
>
>I get the foillowing:
>
>Object.h:37: invalid identifier `@struct'
>Object.h:37: parse error before `Object'
>Object.h:38: syntax error before `{'
>Object.h:43: method definition not in class context
>
>This is, of course, the first occurence of an
>
>@interface directive
>
>Now, comment out
>//#include <windows.h>
>
>it compiles without a hitch.
>
>I built gcc-2.95.2 from gnu AND download pre-built from
>Mumit Khan's site ALL with the same result.
>
>Gotta roll back to b20.1 ?
>
>What gives ?
>
>------------
>
>Well, I didn't send this mail right away and decided to research
>a bit more.  Here's what I found:
>
>basetyps.h, line #20: #define interface struct
>
>Oh, just brilliant - concocted by some C++ 'er no doubt !!!
>C'mon, please tell me you're not already married to this.
>
>Steve B.
>

I think you'll find this is a MSism for COM.  I'm sure you can work  
around
this if necessary but if not, perhaps you want to take it up with MS...


Larry Hall                              lhall AT rfk DOT com
RFK Partners, Inc.                      http://www.rfk.com
118 Washington Street                   (508) 893-9779 - RFK Office
Holliston, MA 01746                     (508) 893-9889 - FAX
                                        (508) 560-1285 - cell phone


Hmmmm ...
You're the second individual to blame M$ here.
I'm no big fan of those guys either.  But I think
this line of reasoning is flawed enough to take the
time to slooooowly and cleeeeearly state what I
believe to be the real underlying problem.

1. I understand that M$ has its need of the "interface" label.

2. This is NOT the problem.

3. "interface" is distinct from "@interface".

4. No problem with the global name space yet.

Right ?

5. Now all of a sudden in the new Cygnus windows api headers
   we get this bad boy:

#define interface struct

Sure, and while we're at it why not:

#define constructor tulips

and

#define class urass

What the heck nobody really codes in ObjC anymore anyway right ?
Ah, they didn't create #undef for nothing ... RIGHT ?

Yea sure, I can unhack this hack but I would hope folks could
think a bit deeper and see this "little inconvenience" for what
it really is.

The first baby steps toward breaking Objective-C compatibility
within Cygwin sources.

Steve B.

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019