[consfigurator] which package is *CONSFIG*

Sean Whitton spwhitton at spwhitton.name
Fri Dec 10 21:43:54 GMT 2021


Hello,

On Wed 08 Dec 2021 at 06:35PM GMT, Yehouda Harpaz wrote:

> Looking at the fix in the sources:
>
> 1) I would make the init-form just a function call
>       (get-default-systems)
>   and then define GET-DEFAULT-SYSTEMS to what is the current the
>   initform. Having such a large piece of code inside the defclass make
>   it difficult to debug. 
>
> 2) Instead of the handler-case form, I would use something like:
>
>     (let ((sym (find-symbol ...")))
>        (when (boundp sym) (symbol-value sym)))
>
>    that avoids a call to ERROR if the symbol is not bound. Even though
>    the call to ERROR is caught, it is still not useful, because the
>    system has to do some work before reaching teh point of deciding to
>    throw out. It is also a problem for any kind of code that tries to
>    record error calls even if they are caught. In addition, it is much more
>    efficient code, because handler-case is quite a heavy machinary
>    even when error is not invoked.

Good, thanks, implemented something like this now.

> 3) As far as I can see the test will give the warning, because nothing
>     sets *package*, so it will be be CL-USER, or whatever the current
>     package is when the test is executed). Also need to document in
>     the documentation the requirement for *package* to be the same as
>     in the call in-consfig.

It's not a requirement, which is why it's a warning not an error.
Ideally I could arrange for a MUFFLE-WARNING handler to be in effect
while the tests are run, but I'm not sure how to do that with ASDF.

-- 
Sean Whitton



More information about the sgo-software-discuss mailing list