[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Typedef errors when building llvm/clang/gnustep
From: |
David Chisnall |
Subject: |
Re: Typedef errors when building llvm/clang/gnustep |
Date: |
Wed, 27 Mar 2013 09:06:00 +0000 |
Hi,
On 26 Mar 2013, at 23:43, James Carthew <jcarthew@gmail.com> wrote:
> Checking out the daily libobjc from dev-libs on gnustep SVN repository
You want libobjc2, not libobjc. The libobjc in GNUstep svn is a fork of an old
version of the GCC runtime with some bug fixes back-ported, so that it can work
with old versions of GCC. It shouldn't be needed anymore.
> and daily llvm/clang svn. Is the llvm/clang svn needed anymore? or is it safe
> to use a release version such as 3.2 or 3.3 of LLVM?
No, although there are improvements in clang trunk relating to property
introspection and interoperability with C++ and Objective-C exceptions. If you
don't require these then 3.2 is fine (3.3 is not released yet).
> I'd like to have full support for Objc-2.0 and garbage collection etc. If
> possible as I'm looking at picking at some of the project ideas/missing
> features of the gui/base libraries.
Garbage collection will work in theory, however:
- You must build libobjc2 with it enabled (ccmake has an option for this)
- You must build all of GNUstep with GC support enabled (-fobjc-gc, or
-fobjc-gc-only)
- It is now deprecated by Apple, so I doubt we will put much effort into
ensuring it works
- It has a poorly designed memory model and it is very easy to accidentally
store ObjC pointers in malloc'd or global memory that is not visible to the
garbage collector. These bugs are very hard to track down.
ARC, however, works well (trunk libobjc2 fixes some corner cases).
David
--
This email complies with ISO 3103