Hello,
using asdf with quicklisp it seems that the :version component is not optional but actually required. Maybe this can be mentioned in §6.1 "The defsystem form"
The documentation reads
- This system also defines a bunch of metadata. While it is optional to define these fields (and other fields like :bug-tracker, :mailto, :long-name, :long-description, :source-control), it is strongly recommended to define the fields :description, :version, :author, and :licence, especially if you intend your software to be eventually included in Quicklisp.
If I try to ql:quickload:
====================================================== (asdf:defsystem #:foo-pkg :description "foo pkg" :author "MS" :components ((#:file "package"))) ======================================================
I get
====================================================== Error while trying to load definition for system foo-pkg from pathname /home/mirko/quicklisp/local-projects/foo-pkg/foo-pkg.asd: don't recognize component type #:FILE [Condition of type ASDF/FIND-SYSTEM:LOAD-SYSTEM-DEFINITION-ERROR] ======================================================
with the :version component it works ====================================================== (asdf:defsystem #:foo-pkg :description "foo pkg" :author "MS" :author "0.0.1" :components ((#:file "package"))) ======================================================
====================================================== CL-USER> (ql:quickload "foo-pkg") To load "foo-pkg": Load 1 ASDF system: foo-pkg ; Loading "foo-pkg"
("foo-pkg") ======================================================
Regards
No, the version component is not required. There is something else going wrong here.
I can't tell what might be going wrong, because I can't tell:
1. What version of ASDF are you using? What does `(asdf:asdf-version)` report?
2. What is the error and backtrace? This isn't a straightforward copy out of a Lisp REPL, because, for example, the following is not a correct form:
``` (asdf:defsystem #:foo-pkg :description "foo pkg" :author "MS" :author "0.0.1" :components ((#:file "package"))) ```
The above has two `:author` fields and no `:version` field.
3. Finally, I have no way of telling what is happening inside `quickload` before it calls `asdf:defsystem`.
4. I suspect the problem is actually that you are using an uninterned symbol, `#:file` instead of the keyword symbol `:file`.
R
On 22 Mar 2024, at 15:46, Mirko Scholz wrote:
Hello,
using asdf with quicklisp it seems that the :version component is not optional but actually required. Maybe this can be mentioned in §6.1 "The defsystem form"
The documentation reads
- This system also defines a bunch of metadata. While it is optional
to define these fields (and other fields like :bug-tracker, :mailto, :long-name, :long-description, :source-control), it is strongly recommended to define the fields :description, :version, :author, and :licence, especially if you intend your software to be eventually included in Quicklisp.
If I try to ql:quickload:
====================================================== (asdf:defsystem #:foo-pkg :description "foo pkg" :author "MS" :components ((#:file "package"))) ======================================================
I get
====================================================== Error while trying to load definition for system foo-pkg from pathname /home/mirko/quicklisp/local-projects/foo-pkg/foo-pkg.asd: don't recognize component type #:FILE [Condition of type ASDF/FIND-SYSTEM:LOAD-SYSTEM-DEFINITION-ERROR] ======================================================
with the :version component it works
(asdf:defsystem #:foo-pkg :description "foo pkg" :author "MS" :author "0.0.1" :components ((#:file "package"))) ======================================================
====================================================== CL-USER> (ql:quickload "foo-pkg") To load "foo-pkg": Load 1 ASDF system: foo-pkg ; Loading "foo-pkg"
("foo-pkg")
Regards