Hi Faré,

On 08/12/2012, at 2:23 PM, Faré wrote:

> On Fri, Dec 7, 2012 at 7:37 PM, Mark Cox <markco...@gmail.com> wrote:
>>> Right, it seems that for some reason ASDF is not picking up
>>> basix-unixint's compile-time dependency on packages.lisp. Does that
>>> seem like a plausible (if incomplete) explanation?
>> 
>> Yes you are correct. The problem can be seen with ASDF::TRAVERSE returning 
>> the wrong plan:
>> 
>>> (asdf::traverse (make-instance 'asdf:load-op) (asdf:find-system "osicat"))
>> 
>> ((#<ASDF:LOAD-OP NIL {100793C8D3}>
>>  . #<ASDF:CL-SOURCE-FILE "osicat" "osicat-sys" "osicat-sys">)
>> (#<ASDF:LOAD-OP NIL {100793C8D3}> . #<ASDF:MODULE "osicat" "osicat-sys">)
>> (#<CFFI-GROVEL::PROCESS-OP NIL {10076A7263}>
>>  . #<CFFI-GROVEL:GROVEL-FILE "osicat" "posix" "basic-unixint">)
>> (#<ASDF:LOAD-OP NIL {10077E2133}>
>>  . #<ASDF:CL-SOURCE-FILE "osicat" "posix" "packages">)
>> (#<ASDF:COMPILE-OP NIL {1007609953}>
>>  . #<CFFI-GROVEL:GROVEL-FILE "osicat" "posix" "basic-unixint">)
>> ....
>> 
>> For some reason there exists a PROCESS-OP on "basic-unixint" before the 
>> LOAD-OP on "packages".
>> 
> Did you define a method on component-depends-on, so that
> process-op will depend on the load-op?
> 
> Something like that might do:
> 
> (defmethod component-depends-on ((o process-op) (c grovel-file))
>  `((load-op ,@(component-load-dependencies c))
>    ,@(call-next-method)))
> 
> You might even skip the call-next-method.

No I had not. Adding this method solves the problem that Luis encountered. I 
have attached a new patch incorporating this method. Thank you for your help.

Attachment: 0001-CFFI-GROVEL-now-uses-ASDF-operations-to-compile-and-.patch
Description: Binary data


Let me know if there are any other issues.

Thanks
Mark
_______________________________________________
cffi-devel mailing list
cffi-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel

Reply via email to