asdf version 2.104
invalid method error for #1=#<STANDARD-METHOD ASDF:OPERATION-DONE-P ASDF::AROUND (ASDF:COMPILE-OP T) {AAE52D1}> method: The method #1# on #<STANDARD-GENERIC-FUNCTION ASDF:OPERATION-DONE-P (5)> has an invalid qualifier. Standard method combination requires all methods to have one of the single qualifiers :AROUND, :BEFORE and :AFTER or to have no qualifier at all. [Condition of type SIMPLE-ERROR]
Restarts: 0: [ABORT] Return to SLIME's top level. 1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" RUNNING {B558181}>)
Backtrace: 0: (SB-PCL::STANDARD-COMPUTE-EFFECTIVE-METHOD ..) 1: (SB-PCL::GET-SECONDARY-DISPATCH-FUNCTION2 ..) 2: (SB-PCL::GET-SECONDARY-DISPATCH-FUNCTION1 ..) 3: (SB-PCL::CACHE-MISS-VALUES-INTERNAL ..) 4: (SB-PCL::CACHE-MISS-VALUES #<STANDARD-GENERIC-FUNCTION ASDF:OPERATION-DONE-P (5)> (#<ASDF:COMPILE-OP NIL {B87D2B9}> #<ASDF:CL-SOURCE-FILE "iterate" "package">) SB-PCL::ACCESSOR) 5: (SB-PCL::INITIAL-DFUN #<STANDARD-GENERIC-FUNCTION ASDF:OPERATION-DONE-P (5)> (#<ASDF:COMPILE-OP NIL {B87D2B9}> #<ASDF:CL-SOURCE-FILE "iterate" "package">)) 6: ((SB-PCL::FAST-METHOD ASDF::DO-TRAVERSE (ASDF:OPERATION ASDF:COMPONENT T)) ..) 7: ((SB-PCL::FAST-METHOD ASDF::DO-TRAVERSE (ASDF:OPERATION ASDF:COMPONENT T)) ..) 8: (ASDF::DO-ONE-DEP #<ASDF:LOAD-OP NIL {B879DC1}> #ASDF:SYSTEM "iterate" #<CLOSURE (FLET ASDF::COLLECT) {B87A76D}> ASDF:COMPILE-OP "iterate" NIL) 9: ((FLET ASDF::DEP) ASDF:COMPILE-OP "iterate" NIL) 10: (ASDF::DO-DEP #<ASDF:LOAD-OP NIL {B879DC1}> #ASDF:SYSTEM "iterate" #<CLOSURE (FLET ASDF::COLLECT) {B87A76D}> ASDF:COMPILE-OP ("iterate")) 11: ((SB-PCL::FAST-METHOD ASDF::DO-TRAVERSE (ASDF:OPERATION ASDF:COMPONENT T)) ..) 12: ((SB-PCL::FAST-METHOD ASDF::TRAVERSE (ASDF:OPERATION ASDF:COMPONENT)) #<unavailable argument> #<unavailable argument> #<ASDF:LOAD-OP NIL {B879DC1}> #<ASDF:SYSTEM "iterate">) 13: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unavailable argument> #<unavailable argument> ASDF:LOAD-OP #ASDF:SYSTEM "iterate")[:EXTERNAL] 14: (ASDF::MODULE-PROVIDE-ASDF :ITERATE) 15: ((LAMBDA (#:G[REQUIRE]13)) ASDF::MODULE-PROVIDE-ASDF) 16: (SB-IMPL::%MAP-FOR-EFFECT-ARITY-1 #<CLOSURE (LAMBDA #) {B873E1D}> (ASDF::MODULE-PROVIDE-ASDF SB-IMPL::MODULE-PROVIDE-CONTRIB)) 17: (REQUIRE :ITERATE NIL) 18: (SB-INT:SIMPLE-EVAL-IN-LEXENV (REQUIRE :ITERATE) #<NULL-LEXENV>) 19: (SWANK::%EVAL-REGION "(require :iterate)\n") 20: ((LAMBDA ())) 21: (SWANK::TRACK-PACKAGE #<CLOSURE (LAMBDA #) {B873A9D}>) 22: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA #) {B873A85}>) 23: (SWANK::%LISTENER-EVAL "(require :iterate)\n") 24: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(require :iterate)\n") #<NULL-LEXENV>) 25: (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(require :iterate)\n") "COMMON-LISP-USER" 8) 26: (SWANK::PROCESS-REQUESTS NIL) 27: ((LAMBDA ())) 28: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {B740E9D}>) 29: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {B740E9D}>) 30: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #) (*STANDARD-INPUT* . #) (*TRACE-OUTPUT* . #) (*ERROR-OUTPUT* . #) (*DEBUG-IO* . #) (*QUERY-IO* . #) ...) #<CLOSURE (LAMBDA #) {B740EB5}>) 31: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {AD5A301}> #<CLOSURE (LAMBDA #) {B740E9D}>) 32: (SWANK::HANDLE-REQUESTS #<SWANK::CONNECTION {AD5A301}> NIL) 33: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {B55B08D}>) 34: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK351]356)) 35: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) 36: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]293)) 37: (SB-THREAD::CALL-WITH-MUTEX ..) 38: (SB-THREAD::INITIAL-THREAD-FUNCTION) 39: ("foreign function: #x8066EDB") 40: ("foreign function: #x8052A6D") 41: ("foreign function: #x805DD30") 42: ("foreign function: #xB7FB380E")
On 6/28/10 Jun 28 -10:39 AM, Louis A. Turk wrote:
asdf version 2.104
It looks suspiciously like either (1) you are mixing different versions of ASDF, including one from before Faré eliminated the internal 'ASDF::AROUND method qualifier, (2) someone in the definition of ITERATE, or possibly another system, broke the abstraction and defined an ASDF:AROUND method or (3) you have some stale fasl mixed in.
HtH,
r
invalid method error for #1=#<STANDARD-METHOD ASDF:OPERATION-DONE-P ASDF::AROUND (ASDF:COMPILE-OP T) {AAE52D1}> method: The method #1# on #<STANDARD-GENERIC-FUNCTION ASDF:OPERATION-DONE-P (5)> has an invalid qualifier. Standard method combination requires all methods to have one of the single qualifiers :AROUND, :BEFORE and :AFTER or to have no qualifier at all. [Condition of type SIMPLE-ERROR]
Restarts: 0: [ABORT] Return to SLIME's top level. 1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" RUNNING {B558181}>)
Backtrace: 0: (SB-PCL::STANDARD-COMPUTE-EFFECTIVE-METHOD ..) 1: (SB-PCL::GET-SECONDARY-DISPATCH-FUNCTION2 ..) 2: (SB-PCL::GET-SECONDARY-DISPATCH-FUNCTION1 ..) 3: (SB-PCL::CACHE-MISS-VALUES-INTERNAL ..) 4: (SB-PCL::CACHE-MISS-VALUES #<STANDARD-GENERIC-FUNCTION ASDF:OPERATION-DONE-P (5)> (#<ASDF:COMPILE-OP NIL {B87D2B9}> #<ASDF:CL-SOURCE-FILE "iterate" "package">) SB-PCL::ACCESSOR) 5: (SB-PCL::INITIAL-DFUN #<STANDARD-GENERIC-FUNCTION ASDF:OPERATION-DONE-P (5)> (#<ASDF:COMPILE-OP NIL {B87D2B9}> #<ASDF:CL-SOURCE-FILE "iterate" "package">)) 6: ((SB-PCL::FAST-METHOD ASDF::DO-TRAVERSE (ASDF:OPERATION ASDF:COMPONENT T)) ..) 7: ((SB-PCL::FAST-METHOD ASDF::DO-TRAVERSE (ASDF:OPERATION ASDF:COMPONENT T)) ..) 8: (ASDF::DO-ONE-DEP #<ASDF:LOAD-OP NIL {B879DC1}> #ASDF:SYSTEM "iterate" #<CLOSURE (FLET ASDF::COLLECT) {B87A76D}> ASDF:COMPILE-OP "iterate" NIL) 9: ((FLET ASDF::DEP) ASDF:COMPILE-OP "iterate" NIL) 10: (ASDF::DO-DEP #<ASDF:LOAD-OP NIL {B879DC1}> #ASDF:SYSTEM "iterate" #<CLOSURE (FLET ASDF::COLLECT) {B87A76D}> ASDF:COMPILE-OP ("iterate")) 11: ((SB-PCL::FAST-METHOD ASDF::DO-TRAVERSE (ASDF:OPERATION ASDF:COMPONENT T)) ..) 12: ((SB-PCL::FAST-METHOD ASDF::TRAVERSE (ASDF:OPERATION ASDF:COMPONENT)) #<unavailable argument> #<unavailable argument> #<ASDF:LOAD-OP NIL {B879DC1}> #<ASDF:SYSTEM "iterate">) 13: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unavailable argument> #<unavailable argument> ASDF:LOAD-OP #ASDF:SYSTEM "iterate")[:EXTERNAL] 14: (ASDF::MODULE-PROVIDE-ASDF :ITERATE) 15: ((LAMBDA (#:G[REQUIRE]13)) ASDF::MODULE-PROVIDE-ASDF) 16: (SB-IMPL::%MAP-FOR-EFFECT-ARITY-1 #<CLOSURE (LAMBDA #) {B873E1D}> (ASDF::MODULE-PROVIDE-ASDF SB-IMPL::MODULE-PROVIDE-CONTRIB)) 17: (REQUIRE :ITERATE NIL) 18: (SB-INT:SIMPLE-EVAL-IN-LEXENV (REQUIRE :ITERATE) #<NULL-LEXENV>) 19: (SWANK::%EVAL-REGION "(require :iterate)\n") 20: ((LAMBDA ())) 21: (SWANK::TRACK-PACKAGE #<CLOSURE (LAMBDA #) {B873A9D}>) 22: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA #) {B873A85}>) 23: (SWANK::%LISTENER-EVAL "(require :iterate)\n") 24: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(require :iterate)\n") #<NULL-LEXENV>) 25: (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(require :iterate)\n") "COMMON-LISP-USER" 8) 26: (SWANK::PROCESS-REQUESTS NIL) 27: ((LAMBDA ())) 28: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {B740E9D}>) 29: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {B740E9D}>) 30: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #) (*STANDARD-INPUT* . #) (*TRACE-OUTPUT* . #) (*ERROR-OUTPUT* . #) (*DEBUG-IO* . #) (*QUERY-IO* . #) ...) #<CLOSURE (LAMBDA #) {B740EB5}>) 31: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {AD5A301}> #<CLOSURE (LAMBDA #) {B740E9D}>) 32: (SWANK::HANDLE-REQUESTS #<SWANK::CONNECTION {AD5A301}> NIL) 33: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {B55B08D}>) 34: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK351]356)) 35: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) 36: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]293)) 37: (SB-THREAD::CALL-WITH-MUTEX ..) 38: (SB-THREAD::INITIAL-THREAD-FUNCTION) 39: ("foreign function: #x8066EDB") 40: ("foreign function: #x8052A6D") 41: ("foreign function: #x805DD30") 42: ("foreign function: #xB7FB380E")
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
On Mon, 2010-06-28 at 11:23 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -10:39 AM, Louis A. Turk wrote:
asdf version 2.104
It looks suspiciously like either (1) you are mixing different versions of ASDF, including one from before Faré eliminated the internal 'ASDF::AROUND method qualifier, (2) someone in the definition of ITERATE, or possibly another system, broke the abstraction and defined an ASDF:AROUND method or (3) you have some stale fasl mixed in.
HtH,
r
Thanks for replying. You were right about this. However, I'm still having a problem. I'm getting the following error message:
failed to find the TRUENAME of /home/lat/lisp/il/collate.lisp:
The problem is that collate.lisp is is not in the /home/lat/lisp/il/ directory. It is in the /home/lat/lisp/collate/ directory.
I've been reading sections 3.1 and 5.3.6 of the asdf2 manual, and trying to apply what is written there, but it doesn't seem to help with the above problem. I'm probably misunderstanding something. Would you please point me in the right direction?
Louis
On 6/28/10 Jun 28 -2:03 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 11:23 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -10:39 AM, Louis A. Turk wrote:
asdf version 2.104
It looks suspiciously like either (1) you are mixing different versions of ASDF, including one from before Faré eliminated the internal 'ASDF::AROUND method qualifier, (2) someone in the definition of ITERATE, or possibly another system, broke the abstraction and defined an ASDF:AROUND method or (3) you have some stale fasl mixed in.
HtH,
r
Thanks for replying. You were right about this. However, I'm still having a problem. I'm getting the following error message:
failed to find the TRUENAME of /home/lat/lisp/il/collate.lisp:
The problem is that collate.lisp is is not in the /home/lat/lisp/il/ directory. It is in the /home/lat/lisp/collate/ directory.
I've been reading sections 3.1 and 5.3.6 of the asdf2 manual, and trying to apply what is written there, but it doesn't seem to help with the above problem. I'm probably misunderstanding something. Would you please point me in the right direction?
Can you post the .asd file that gives rise to this, and a backtrace?
Cheers, r
On 28 June 2010 15:03, Louis A. Turk lou@dayspringpublisher.com wrote:
Thanks for replying. You were right about this. However, I'm still having a problem. I'm getting the following error message:
failed to find the TRUENAME of /home/lat/lisp/il/collate.lisp:
The problem is that collate.lisp is is not in the /home/lat/lisp/il/ directory. It is in the /home/lat/lisp/collate/ directory.
I've been reading sections 3.1 and 5.3.6 of the asdf2 manual, and trying to apply what is written there, but it doesn't seem to help with the above problem. I'm probably misunderstanding something. Would you please point me in the right direction?
Looks like a bug in your .asd file. Can we see it? If the code isn't publicly available, you might want to paste relevant bits on paste.lisp.org and send the URL.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] The man who will use his skill and constructive imagination to see how much he can give for a dollar, instead of how little he can give for a dollar, is bound to succeed. — Henry Ford
On Mon, 2010-06-28 at 14:10 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -2:03 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 11:23 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -10:39 AM, Louis A. Turk wrote:
asdf version 2.104
It looks suspiciously like either (1) you are mixing different versions of ASDF, including one from before Faré eliminated the internal 'ASDF::AROUND method qualifier, (2) someone in the definition of ITERATE, or possibly another system, broke the abstraction and defined an ASDF:AROUND method or (3) you have some stale fasl mixed in.
HtH,
r
Thanks for replying. You were right about this. However, I'm still having a problem. I'm getting the following error message:
failed to find the TRUENAME of /home/lat/lisp/il/collate.lisp:
The problem is that collate.lisp is is not in the /home/lat/lisp/il/ directory. It is in the /home/lat/lisp/collate/ directory.
I've been reading sections 3.1 and 5.3.6 of the asdf2 manual, and trying to apply what is written there, but it doesn't seem to help with the above problem. I'm probably misunderstanding something. Would you please point me in the right direction?
Can you post the .asd file that gives rise to this, and a backtrace?
Cheers, r
The contents of laturk-unique.asd:
(in-package :asdf) (defsystem "laturk-unique" :version "0.1.0" :name "laturk-unique" :author "Louis A. Turk" :description "Converts utf-8 text file to list of sorted unique words." :components ((:file "packages") (:file "iterate" :depends-on ("packages")) (:file "collate" :depends-on ("iterate")) (:file "laturk-unique" :depends-on ("collate"))))
The contents of packages.lisp:
(in-package :common-lisp-user) (defpackage :laturk-unique (:use #:cl) (:shadowing-import-from #:collate . #.(collate::external-symbols)))
Thank you very much for looking at this. I thought the problem was fixed, but is still plagues me. I'm just a beginner at Lisp, and rather confused about how to use asdf and packages. I've read the docs many times, but seem to be missing something.
Louis
On 6/30/10 Jun 30 -12:52 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 14:10 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -2:03 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 11:23 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -10:39 AM, Louis A. Turk wrote:
asdf version 2.104
It looks suspiciously like either (1) you are mixing different versions of ASDF, including one from before Faré eliminated the internal 'ASDF::AROUND method qualifier, (2) someone in the definition of ITERATE, or possibly another system, broke the abstraction and defined an ASDF:AROUND method or (3) you have some stale fasl mixed in.
HtH,
r
Thanks for replying. You were right about this. However, I'm still having a problem. I'm getting the following error message:
failed to find the TRUENAME of /home/lat/lisp/il/collate.lisp:
The problem is that collate.lisp is is not in the /home/lat/lisp/il/ directory. It is in the /home/lat/lisp/collate/ directory.
I've been reading sections 3.1 and 5.3.6 of the asdf2 manual, and trying to apply what is written there, but it doesn't seem to help with the above problem. I'm probably misunderstanding something. Would you please point me in the right direction?
Can you post the .asd file that gives rise to this, and a backtrace?
Cheers, r
The contents of laturk-unique.asd:
(in-package :asdf) (defsystem "laturk-unique" :version "0.1.0" :name "laturk-unique" :author "Louis A. Turk" :description "Converts utf-8 text file to list of sorted unique words." :components ((:file "packages") (:file "iterate" :depends-on ("packages")) (:file "collate" :depends-on ("iterate")) (:file "laturk-unique" :depends-on ("collate"))))
A couple of random suggestions:
1. Don't put this into the :asdf package. If you want to, create your own package, using ASDF and COMMON-LISP, and put the definition in there (there's some debate about whether this is strictly necessary, but that's a subtlety we don't need to go into now).
2. Don't rely on transitive closure for dependencies. E.g., probably collate depends on packages as well as iterate and similarly for laturk-unique.
There's nothing obviously wrong with the above, though. Question: can you give us more information about what happens when you do
(asdf:oos 'asdf:load-op :laturk-unique)
(or, if you're using asdf2, (asdf:load-system :laturk-unique) )?
I'm not sure it it's failing to find ANY of your files or only collate.lisp --- is collate.lisp the first one it tries to open?
Also, when you get this error, collect a backtrace from the debugger and pass it on, please.
cheers,
r
The contents of packages.lisp:
(in-package :common-lisp-user) (defpackage :laturk-unique (:use #:cl) (:shadowing-import-from #:collate . #.(collate::external-symbols)))
Thank you very much for looking at this. I thought the problem was fixed, but is still plagues me. I'm just a beginner at Lisp, and rather confused about how to use asdf and packages. I've read the docs many times, but seem to be missing something.
Louis
The contents of laturk-unique.asd:
(in-package :asdf) (defsystem "laturk-unique" :version "0.1.0" :name "laturk-unique" :author "Louis A. Turk" :description "Converts utf-8 text file to list of sorted unique words." :components ((:file "packages") (:file "iterate" :depends-on ("packages")) (:file "collate" :depends-on ("iterate")) (:file "laturk-unique" :depends-on ("collate"))))
A couple of random suggestions:
- Don't put this into the :asdf package. If you want to, create your
own package, using ASDF and COMMON-LISP, and put the definition in there (there's some debate about whether this is strictly necessary, but that's a subtlety we don't need to go into now).
I beg to disagree. If you're not going to define new bindings, and particularly if you're not even going to intern new symbols, there's nothing wrong with being in package ASDF.
- Don't rely on transitive closure for dependencies. E.g., probably
collate depends on packages as well as iterate and similarly for laturk-unique.
Here too I beg to disagree. Unless and until there is a tool for which this makes a difference, the only criterion for choosing what dependencies to explicitly include is what makes for a more maintainable result, at which point the author knows best.
There's nothing obviously wrong with the above, though. Question: can you give us more information about what happens when you do
(asdf:oos 'asdf:load-op :laturk-unique)
(or, if you're using asdf2, (asdf:load-system :laturk-unique) )?
I'm not sure it it's failing to find ANY of your files or only collate.lisp --- is collate.lisp the first one it tries to open?
Also, when you get this error, collect a backtrace from the debugger and pass it on, please.
Yup. Also, tell us in what directories things are, and whether you made any changes to ASDF default settings.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Nothing is particularly hard if you divide it into small jobs. — Henry Ford
On Wed, 2010-06-30 at 14:04 -0500, Robert Goldman wrote:
On 6/30/10 Jun 30 -12:52 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 14:10 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -2:03 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 11:23 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -10:39 AM, Louis A. Turk wrote:
asdf version 2.104
It looks suspiciously like either (1) you are mixing different versions of ASDF, including one from before Faré eliminated the internal 'ASDF::AROUND method qualifier, (2) someone in the definition of ITERATE, or possibly another system, broke the abstraction and defined an ASDF:AROUND method or (3) you have some stale fasl mixed in.
HtH,
r
Thanks for replying. You were right about this. However, I'm still having a problem. I'm getting the following error message:
failed to find the TRUENAME of /home/lat/lisp/il/collate.lisp:
The problem is that collate.lisp is is not in the /home/lat/lisp/il/ directory. It is in the /home/lat/lisp/collate/ directory.
I've been reading sections 3.1 and 5.3.6 of the asdf2 manual, and trying to apply what is written there, but it doesn't seem to help with the above problem. I'm probably misunderstanding something. Would you please point me in the right direction?
Can you post the .asd file that gives rise to this, and a backtrace?
Cheers, r
The contents of laturk-unique.asd:
(in-package :asdf) (defsystem "laturk-unique" :version "0.1.0" :name "laturk-unique" :author "Louis A. Turk" :description "Converts utf-8 text file to list of sorted unique words." :components ((:file "packages") (:file "iterate" :depends-on ("packages")) (:file "collate" :depends-on ("iterate")) (:file "laturk-unique" :depends-on ("collate"))))
A couple of random suggestions:
- Don't put this into the :asdf package. If you want to, create your
own package, using ASDF and COMMON-LISP, and put the definition in there (there's some debate about whether this is strictly necessary, but that's a subtlety we don't need to go into now).
- Don't rely on transitive closure for dependencies. E.g., probably
collate depends on packages as well as iterate and similarly for laturk-unique.
There's nothing obviously wrong with the above, though. Question: can you give us more information about what happens when you do
(asdf:oos 'asdf:load-op :laturk-unique)
(or, if you're using asdf2, (asdf:load-system :laturk-unique) )?
I'm not sure it it's failing to find ANY of your files or only collate.lisp --- is collate.lisp the first one it tries to open?
Also, when you get this error, collect a backtrace from the debugger and pass it on, please.
cheers,
r
The contents of packages.lisp:
(in-package :common-lisp-user) (defpackage :laturk-unique (:use #:cl) (:shadowing-import-from #:collate . #.(collate::external-symbols)))
Thank you very much for looking at this. I thought the problem was fixed, but is still plagues me. I'm just a beginner at Lisp, and rather confused about how to use asdf and packages. I've read the docs many times, but seem to be missing something.
Louis
For some reason it is looking in the wrong directory.
Results of (asdf:load-system :laturk-unique):
failed to find the TRUENAME of /home/lat/lisp/il/iterate.lisp: No such file or directory [Condition of type SB-INT:SIMPLE-FILE-ERROR]
Restarts: 0: [TRY-RECOMPILING] Try recompiling iterate 1: [RETRY] Retry performing #<ASDF:COMPILE-OP NIL {D1CA191}> on #<ASDF:CL-SOURCE-FILE "laturk-unique" "iterate">. 2: [ACCEPT] Continue, treating #<ASDF:COMPILE-OP NIL {D1CA191}> on #<ASDF:CL-SOURCE-FILE "laturk-unique" "iterate"> as having been successful. 3: [*ABORT] Return to SLIME's top level. 4: [TERMINATE-THREAD] Terminate this thread (#<THREAD "new-repl-thread" RUNNING {BCA0019}>)
Backtrace: 0: (SB-IMPL::SIMPLE-FILE-PERROR "failed to find the TRUENAME of ~A" #P"/home/lat/lisp/il/iterate.lisp" 2) 1: ((FLET SB-IMPL::FAIL) "failed to find the TRUENAME of ~A" #P"/home/lat/lisp/il/iterate.lisp" 2) 2: (SB-IMPL::QUERY-FILE-SYSTEM #P"/home/lat/lisp/il/iterate.lisp" :TRUENAME T) 3: (TRUENAME #P"/home/lat/lisp/il/iterate.lisp") 4: ((FLET SB-C::TRY-WITH-TYPE) #P"/home/lat/lisp/il/iterate.lisp" "lisp" T) 5: (SB-C::VERIFY-SOURCE-FILE #P"/home/lat/lisp/il/iterate.lisp") 6: (SB-C::VERIFY-SOURCE-FILE #P"/home/lat/lisp/il/iterate.lisp")[:EXTERNAL] 7: (COMPILE-FILE #P"/home/lat/lisp/il/iterate.lisp")[:EXTERNAL] 8: (ASDF:COMPILE-FILE* #P"/home/lat/lisp/il/iterate.lisp")[:EXTERNAL] 9: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) ..) 10: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1.)) ..) 11: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) ..) 12: ((LAMBDA ())) 13: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK)) 14: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]324)) 15: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..) 16: ((FLET SB-C::WITH-IT)) 17: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unavailable argument> #<unavailable argument> ASDF:LOAD-OP :LATURK-UNIQUE)[:EXTERNAL] 18: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF:LOAD-SYSTEM :LATURK-UNIQUE) #<NULL-LEXENV>) 19: (SWANK::%EVAL-REGION "(asdf:load-system :laturk-unique)\n") 20: ((LAMBDA ())) 21: (SWANK::TRACK-PACKAGE #<CLOSURE (LAMBDA #) {CBBC2FD}>) 22: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA #) {CBBC2E5}>) 23: (SWANK::%LISTENER-EVAL "(asdf:load-system :laturk-unique)\n") 24: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(asdf:load-system :laturk-unique)\n") #<NULL-LEXENV>) 25: (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(asdf:load-system :laturk-unique)\n") "COMMON-LISP-USER" 154) 26: (SWANK::PROCESS-REQUESTS NIL) 27: ((LAMBDA ())) 28: ((LAMBDA ())) 29: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {BCA10A5}>) 30: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {BCA10A5}>) 31: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #) (*STANDARD-INPUT* . #) (*TRACE-OUTPUT* . #) (*ERROR-OUTPUT* . #) (*DEBUG-IO* . #) (*QUERY-IO* . #) ...) #<CLOSURE (LAMBDA #) {BCA10B5}>) 32: (SWANK::HANDLE-REQUESTS #<SWANK::CONNECTION {ADAD4E9}> NIL) 33: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {BCA1085}>) 34: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK362]367)) 35: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) 36: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) 37: (SB-THREAD::CALL-WITH-MUTEX ..) 38: (SB-THREAD::INITIAL-THREAD-FUNCTION) 39: ("foreign function: #x806793B") 40: ("foreign function: #x8052D7D") 41: ("foreign function: #x805E660") 42: ("foreign function: #xB7FB380E")
Please send a tarball. Do you use symlinks of any kind?
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] He has the first half of the Golden Rule down pat: Do unto others. — John McCarthy
On 30 June 2010 15:50, Louis A. Turk lou@dayspringpublisher.com wrote:
On Wed, 2010-06-30 at 14:04 -0500, Robert Goldman wrote:
On 6/30/10 Jun 30 -12:52 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 14:10 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -2:03 PM, Louis A. Turk wrote:
On Mon, 2010-06-28 at 11:23 -0500, Robert Goldman wrote:
On 6/28/10 Jun 28 -10:39 AM, Louis A. Turk wrote: > asdf version 2.104 > It looks suspiciously like either (1) you are mixing different versions of ASDF, including one from before Faré eliminated the internal 'ASDF::AROUND method qualifier, (2) someone in the definition of ITERATE, or possibly another system, broke the abstraction and defined an ASDF:AROUND method or (3) you have some stale fasl mixed in.
HtH,
r
Thanks for replying. You were right about this. However, I'm still having a problem. I'm getting the following error message:
failed to find the TRUENAME of /home/lat/lisp/il/collate.lisp:
The problem is that collate.lisp is is not in the /home/lat/lisp/il/ directory. It is in the /home/lat/lisp/collate/ directory.
I've been reading sections 3.1 and 5.3.6 of the asdf2 manual, and trying to apply what is written there, but it doesn't seem to help with the above problem. I'm probably misunderstanding something. Would you please point me in the right direction?
Can you post the .asd file that gives rise to this, and a backtrace?
Cheers, r
The contents of laturk-unique.asd:
(in-package :asdf) (defsystem "laturk-unique" :version "0.1.0" :name "laturk-unique" :author "Louis A. Turk" :description "Converts utf-8 text file to list of sorted unique words." :components ((:file "packages") (:file "iterate" :depends-on ("packages")) (:file "collate" :depends-on ("iterate")) (:file "laturk-unique" :depends-on ("collate"))))
A couple of random suggestions:
- Don't put this into the :asdf package. If you want to, create your
own package, using ASDF and COMMON-LISP, and put the definition in there (there's some debate about whether this is strictly necessary, but that's a subtlety we don't need to go into now).
- Don't rely on transitive closure for dependencies. E.g., probably
collate depends on packages as well as iterate and similarly for laturk-unique.
There's nothing obviously wrong with the above, though. Question: can you give us more information about what happens when you do
(asdf:oos 'asdf:load-op :laturk-unique)
(or, if you're using asdf2, (asdf:load-system :laturk-unique) )?
I'm not sure it it's failing to find ANY of your files or only collate.lisp --- is collate.lisp the first one it tries to open?
Also, when you get this error, collect a backtrace from the debugger and pass it on, please.
cheers,
r
The contents of packages.lisp:
(in-package :common-lisp-user) (defpackage :laturk-unique (:use #:cl) (:shadowing-import-from #:collate . #.(collate::external-symbols)))
Thank you very much for looking at this. I thought the problem was fixed, but is still plagues me. I'm just a beginner at Lisp, and rather confused about how to use asdf and packages. I've read the docs many times, but seem to be missing something.
Louis
For some reason it is looking in the wrong directory.
Results of (asdf:load-system :laturk-unique):
failed to find the TRUENAME of /home/lat/lisp/il/iterate.lisp: No such file or directory [Condition of type SB-INT:SIMPLE-FILE-ERROR]
Restarts: 0: [TRY-RECOMPILING] Try recompiling iterate 1: [RETRY] Retry performing #<ASDF:COMPILE-OP NIL {D1CA191}> on #<ASDF:CL-SOURCE-FILE "laturk-unique" "iterate">. 2: [ACCEPT] Continue, treating #<ASDF:COMPILE-OP NIL {D1CA191}> on #<ASDF:CL-SOURCE-FILE "laturk-unique" "iterate"> as having been successful. 3: [*ABORT] Return to SLIME's top level. 4: [TERMINATE-THREAD] Terminate this thread (#<THREAD "new-repl-thread" RUNNING {BCA0019}>)
Backtrace: 0: (SB-IMPL::SIMPLE-FILE-PERROR "failed to find the TRUENAME of ~A" #P"/home/lat/lisp/il/iterate.lisp" 2) 1: ((FLET SB-IMPL::FAIL) "failed to find the TRUENAME of ~A" #P"/home/lat/lisp/il/iterate.lisp" 2) 2: (SB-IMPL::QUERY-FILE-SYSTEM #P"/home/lat/lisp/il/iterate.lisp" :TRUENAME T) 3: (TRUENAME #P"/home/lat/lisp/il/iterate.lisp") 4: ((FLET SB-C::TRY-WITH-TYPE) #P"/home/lat/lisp/il/iterate.lisp" "lisp" T) 5: (SB-C::VERIFY-SOURCE-FILE #P"/home/lat/lisp/il/iterate.lisp") 6: (SB-C::VERIFY-SOURCE-FILE #P"/home/lat/lisp/il/iterate.lisp")[:EXTERNAL] 7: (COMPILE-FILE #P"/home/lat/lisp/il/iterate.lisp")[:EXTERNAL] 8: (ASDF:COMPILE-FILE* #P"/home/lat/lisp/il/iterate.lisp")[:EXTERNAL] 9: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) ..) 10: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1.)) ..) 11: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) ..) 12: ((LAMBDA ())) 13: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK)) 14: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]324)) 15: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..) 16: ((FLET SB-C::WITH-IT)) 17: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unavailable argument> #<unavailable argument> ASDF:LOAD-OP :LATURK-UNIQUE)[:EXTERNAL] 18: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF:LOAD-SYSTEM :LATURK-UNIQUE) #<NULL-LEXENV>) 19: (SWANK::%EVAL-REGION "(asdf:load-system :laturk-unique)\n") 20: ((LAMBDA ())) 21: (SWANK::TRACK-PACKAGE #<CLOSURE (LAMBDA #) {CBBC2FD}>) 22: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA #) {CBBC2E5}>) 23: (SWANK::%LISTENER-EVAL "(asdf:load-system :laturk-unique)\n") 24: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(asdf:load-system :laturk-unique)\n") #<NULL-LEXENV>) 25: (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(asdf:load-system :laturk-unique)\n") "COMMON-LISP-USER" 154) 26: (SWANK::PROCESS-REQUESTS NIL) 27: ((LAMBDA ())) 28: ((LAMBDA ())) 29: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {BCA10A5}>) 30: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {BCA10A5}>) 31: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #) (*STANDARD-INPUT* . #) (*TRACE-OUTPUT* . #) (*ERROR-OUTPUT* . #) (*DEBUG-IO* . #) (*QUERY-IO* . #) ...) #<CLOSURE (LAMBDA #) {BCA10B5}>) 32: (SWANK::HANDLE-REQUESTS #<SWANK::CONNECTION {ADAD4E9}> NIL) 33: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {BCA1085}>) 34: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK362]367)) 35: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) 36: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) 37: (SB-THREAD::CALL-WITH-MUTEX ..) 38: (SB-THREAD::INITIAL-THREAD-FUNCTION) 39: ("foreign function: #x806793B") 40: ("foreign function: #x8052D7D") 41: ("foreign function: #x805E660") 42: ("foreign function: #xB7FB380E")
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
On 6/30/10 Jun 30 -2:11 PM, Faré wrote:
The contents of laturk-unique.asd:
(in-package :asdf) (defsystem "laturk-unique" :version "0.1.0" :name "laturk-unique" :author "Louis A. Turk" :description "Converts utf-8 text file to list of sorted unique words." :components ((:file "packages") (:file "iterate" :depends-on ("packages")) (:file "collate" :depends-on ("iterate")) (:file "laturk-unique" :depends-on ("collate"))))
A couple of random suggestions:
- Don't put this into the :asdf package. If you want to, create your
own package, using ASDF and COMMON-LISP, and put the definition in there (there's some debate about whether this is strictly necessary, but that's a subtlety we don't need to go into now).
I beg to disagree. If you're not going to define new bindings, and particularly if you're not even going to intern new symbols, there's nothing wrong with being in package ASDF.
I suppose that's true. I usually just use a dedicated package every time I make a system (it's part of a simple emacs template for .asd files), and then I know I'm safe and don't have to think.
If one is not going to intern new symbols, etc., one is safe, as you say. But to determine whether or not you are safe you have to think.
There's enough thinking to be done already, so I'm willing to dispense with it here! ;-)
- Don't rely on transitive closure for dependencies. E.g., probably
collate depends on packages as well as iterate and similarly for laturk-unique.
Here too I beg to disagree. Unless and until there is a tool for which this makes a difference, the only criterion for choosing what dependencies to explicitly include is what makes for a more maintainable result, at which point the author knows best.
Matter of style, I guess. I like to leave it to ASDF to do the transitive closure for me. Then if I cut a dependency (e.g., I realize that a file just contains DEFUNs that are not used at compile time), I don't end up inadvertently losing a dependency that only was tracked because of transitive closure.
As a matter of style, it's up to the author (as long as s/he gets it right!), since it should not have any effect on someone who just uses the library.
Best, r
The only other thing I can think of to suggest is to inspect the result of
(asdf:find-system :laturk-unique)
with particular attention to the component-pathname slot (I don't have the code in front of me, I'm afraid; this slot name may be wrong, but it should be easy to figure out the right one in the inspector).
Another thing to try:
collect the result of
(asdf::traverse (make-instance 'asdf:load-op) (asdf:find-system :laturk-unique))
I think it might be helpful to take that (let's say its bound to PLAN) and do:
(mapcar #'asdf::component-pathname (mapcar #'second plan))
which should give you the component pathnames of every component in the load plan asdf builds.
I'm hoping this will clarify matters.
best, r