David et al,
For all of the reasons listed in the previous email I am starting to wonder about the viability of using GCC in the long run. As far as I can see it the facts are these:
1. GCC does not support ARC, blocks and many other features which the API is now using
2. Supporting GCC consumes more time due to having to work around these features using awkward macros
3. The further clang's implementation and gcc's implementation of the language drift apart, the more macros we will need to add
4. The work needed to add these features is monumental
5. We cannot depend on the GCC team to add these as they are more focused on languages outside of ObjC.
The advantages to dropping GCC are as follows:
1. We can simplify the code drastically by removing any and all macros to abstract the missing features
2. We can switch to using faster C++ or ObjC++ implementations of certain functionality. TBD further.
3. We get ARC memory management for free.
4. Speeds up development since less time is spent on managing some of the above.
Disadvantages to dropping GCC:
1. Political backlash from the FSF (possible, but unlikely there are projects which use languages not supported by GCC)
2. Not able to support older hardware on which clang is unavailable and gcc still is.
* We need to assess how critical supporting that hardware is.
3. Altering our "NetBSD" like philosophy where we can say "Of course GNUstep will build on it."
Right now these lists are just food for thought. I am trying to start a discussion about this, not making any final decisions yet.