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!
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 rpgoldman@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!
Thank you so much for the quick and helpful response, Daniel! (And happy new year)
On 10 Jan 2024, at 1:30, Daniel Kochmański wrote:
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 rpgoldman@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!
Robert P. Goldman Research Fellow Smart Information Flow Technologies (d/b/a SIFT, LLC)
319 N. First Ave., Suite 400 Minneapolis, MN 55401
Voice: (612) 326-3934 Email: rpgoldman@SIFT.net