[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: libobjc2 build issue
From: |
David Chisnall |
Subject: |
Re: libobjc2 build issue |
Date: |
Sun, 1 Dec 2019 11:23:49 +0000 |
On 1 Dec 2019, at 10:17, Riccardo Mottola <riccardo.mottola@libero.it> wrote:
>
> Right. Please do not distort things. While I make sure that everything is
> "gcc clean" for my own use, I do test, run and build GNUstep with clang
> almost daily. My main workstation is FreeBSD + Clang + GNUstep. Of course, it
> means I do not use any features of this setup that would not work in the
> equivalent GCC path, but it still gets used. All software I run or maintain
> works in this setup.
That’s exactly my point. If all of the core GNUstep developers are building
things on top of GNUstep that work with the core OpenStep-era Objective-C
language and runtime, then none of those things are going to stress test any of
the bits of GNUstep that depend on the newer features.
There are lots of subtle corner cases in things like weak references in the
presence of concurrency, C++ exception interop in Objective-C++, and so on that
will only work reliably if people are testing them in ways that go
significantly beyond easy unit testing (though many of them can subsequently be
reduced to simple regression tests).
I have fixed a number of bugs in these issues over the last couple of years,
but none of them were reported by core GNUstep developers. Since I know that
GNUstep developers are pretty good about filing bug reports when they encounter
issues, this tells me that you are not seeing these issues, which tells me that
you’re not hitting any of these code paths in anything that you are about.
NSMapTable with weak objects or keys is not an unusual pattern in Cocoa
applications (GitHub finds almost 2K occurrences of weakToStrongObjectsMapTable
in a quick search), but it has been broken in GNUstep since 2013. How many of
the people listed on this page[1] have written code that depended on correct
functioning of weak references? How many have written anything that uses ARC
in a non-trivial way? Or anything that tests Objective-C++?
I expect the OpenStep parts of GNUstep to work very well, because I expect that
many people on that list are testing a large subset of them on a regular basis,
but anything that depends on modern Objective-C or Objective-C++ will work only
if someone downstream uses them, discovers that they’re broken, and engages
with the project long enough for them to be fixed.
David
[1] https://github.com/orgs/gnustep/people