[asdf-devel] Is this a bug? or my error?

Robert Goldman rpgoldman at sift.info
Wed Jun 30 19:04:52 UTC 2010


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
> 





More information about the asdf-devel mailing list