Greetings,
I have trouble running ABCL's Lisp test suites:
$ ant abcl.test ...lots of output... [java] Caught :ASDF/FIND-COMPONENT:MISSING-DEPENDENCY while processing --eval option "(asdf:test-system :abcl/test/ansi/compiled)": [java] #<MISSING-DEPENDENCY {1337E679}> [java] Java Result: 2 ...etc...
Do you have any idea?
Thanks Alessio
Which java version are you running? (Not an expert, but I guess that can matter.)
Am 27. Mai 2019 20:07:56 MESZ schrieb Alessio Stalla alessiostalla@gmail.com:
Greetings,
I have trouble running ABCL's Lisp test suites:
$ ant abcl.test ...lots of output... [java] Caught :ASDF/FIND-COMPONENT:MISSING-DEPENDENCY while processing --eval option "(asdf:test-system :abcl/test/ansi/compiled)": [java] #<MISSING-DEPENDENCY {1337E679}> [java] Java Result: 2 ...etc...
Do you have any idea?
Thanks Alessio
1.8, sorry, forgot to specify. Thanks!
On Mon, 27 May 2019 at 20:24, Gunter Königsmann gunter@peterpall.de wrote:
Which java version are you running? (Not an expert, but I guess that can matter.)
Am 27. Mai 2019 20:07:56 MESZ schrieb Alessio Stalla < alessiostalla@gmail.com>:
Greetings,
I have trouble running ABCL's Lisp test suites:
$ ant abcl.test ...lots of output... [java] Caught :ASDF/FIND-COMPONENT:MISSING-DEPENDENCY while processing --eval option "(asdf:test-system :abcl/test/ansi/compiled)": [java] #<MISSING-DEPENDENCY {1337E679}> [java] Java Result: 2 ...etc...
Do you have any idea?
Thanks Alessio
-- Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
On May 27, 2019, at 20:07, Alessio Stalla alessiostalla@gmail.com wrote:
Greetings,
I have trouble running ABCL's Lisp test suites:
$ ant abcl.test ...lots of output... [java] Caught :ASDF/FIND-COMPONENT:MISSING-DEPENDENCY while processing --eval option "(asdf:test-system :abcl/test/ansi/compiled)": [java] #<MISSING-DEPENDENCY {1337E679}> [java] Java Result: 2 ...etc...
Do you have any idea?
What does (asdf:find-system :abcl) return?
You need to have the [ANSI-TEST repository cloned locally][ansi-test] as a sibling of where “abcl.asd” is located. This is noted in the [comments within “abcl.asd”][1], and we could certainly profit for a better message in the signaled condition.
TODO automate this as part of the things [ABCL-BUILD][abcl-build] can install locally for the user.
[ansi-test]: https://gitlab.common-lisp.net/ansi-test/ansi-test.git [1]: https://abcl.org/trac/browser/trunk/abcl/abcl.asd#L86 [abcl-build]: https://abcl.org/trac/browser/trunk/abcl/contrib/abcl-build/build
Thanks. Indeed, it does not find the system:
*$ java -jar dist/abcl.jar Armed Bear Common Lisp 1.6.0-devJava 1.8.0_171 Oracle CorporationJava HotSpot(TM) 64-Bit Server VMLow-level initialization completed in 0.273 seconds.Startup completed in 1.399 seconds.Loading /home/alessio/.abclrc completed in 8.881 seconds.Type ":help" for a list of available commands.CL-USER(1): (asdf:find-system :abcl)#<THREAD "interpreter" {3DF12085}>: Debugger invoked on condition of type MISSING-COMPONENT Component "abcl" not foundRestarts: 0: RETRY Retry ASDF operation. 1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting the configuration. 2: TOP-LEVEL Return to top level.[1] CL-USER(2): asdf:*central-registry*(#P"/home/alessio/quicklisp/quicklisp/")[1] CL-USER(3): (push #P"." asdf:*central-registry*)(#P"./" #P"/home/alessio/quicklisp/quicklisp/")[1] CL-USER(4): 0#<:ASDF/SYSTEM:SYSTEM "abcl">*
Is this a bad interaction with Quicklisp? This is my .abclrc:
*;;; The following lines added by ql:add-to-init-file:#-quicklisp(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))) (when (probe-file quicklisp-init) (load quicklisp-init)))*
Thanks, Alessio
On Sat, 1 Jun 2019 at 02:12, Mark Evenson evenson@panix.com wrote:
On May 27, 2019, at 20:07, Alessio Stalla alessiostalla@gmail.com
wrote:
Greetings,
I have trouble running ABCL's Lisp test suites:
$ ant abcl.test ...lots of output... [java] Caught :ASDF/FIND-COMPONENT:MISSING-DEPENDENCY while
processing --eval option "(asdf:test-system :abcl/test/ansi/compiled)":
[java] #<MISSING-DEPENDENCY {1337E679}> [java] Java Result: 2
...etc...
Do you have any idea?
What does (asdf:find-system :abcl) return?
You need to have the [ANSI-TEST repository cloned locally][ansi-test] as a sibling of where “abcl.asd” is located. This is noted in the [comments within “abcl.asd”][1], and we could certainly profit for a better message in the signaled condition.
TODO automate this as part of the things [ABCL-BUILD][abcl-build] can install locally for the user.
-- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now."
I think I found out. This command works:
java -jar dist/abcl.jar --eval '(require (quote asdf))' --eval '(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration))' --eval '(asdf:test-system :abcl/test/ansi/compiled)'7
The difference? build.xml includes the --noinit argument. Which skips loading my init file which loads Quicklisp.
Apparently, ABCL's tests depend on prove [1] and it has to be installed manually, or found via Quicklisp.
[1] http://quickdocs.org/prove/
On Fri, 7 Jun 2019 at 14:33, Alessio Stalla alessiostalla@gmail.com wrote:
Thanks. Indeed, it does not find the system:
*$ java -jar dist/abcl.jar Armed Bear Common Lisp 1.6.0-devJava 1.8.0_171 Oracle CorporationJava HotSpot(TM) 64-Bit Server VMLow-level initialization completed in 0.273 seconds.Startup completed in 1.399 seconds.Loading /home/alessio/.abclrc completed in 8.881 seconds.Type ":help" for a list of available commands.CL-USER(1): (asdf:find-system :abcl)#<THREAD "interpreter" {3DF12085}>: Debugger invoked on condition of type MISSING-COMPONENT Component "abcl" not foundRestarts: 0: RETRY Retry ASDF operation. 1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting the configuration. 2: TOP-LEVEL Return to top level.[1] CL-USER(2): asdf:*central-registry*(#P"/home/alessio/quicklisp/quicklisp/")[1] CL-USER(3): (push #P"." asdf:*central-registry*)(#P"./" #P"/home/alessio/quicklisp/quicklisp/")[1] CL-USER(4): 0#<:ASDF/SYSTEM:SYSTEM "abcl">*
Is this a bad interaction with Quicklisp? This is my .abclrc:
*;;; The following lines added by ql:add-to-init-file:#-quicklisp(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))) (when (probe-file quicklisp-init) (load quicklisp-init)))*
Thanks, Alessio
On Sat, 1 Jun 2019 at 02:12, Mark Evenson evenson@panix.com wrote:
On May 27, 2019, at 20:07, Alessio Stalla alessiostalla@gmail.com
wrote:
Greetings,
I have trouble running ABCL's Lisp test suites:
$ ant abcl.test ...lots of output... [java] Caught :ASDF/FIND-COMPONENT:MISSING-DEPENDENCY while
processing --eval option "(asdf:test-system :abcl/test/ansi/compiled)":
[java] #<MISSING-DEPENDENCY {1337E679}> [java] Java Result: 2
...etc...
Do you have any idea?
What does (asdf:find-system :abcl) return?
You need to have the [ANSI-TEST repository cloned locally][ansi-test] as a sibling of where “abcl.asd” is located. This is noted in the [comments within “abcl.asd”][1], and we could certainly profit for a better message in the signaled condition.
TODO automate this as part of the things [ABCL-BUILD][abcl-build] can install locally for the user.
-- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now."
On Jun 9, 2019, at 16:24, Alessio Stalla alessiostalla@gmail.com wrote:
I think I found out. This command works:
java -jar dist/abcl.jar --eval '(require (quote asdf))' --eval '(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration))' --eval '(asdf:test-system :abcl/test/ansi/compiled)'7
The difference? build.xml includes the --noinit argument. Which skips loading my init file which loads Quicklisp.
Apparently, ABCL's tests depend on prove [1] and it has to be installed manually, or found via Quicklisp.
Only *some* of ABCL’s tests depend on PROVE which can indeed by loaded by Quicklisp. Having PROVE be a dependency of running the ABCL/TEST/ANSI/COMPILED is a mistake. The usage of the “—-noinit” flag in the Ant script is the right idea, but since Quicklisp is now needed to locate PROVE for only some tests, we should add code to probe for the existence of Quicklisp.
If you prefer, I believe you could bundle prove to avoid the Quicklisp dependency, perhaps as a git submodule...
Sent from my iPad
On Jun 11, 2019, at 04:58, Mark Evenson evenson@panix.com wrote:
On Jun 9, 2019, at 16:24, Alessio Stalla alessiostalla@gmail.com wrote:
I think I found out. This command works:
java -jar dist/abcl.jar --eval '(require (quote asdf))' --eval '(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration))' --eval '(asdf:test-system :abcl/test/ansi/compiled)'7
The difference? build.xml includes the --noinit argument. Which skips loading my init file which loads Quicklisp.
Apparently, ABCL's tests depend on prove [1] and it has to be installed manually, or found via Quicklisp.
Only *some* of ABCL’s tests depend on PROVE which can indeed by loaded by Quicklisp. Having PROVE be a dependency of running the ABCL/TEST/ANSI/COMPILED is a mistake. The usage of the “—-noinit” flag in the Ant script is the right idea, but since Quicklisp is now needed to locate PROVE for only some tests, we should add code to probe for the existence of Quicklisp.
-- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now."
On Jun 11, 2019, at 14:05, Robert P. Goldman rpgoldman@sift.net wrote:
If you prefer, I believe you could bundle prove to avoid the Quicklisp dependency, perhaps as a git submodule…
It is certainly a way forward to consider bundling PROVE, but since ABCL already has a mechanism to install Quicklisp from the network by using its unique capability to CL:OPEN a given URI, the better way forward might be:
0) improve the handler for the condition to introspect the message from the condition signalled via ASDF
1) introspect the existence of Quicklisp, installing if not present
(require :abcl-contrib) (asdf:load-system :quicklisp-abcl)
2) then load and execute ABCL/TEST/ANSI/COMPILED (asdf:test-system :abcl/test/ansi/compile)
As a first stab, I will remove the reference to PROVE in the abcl.asd definition, as this shouldn’t be happening as the :DEPENDS-ON (:PROVE) stanza is a sibling dependency tree as near as I can tell. I should swag [Ionna’s code][asd-graph] to visualize the dependencies to see if this is indeed the case.
In any event, I *really8* don’t want to mess with git submodules: I’d add a “vendor” directory before submitting to that mess of a lack of engineering…
[asd-graph]: https://gitlab.common-lisp.net/idimitriou/asd-graph
This should be straightforward. You would catch a `missing-component` error whose `missing-requires` is equal to `(asdf:coerce-name "prove")` (the `coerce-name` is *probably* unnecessary), and do the `ql:install` as needed and then apply the `retry` restart.
On 11 Jun 2019, at 9:43, Mark Evenson wrote:
On Jun 11, 2019, at 14:05, Robert P. Goldman rpgoldman@sift.net wrote:
If you prefer, I believe you could bundle prove to avoid the Quicklisp dependency, perhaps as a git submodule…
It is certainly a way forward to consider bundling PROVE, but since ABCL already has a mechanism to install Quicklisp from the network by using its unique capability to CL:OPEN a given URI, the better way forward might be:
- improve the handler for the condition to introspect the message
from the condition signalled via ASDF
- introspect the existence of Quicklisp, installing if not present
(require :abcl-contrib) (asdf:load-system :quicklisp-abcl)
- then load and execute ABCL/TEST/ANSI/COMPILED
(asdf:test-system :abcl/test/ansi/compile)
As a first stab, I will remove the reference to PROVE in the abcl.asd definition, as this shouldn’t be happening as the :DEPENDS-ON (:PROVE) stanza is a sibling dependency tree as near as I can tell. I should swag [Ionna’s code][asd-graph] to visualize the dependencies to see if this is indeed the case.
In any event, I *really8* don’t want to mess with git submodules: I’d add a “vendor” directory before submitting to that mess of a lack of engineering…
-- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now."
On Jun 11, 2019, at 17:13, Robert Goldman rpgoldman@sift.net wrote:
This should be straightforward. You would catch a missing-component error whose missing-requires is equal to (asdf:coerce-name "prove") (the coerce-name is probably unnecessary), and do the ql:install as needed and then apply the retry restart.
Thanks for the sketch: It is especially helpful to know about ASDF:COERCE-NAME!
armedbear-devel@common-lisp.net