All,
As
promised in my reply to Wolfgang, I am starting the thread regarding
this migration.
There are a
number of factors that are driving this:
--
1) GCC
lacks support for many memory management features that are commonly used
today
2) GCC's objective-c support is
lagging behind and doesn't include support for @[], @{}, @autorelease,
etc etc etc
3) Lack of bug fixes in GCC's
implementation of ObjC
4) GCC team does not consider
ObjC release critical and will and HAS released with broken support for
building ObjC targets.
All of these things are
UNACCEPTABLE
There are a
number of reasons why we still use GCC:
--
1)
Currently, libobjc2 does not support some architectures and also does
not build easily on Windows under MSYS2. While some older architectures
are, perhaps, not as important, building on Windows under MSYS2 is
critical.
2) GNUstep is an FSF project, so
there is a political component if we don't support GCC anymore. This
is not a show-stopper but is something to consider.
Advantages
of LLVM/Clang
--
1) ARC
2)
support for modern features in objc that are commonly used
3) more
developers will be able to port their applications to GNUstep
Disadvantages
--
1)
libobjc2 is currently, as stated above, unstable or unsupported on some
architectures / operating systems.
Approach
--
1) make
sure that libobjc2 is supported on as wide a range of platforms as
possible.
2) Fix issues with building on
Windows/msys2
We should
make the transition as easy as possible for people who are currently
using GCC to switch over to Clang/LLVM.
Please
feel free to discuss...
Yours, GC
--