On Mon, Nov 5, 2012 at 12:57 PM, Mark Cox <markcox80@gmail.com> wrote:
I am not sure if Juan reads this list. He may have a better idea on how to achieve this approach.

I am afraid I do not know what grovel is doing, but all what you mentioned in your email is correct. ECL needs both files because that is the only correct way to build a shared library out of an ASDF definition. In the past we only kept the FASL and threw away the object file, which implied a second recompilation for every new operation and this led to unwanted changes in the order of ASDF -- the resulting libraries were not identical to the process of loading a clean and fresh ASDF library.

What I do not understand is why cffi-grovel is dealing with the output of a compile-op operation. I would have implemented http://common-lisp.net/project/cffi/manual/html_node/Groveller-ASDF-Integration.html#Groveller-ASDF-Integration using the following ASDF dependency rule (method on depends-on or something like that)

load-op grovel-file -> grovel-op grovel-file & load-op resulting-lisp-file
compile-op grovel-file -> grovel-op grovel-file & compile-op resulting-lisp-file

This parallel rule would ensure that the intermediate lisp is always generated (via grovel-op) and the grovel-file does not have to deal with compilation itself, which is delegated to the load/compile-op on the resulting file.

Juanjo

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain) 
http://juanjose.garciaripoll.googlepages.com