Re: Claude AI code audit of GNUstep core stack — 150 fixes, 12 perf optimizations, all availa ble for upstream

Patryk Laurent <[email protected]> Mon, 13 Apr 2026 08:37:26 -0700
Newsgroups gmane.comp.lib.gnustep.devel
Message-ID <[email protected]>
--Apple-Mail-CF580FF3-E711-409C-B050-25FBA2C40AA3
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable


I would advise that each change (each fix, each optimization, etc) be submit=
ted as a separate reviewable PR.  Ideally, signed off by the contributor.=20=


Furthermore in the case of each optimization a benchmark should probably be d=
one.

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]=
> wrote:
>=20
> =EF=BB=BF
>> On 13/04/2026 04:35, Todd White wrote:
>> Hi GNUstep Team,
>>=20
>> 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-c=
orebase, libs-opal, libs-quartzcore, libs-gui, and libs-back.
>=20
> Thanks for that, it looks like very worthwhile work.  I can't really comme=
nt on other packages, but I'd certainly like to incorporate a lot of that in=
to 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 i=
nstance, at one extreme having server verification off by default was a deci=
sion 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 deal=
s with such a perverse situation (I find it hard to concieve of any way to a=
ccidentally do that) that it's quite delightful to have a check/fix for it (=
though classifying it as a critical issue seems silly).
>=20
> In an ideal world, I'd want to see an individual patch for each issue.  Th=
e patch would contain the source code change, the corresponding testcases, a=
nd a ChangeLog entry, but the cloned repos contain only the first of those.
>=20
> Can the LLM take the testcases it has generated and rewrite them as portab=
le (excluding objc2 and/or platform specific features or controlling them wi=
th preprocessor macros) code as used by the gnustep regression testing frame=
work, and add them to the regression tests in each package?
>=20
> Thanks
>=20
>=20
>=20

--Apple-Mail-CF580FF3-E711-409C-B050-25FBA2C40AA3
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html class=3D"apple-mail-supports-explicit-dark-mode"><head><meta http-equi=
v=3D"content-type" content=3D"text/html; charset=3Dutf-8"></head><body dir=3D=
"auto"><div dir=3D"ltr"><br></div><div dir=3D"ltr">I would advise that each c=
hange (each fix, each optimization, etc) be submitted as a separate reviewab=
le PR. &nbsp;Ideally, signed off by the contributor.&nbsp;</div><div dir=3D"=
ltr"><br></div><div dir=3D"ltr">Furthermore in the case of each optimization=
 a benchmark should probably be done.</div><div dir=3D"ltr"><br></div><div d=
ir=3D"ltr">Thank you,</div><div dir=3D"ltr">Patryk</div><div dir=3D"ltr"><br=
><br id=3D"lineBreakAtBeginningOfSignature"><div dir=3D"ltr"><div><span styl=
e=3D"background-color: rgba(255, 255, 255, 0);">--</span></div><div id=3D"Ap=
pleMailSignature"><span style=3D"background-color: rgba(255, 255, 255, 0);">=
Patryk Laurent, Ph.D</span></div><div id=3D"AppleMailSignature" style=3D"dir=
ection: inherit;"><span style=3D"background-color: rgba(255, 255, 255, 0);">=
San Diego, CA</span></div><div id=3D"AppleMailSignature" style=3D"direction:=
 inherit;">w: http://pakl.net/</div><div id=3D"AppleMailSignature" style=3D"=
direction: inherit;"><br></div></div><blockquote type=3D"cite">On Apr 13, 20=
26, at 07:40, R Frith-Macdonald &lt;[email protected]&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 White wrote:</span><br><blo=
ckquote type=3D"cite"><span>Hi GNUstep Team,</span><br></blockquote><blockqu=
ote type=3D"cite"><span></span><br></blockquote><blockquote type=3D"cite"><s=
pan>As an exercise to test out the latest Claude AI capabilities, we recentl=
y 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-c=
orebase, libs-opal, libs-quartzcore, libs-gui, and libs-back.</span><br></bl=
ockquote><span></span><br><span>Thanks for that, it looks like very worthwhi=
le work.&nbsp; I can't really comment on other packages, but I'd certainly l=
ike to incorporate a lot of that into GNUstep-base.&nbsp; In the areas of th=
e base library I can see quite a mixture of stuff, some of which is already k=
nown, other parts are quite new.&nbsp; For instance, at one extreme having s=
erver verification off by default was a decision from many years back, but o=
ne 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 q=
uite delightful to have a check/fix for it (though classifying it as a criti=
cal issue seems silly).</span><br><span></span><br><span>In an ideal world, I=
'd want to see an individual patch for each issue.&nbsp; The patch would con=
tain the source code change, the corresponding testcases, and a ChangeLog en=
try, but the cloned repos contain only the first of those.</span><br><span><=
/span><br><span>Can the LLM take the testcases it has generated and rewrite t=
hem as portable (excluding objc2 and/or platform specific features or contro=
lling them with preprocessor macros) code as used by the gnustep regression t=
esting framework, and add them to the regression tests in each package?</spa=
n><br><span></span><br><span>Thanks</span><br><span></span><br><span></span>=
<br><span></span><br></div></blockquote></body></html>=

--Apple-Mail-CF580FF3-E711-409C-B050-25FBA2C40AA3--