discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Clang/LLVM migration roadmap


From: Andreas Fink
Subject: Re: Clang/LLVM migration roadmap
Date: Mon, 14 Feb 2022 09:54:29 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:52.0) Gecko/20100101 PostboxApp/7.0.54


Daniel Boyd wrote on 14.02.22 08:54:
> Riccardo,
>
> Thanks for the response. I agree there is certainly a distinction between the 
> user types and I, as a developer myself, was referring to #2. However, I 
> disagree that catering to each group is equally important at this juncture 
> for two reasons: 
>
> 1) GNUstep doesn’t currently have enough quality apps to attract user #1. 
> That is not to say, of course, that it has none, but I think it would be 
> uncontroversial to say that it could benefit from having more—a lot more. 
>
> 2) GNUstep’s utility comes not only from its general purpose end-user apps, 
> but also from its facility as a framework for people writing narrow-purpose, 
> highly customized apps. This is what I use GNUstep for primarily. My apps 
> will only ever be used by a small number of people in my company because they 
> are highly specialized to address a specific process or function unique to 
> us. Indeed, going back to the early 90’s, this has always been a strength of 
> the NEXTStep/OpenStep/GNUstep/Cocoa framework.
>
> For these two reasons, I believe it is more
> important for GNUstep to focus on attracting developers. And if you attract 
> more developers—particularly developers writing quality, general purpose 
> apps—that will, in turn, attract more end users. 
>
> Lastly, to your point about people having freedom to choose which tools they 
> want to use, I don’t disagree at all. This is FOSS and freedom is what makes 
> FOSS great. However, in the long run, if we want users of any kind to be able 
> to choose GNUstep at all, we need to grow the project now and that means 
> attracting more developers, in my humble opinion. 
>
> Cheers,
> Daniel
>
> Sent from my iPhone
>

I can only double that. If I look at myself, I use GNUstep because I
need portable apps on MacOS and Linux and other Unixes. If I would be
constrained to not using ARC, then basically, GNUstep would not be an
option as it would mean rewriting millions of lines of code to not use
ARC anymore. The world has moved on and ARC is a huge benefit to ObjC
developers. The memory management of ObjC is the main reason I moved
from plain C to ObjC in the first place and ARC is putting this to a
next level.

So its safe to assume that the majority of developers for applications
running under GNUstep will want to use ARC.
As ARC simply never will exist in GCC, this means clang support is
mandatory.
In consequence, compiling GNUstep itself should work well with clang
because a typical GNUStep application developer is the first candidate
to contribute to GNUstep itself.
Having to move back to GCC and non-arc stuff would basically mean going
3 steps back and will distract developers/contributors.

In other words, time spent on making clang & linkers run more smooth
with GNUstep is definitively much better time spent than trying to fix GCC.

For my own development I use GNUstep as Daniel. Some highly custom
applications. I run them mainly on Debian Linux and I run into many
issues in the beginning. Notably having to use a -specific- linker and a
-specific- compiler version. For me what works well is clang11 and the
gold linker. clang14 however does not work anymore for some reason. Most
of the tests fail with it. Using the stock linker doesn't work neither,
nor did the LLVM linker ldd which I found rather surprising. So we are
in delicate areas here.

As far as portability goes, all the platforms I am targeting are
supported by clang. Some embedded platforms might not be supported by
clang which are by gcc. But frankly these platforms are rather tiny (not
in market size but in memory , cpu power etc) so running GNUstep on
these would be most likely useless anyway.  After all GNUstep is for the
destktop.

The most important platforms I consider these days  are
    x86_64
    arm64
    arm
    risc-V
    i386

There might be other useful platforms around to easily support (like
powerPC, MIPS, Tile) but at the end of the day you have to ask yourself
how much benefit is it to run GNUstep on these and how much effort does
it take.







reply via email to

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