Hi Greg,

On Tue, Nov 26, 2019 at 12:17 PM Gregory Casamento <[email protected]>
wrote:

>
> Stefan,
>
> I personally don't like off list discussions it makes things a little more
> complicated than they need to be....  that being said...
>

Yes... Only after I hit the send button did I realize I had not selected
"Reply All". I'm adding mailing list back in so that folks can see your
reply.


> On Tue, Nov 26, 2019 at 10:43 AM Stefan Bidigaray <[email protected]>
> wrote:
>
>> On Tue, Nov 26, 2019 at 4:55 AM Gregory Casamento <
>> [email protected]> wrote:
>>
>>>
>>> I'd really like some resolution on this topic.   There seem to be a lot
>>> of reasons for and against.
>>>
>>> GC
>>>
>>
>> Hi Greg,
>> I've managed to stay quiet throughout this discussion because I wanted to
>> hear some of the arguments and counter-arguments before formulating my own
>> opinion. As of this moment, I'm still not convinced that dropping GCC is a
>> good choice.
>>
>> I believe dealing with an all-or-nothing option is not the right
>> attitude. At the end of the day, completely dropping GCC is going to cause
>> major disruption to the project. The fact is that some developers will be
>> left out in the cold if/when this happens. Another argument is, for all
>> it's flaws, GCC is the standard compiler on most Linux distributions (any
>> of the ones using glibc, since it does not build with clang), so it is
>> something that we get "for free".
>>
>
> Indeed this is true.
>
>
>> How about a compromise? How hard would it be for GCC to drop the GCC
>> runtime in favor of GNUstep runtime, and implement everything except ARC
>> and blocks (these seem to be the biggest road blocks)? While ARC and blocks
>> are important for many developers, GNUstep itself is not directly dependent
>> on the compiler supporting these features. Ideally, we could get to a
>> situation where GCC and Clang compiled binaries can interoperate. Or am I
>> way off?
>>
>
> GNUstep is absolutely and TOTALLY dependent on the compiler for these
> things.   ARC is done by the compiler at build time.  Blocks are also a
> feature of the compiler.  GCC has neither of these features.
>

Let me clarify what I said... Currently, GNUstep does not require the
compiler to support ARC nor blocks. Memory-management is currently done
manually, and macros like CALL_BLOCK() allows us to call blocks without
specifically requiring compiler support. While these 2 features are really
nice, they would also require a lot of work to implement, as David pointed
out.


> One more questions... what do the GCC Objective-C maintainers have to say
>> about this discussion? It would seem that GNUstep is now their only
>> downstream "customer". Are they open to working with us to provide a more
>> compatible compiler?
>>
>
> They haven't seen this discussion.  They would likely expect us to make
> these changes ourselves and, as David Chisnall pointed out... there is
> about 2 man years of work there.
>

I completely understand that part. My suggestion was to How long would it
take to implement all the language features, except ARC and blocks, in GCC?
Could we implement the non-fragile ABI, @properties, generics, etc. in a
reasonable amount of time? How hard to replace the GCC-runtime with the
GNUstep-runtime? If this is more palatable, then is it a worthwhile avenue
to pursue?

My suggestion is, essentially, to get GCC to a more compatible position.


> At the end of the day, GNUstep has been around for a very long time, and
>> like it or not, backward-compatibility is important. I personally believe,
>> based on some of the discussion here, completely dropping GCC is going to
>> be cause more problems than it solves. Whatever the decision, the
>> implementation should be well planned and deliberate.
>>
>
> I'm not so convinced.   GCC does nothing, but slow us down.
>

That could be said about all backward-compatibility. A follow up question
is, does it hold us back enough to justify breaking compatibility? It seems
some people think yes, and others think no. We're at a stalemate, where no
progress can be expected to take place. For things to move forward, either
one side has to give in, or both sides can compromise and agree to a middle
ground.


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

Stefan

>

Reply via email to