discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Which ObjC2.0 features are missing in the latest GCC?


From: Matt Rice
Subject: Re: Which ObjC2.0 features are missing in the latest GCC?
Date: Thu, 21 Nov 2019 16:13:43 +0000



On Thu, Nov 21, 2019 at 1:43 PM Gregory Casamento <address@hidden> wrote:
Andreas,


On Thu, Nov 21, 2019 at 6:26 AM Andreas Fink <address@hidden> wrote:


On 21 Nov 2019, at 12:15, Gregory Casamento <address@hidden> wrote:

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.

Yours, GC


I completely agree.

I have strong doubts that ObjC is used anywhere in the exotic hardware area.

I'm referring to older platforms, such as Solaris 9 or earlier and architectures which don't currently have a version of clang on them.

Considering that Solaris 9 support was removed from gcc in 2014, does that really matter,
or do people still build with ancient gcc's?  In which case bringing gcc up to modern standards in order to remove all the compatibility layering still likely entails not supporting older compilers and dropping support for solaris 9 anyways.

https://gcc.gnu.org/ml/gcc/2018-10/msg00139.html

Like if I look at the embedded field where mostly other processor types are used, I don't see why GNUStep would be of any use there. And if, they can still use an old frozen gcc version if they are old.

Luckily I have had some experience with some embedded applications which currently do use processors powerful enough to use ObjC, but it is rare and those usually have clang available.
 
I must admit that myself I use GNUStep without any desktop in mind, basically Foundation is what I need for my server applications because my code is heavily written in ObjC and especially because of its nice features such as ARC. So for me going back to gcc is absolutely impossible.

Indeed

So besides Intel and ARM architectures, what is really used out there in the field?

SPARC, PowerPC, etc.

Sincerely, GC
--
Gregory Casamento
GNUstep Lead Developer / OLC, Principal Consultant
http://www.gnustep.org - http://heronsperch.blogspot.com
http://ind.ie/phoenix/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]