Re: asdf:defsystem complains about path, sometimes
Mirko Vukovic <[email protected]>
| Newsgroups | gmane.editors.j.devel |
|---|---|
| Message-ID | <CAO73BAAWS-V39SvG3wCLmN-mLDTsksVuiLepE8cmuu2k=zWQBA@mail.gmail.com> |
Trivially fixed with :pathname option (see below), but still, was that the expected behavior On Wed, Mar 1, 2017 at 11:00 AM Mirko Vukovic <[email protected]> wrote: > Hello, > > This is with asdf 3.1.7.27, > Armed Bear Common Lisp 1.4.0 > Java 1.6.0_41 Sun Microsystems Inc. > OpenJDK 64-Bit Server VM, > Emacs & Slime > > The following example code from the ASDF manual > > (asdf:defsystem "hello-lisp" > :description "hello-lisp: a sample Lisp system." > :version "0.0.1" > :author "Joe User <[email protected]>" > :licence "Public Domain" > :depends-on ("optima.ppcre" "command-line-arguments") > :components ((:file "packages") > (:file "macros" :depends-on ("packages")) > (:file "hello" :depends-on ("macros")))) > > when executed via the ABCL command line gives a relative path error > > Invalid relative pathname #P"packages.lisp" for component ("hello-lisp" > "packages") > Restarts: > 0: RETRY Retry ASDF operation. > 1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting > the configuration. > 2: TOP-LEVEL Return to top level. > > If that code is in a file, then the file compiles cleanly: > > CL-USER(6): (load (compile-file "test.asd")) > ; Compiling /home/mv/projects/poi+excel/test.asd ... > ; (IN-PACKAGE :CL-USER) > ; (ASDF/PARSE-DEFSYSTEM:DEFSYSTEM "hello-lisp" ...) > ; Wrote /home/mv/projects/poi+excel/test.abcl (0.021 seconds) > T > CL-USER(7): > > I am looking for confirmation of this and second opinions before taking up > at the ASDF mailing list. > > Thanks, > > Mirko > > The execution failure can be fixed by adding :pathname #P"..." to the system definition. This seems to be in conflict with the ASDF manual: 6.3.13 Source location (:pathname) The :pathname option is optional in all cases for systems defined via defsystem, and generally is unnecessary. In the simple case, source files will be found in the same directory as the system or, in the case of modules, in a subdirectory with the same name as the module. Mirko