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-Integrat... 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