Thanks for the explanation. That makes good sense. I should probably add an RFE issue to fix this up and integrate it into ASDF's compilation process. Avoiding declaim and proclaim leakage of optimization switches is a worthy cause.

Best,
R

On 12 Dec 2023, at 10:51, Faré wrote:

That's probably my bad for never completing and testing this feature.

IIRC, it was originally meant to ensure that the optimization settings
used by ASDF should not be affected by those used outside of it, nor
affect them, so as to avoid weird side-effects wherein the behavior of
a system depends on which other systems you did or did not build
before it, which was causing "interesting" effects at times.

No, I'm not volunteering to fix it—I haven't actively used CL in years
(apart from my stumpwm configuration and some non-shell scripts I
haven't rewritten in Gerbil Scheme yet).

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
“The real danger is that one day machines *will* become intelligent,
but we’ll lack the mental equipment to notice.”
— Tiresias, in J.-P. Petit, “Run, Robot, Run”

On Tue, Dec 12, 2023 at 11:44 AM Robert Goldman <rpgoldman@sift.info> wrote:

Issue 48 on the ASDF GitLab repo concerns a bug in the with-optimization-settings macro in UIOP's lisp-build.lisp

I did some investigation and as far as I can tell:

There's no clear description of what this is supposed to do
There's no use of it anywhere in the ASDF + UIOP code base
It has never worked -- at least when I tried to test it, the tests failed all over the place.

Rather than trying to write a new implementation out of whole cloth, my Merge Request to address this issue simply rips this macro and some supporting functions and variables out of UIOP. Doing so breaks no tests (unlike trying to test it).

I feel a little uncomfortable removing functionality, but as I said, I cannot find any evidence that this has ever been used.

Absent any pushback -- and likely even with pushback, unless that pushback is accompanied by a MR that supplies a working implementation, I will make that merge, and this feature will vanish from UIOP.

Best,

R