<div dir="ltr">Filing a bug with a reduced test-case would be helpful to get this fixed.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 9, 2014 at 2:25 AM, Hovik Melikyan <span dir="ltr"><<a href="mailto:hovik.melikyan@gmail.com" target="_blank">hovik.melikyan@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi David,<br>
<br>
(I should have made it clear that I do understand there's GNUstep<br>
(whose GUI is so horrible and 1990-ish that makes me want to switch to<br>
an entirely different industry altogether :) and I do understand I<br>
can't use Apple's code unless it's covered by a more or less<br>
permissive license. Libobjc is APSL so we're fine with that. As for<br>
the rest, Foundation & Cocoa, there is at least one open source<br>
implementation named Cocotron that's pretty good but is a bit behind<br>
in terms of the runtime and language features. One possibility, for<br>
example, would be to adapt Cocotron to the latest libobjc, that's all.<br>
But let's forget about higher layers for now.)<br>
<br>
My point is, theoretically there's nothing that stops clang from<br>
making Apple's libobjc compile and work on Windows, less exceptions.<br>
We can wait until clang brings exceptions to Windows, that's fine,<br>
because exceptions are kind of not critical to F/Cocoa.<br>
<br>
But weak pointers, I think what I found is a bug. You declare a __weak<br>
pointer and the compiler treats it as __strong for a particular<br>
target. The consequences of this bug for an app can be catastrophic.<br>
<br>
Let's say my setup is a bit unusual, but if there is one little thing<br>
that possibly needs a little fix, why not? I was hoping to hear some<br>
ideas as to what I can do: file a bug? suggest a patch? use some<br>
compiler flag that I didn't know of?<br>
<br>
--<br>
H.M.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Fri, May 9, 2014 at 9:29 AM, David Chisnall<br>
<<a href="mailto:David.Chisnall@cl.cam.ac.uk">David.Chisnall@cl.cam.ac.uk</a>> wrote:<br>
> Hi,<br>
><br>
><br>
> On 8 May 2014, at 23:17, Hovik Melikyan <<a href="mailto:hovik.melikyan@gmail.com">hovik.melikyan@gmail.com</a>> wrote:<br>
><br>
>> And finally, the GNU compiler is not an option for me because it lags<br>
>> in some crucial aspects of the ObjC language. I really, really want to<br>
>> get clang to compile libobjc and then the entire Foundation/Cocoa<br>
>> emulation layers. Ideally, clang should be able cross-compile this<br>
>> stuff on OSX.<br>
><br>
> You seem to be conflating many parts of the stack.  For all of the stuff that you want, you need:<br>
><br>
> - A compiler<br>
> - An Objective-C runtime<br>
> - A Foundation / AppKit implementation<br>
><br>
> Clang is the compiler, and supports several Objective-C runtimes.  The only supported configurations on Windows, however, are the GNU family of runtimes (the Apple runtime works on Windows, but requires code that Apple has not open sourced to actually be useful).  The GCC and GNUstep runtimes both work on Windows and the GNUstep runtime has supported ARC for several years and is used by a number of commercial products on Windows, Android, and so on.<br>

><br>
> Once you have the compiler and runtime, you need a Foundation implementation that supports the runtime.  Again, GNUstep provides this for the GCC and GNUstep runtimes.<br>
><br>
> I'm not sure what you mean by 'the entire Foundation/Cocoa emulation layers'.  Foundation and Cocoa are just libraries.  You can not use Apple's implementation on Windows[1], because Apple doesn't license their library implementations for third parties.<br>

><br>
> David<br>
><br>
> [1] Unless you can find a copy of Yellow Box for Windows, in which case you can but you'll have a *really* old version.<br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div>