Re: Claude AI code audit of GNUstep core stack — 1 50 fixes, 12 perf optimizations, all available for upstream

Todd White <[email protected]> Mon, 13 Apr 2026 11:41:11 -0400
Newsgroups gmane.comp.lib.gnustep.devel
Message-ID <CAAAC8A+Tc9BNxqB4nVQqH3VFjyAACJh7dd2JzLUn6Fjsi5v=6w@mail.gmail.com>
--0000000000002394a8064f59524e
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Patryk,

We are currently instrumenting and doing Benchmarks for performance in all
cases. If a change negatively impacts performance, it is rolled back unless
it addresses a concurrency issue or assertion failure. We will make sure to
include the benchmarks and documentation as it is developed.

Cheers,

Todd


On Mon, Apr 13, 2026 at 11:37=E2=80=AFAM Patryk Laurent <[email protected]> w=
rote:

>
> I would advise that each change (each fix, each optimization, etc) be
> submitted as a separate reviewable PR.  Ideally, signed off by the
> contributor.
>
> Furthermore in the case of each optimization a benchmark should probably
> be done.
>
> Thank you,
> Patryk
>
>
> --
> Patryk Laurent, Ph.D
> San Diego, CA
> w: http://pakl.net/
>
> On Apr 13, 2026, at 07:40, R Frith-Macdonald <[email protected]=
k>
> wrote:
>
> =EF=BB=BF
> On 13/04/2026 04:35, Todd White wrote:
>
> Hi GNUstep Team,
>
>
> As an exercise to test out the latest Claude AI capabilities, we recently
> completed a comprehensive, bottom-up code audit of the GNUstep core stack=
 =E2=80=94
> all seven repositories =E2=80=94 covering libobjc2, libs-base, libs-coreb=
ase,
> libs-opal, libs-quartzcore, libs-gui, and libs-back.
>
>
> Thanks for that, it looks like very worthwhile work.  I can't really
> comment on other packages, but I'd certainly like to incorporate a lot of
> that into GNUstep-base.  In the areas of the base library I can see quite=
 a
> mixture of stuff, some of which is already known, other parts are quite
> new.  For instance, at one extreme having server verification off by
> default was a decision from many years back, but one where a change was
> long overdue, while at the other extreme the check for cross-thread
> autorelease pool draining deals with such a perverse situation (I find it
> hard to concieve of any way to accidentally do that) that it's quite
> delightful to have a check/fix for it (though classifying it as a critica=
l
> issue seems silly).
>
> In an ideal world, I'd want to see an individual patch for each issue.
> The patch would contain the source code change, the corresponding
> testcases, and a ChangeLog entry, but the cloned repos contain only the
> first of those.
>
> Can the LLM take the testcases it has generated and rewrite them as
> portable (excluding objc2 and/or platform specific features or controllin=
g
> them with preprocessor macros) code as used by the gnustep regression
> testing framework, and add them to the regression tests in each package?
>
> Thanks
>
>
>
>

--0000000000002394a8064f59524e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,sa=
ns-serif">Hi Patryk,</div><div class=3D"gmail_default" style=3D"font-family=
:arial,sans-serif"><br></div><div class=3D"gmail_default" style=3D"font-fam=
ily:arial,sans-serif">We are currently instrumenting and doing Benchmarks f=
or performance in all cases. If a change negatively impacts performance, it=
 is rolled back unless it addresses a concurrency issue or assertion failur=
e. We will make sure to include the benchmarks and documentation as it is d=
eveloped.</div><div class=3D"gmail_default" style=3D"font-family:arial,sans=
-serif"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,s=
ans-serif">Cheers,</div><div class=3D"gmail_default" style=3D"font-family:a=
rial,sans-serif"><br></div><div class=3D"gmail_default" style=3D"font-famil=
y:arial,sans-serif">Todd</div><div class=3D"gmail_default" style=3D"font-fa=
mily:arial,sans-serif"><br></div></div><br><div class=3D"gmail_quote gmail_=
quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Apr 13, 2026=
 at 11:37=E2=80=AFAM Patryk Laurent &lt;<a href=3D"mailto:[email protected]">=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex"><div dir=3D"auto"><div dir=3D"ltr"><br></div><div dir=3D"ltr=
">I would advise that each change (each fix, each optimization, etc) be sub=
mitted as a separate reviewable PR.=C2=A0 Ideally, signed off by the contri=
butor.=C2=A0</div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Furthermore i=
n the case of each optimization a benchmark should probably be done.</div><=
div dir=3D"ltr"><br></div><div dir=3D"ltr">Thank you,</div><div dir=3D"ltr"=
>Patryk</div><div dir=3D"ltr"><br><br id=3D"m_6284193341757949970lineBreakA=
tBeginningOfSignature"><div dir=3D"ltr"><div><span style=3D"background-colo=
r:rgba(255,255,255,0)">--</span></div><div id=3D"m_6284193341757949970Apple=
MailSignature"><span style=3D"background-color:rgba(255,255,255,0)">Patryk =
Laurent, Ph.D</span></div><div id=3D"m_6284193341757949970AppleMailSignatur=
e" style=3D"direction:inherit"><span style=3D"background-color:rgba(255,255=
,255,0)">San Diego, CA</span></div><div id=3D"m_6284193341757949970AppleMai=
lSignature" style=3D"direction:inherit">w: <a href=3D"http://pakl.net/" tar=
get=3D"_blank">http://pakl.net/</a></div><div id=3D"m_6284193341757949970Ap=
pleMailSignature" style=3D"direction:inherit"><br></div></div><blockquote t=
ype=3D"cite">On Apr 13, 2026, at 07:40, R Frith-Macdonald &lt;<a href=3D"ma=
ilto:[email protected]" target=3D"_blank">richard@frithmacdonald=
.me.uk</a>&gt; wrote:<br><br></blockquote></div><blockquote type=3D"cite"><=
div dir=3D"ltr">=EF=BB=BF<span></span><br><span>On 13/04/2026 04:35, Todd W=
hite wrote:</span><br><blockquote type=3D"cite"><span>Hi GNUstep Team,</spa=
n><br></blockquote><blockquote type=3D"cite"><span></span><br></blockquote>=
<blockquote type=3D"cite"><span>As an exercise to test out the latest Claud=
e AI capabilities, we recently completed a comprehensive, bottom-up code au=
dit of the GNUstep core stack =E2=80=94 all seven repositories =E2=80=94 co=
vering libobjc2, libs-base, libs-corebase, libs-opal, libs-quartzcore, libs=
-gui, and libs-back.</span><br></blockquote><span></span><br><span>Thanks f=
or that, it looks like very worthwhile work.=C2=A0 I can&#39;t really comme=
nt on other packages, but I&#39;d certainly like to incorporate a lot of th=
at into GNUstep-base.=C2=A0 In the areas of the base library I can see quit=
e a mixture of stuff, some of which is already known, other parts are quite=
 new.=C2=A0 For instance, at one extreme having server verification off by =
default was a decision from many years back, but one where a change was lon=
g overdue, while at the other extreme the check for cross-thread autoreleas=
e pool draining deals with such a perverse situation (I find it hard to con=
cieve of any way to accidentally do that) that it&#39;s quite delightful to=
 have a check/fix for it (though classifying it as a critical issue seems s=
illy).</span><br><span></span><br><span>In an ideal world, I&#39;d want to =
see an individual patch for each issue.=C2=A0 The patch would contain the s=
ource code change, the corresponding testcases, and a ChangeLog entry, but =
the cloned repos contain only the first of those.</span><br><span></span><b=
r><span>Can the LLM take the testcases it has generated and rewrite them as=
 portable (excluding objc2 and/or platform specific features or controlling=
 them with preprocessor macros) code as used by the gnustep regression test=
ing framework, and add them to the regression tests in each package?</span>=
<br><span></span><br><span>Thanks</span><br><span></span><br><span></span><=
br><span></span><br></div></blockquote></div></blockquote></div>

--0000000000002394a8064f59524e--