Hey Robert, I've looked into this issue and it seems that it is a bug in ECL. Even on idempotent defpackage definitions it first removes use-list and then re-adds it, while the different part of the code enforces the lock. I've added the ticket to our tracker:
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/730 Best regards, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi On Tuesday, January 9th, 2024 at 16:48, Robert Goldman <rpgold...@sift.net> wrote: > In the regression test results for a bug fix to ASDF > (https://gitlab.common-lisp.net/asdf/asdf/-/jobs/63801), I see this error > which I don't understand at all: > > Cannot unuse package #<"COMMON-LISP" package> from locked package > #<"PACKAGE-INFERRED-SYSTEM-TEST/SBCL-EXT-LOCK" package>. > > The line that seems to be causing this is the following (in a test system): > > (defpackage package-inferred-system-test/sbcl-ext-lock > (:use :cl) > #+(or sbcl ecl) (:lock t) > (:export #:implemented-by-other-package)) > > More discussion about this is in ASDF Merge Request 226: > https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/226 > > The underlying issue is to try to make sure that implementation specific > defpackage extensions (like :lock) don't cause ASDF's defpackage groveler to > fail when working with package-defined systems. > > Thanks for any advice!