Hi François,

I tried out the binary-op and that works, the only thing I didn't like about it is that dependent libraries must also be precompiled-systems.
The suggestion on creating my own operation seems like a little bit of overkill for what I want to do.

Another possibility that occurred to me is to create a new file, load-grovel.lisp that just falls (load) on the fasl directly and thus bypasses the defsystem loader. The defsystem would list this file instead of the grovel.lisp file. Cons are that I am modifying a third-party library, but I think that's inevitable no matter which solution I choose.

Many Thanks for all of the suggestions! They were very helpful.

Kevin

On Wed, Dec 11, 2013 at 6:04 PM, Faré <fahree@gmail.com> wrote:
>: Yellow Dog <yellowdog967@gmail.com>
> I'm currently working with lisp-zmq which uses grovel to create the CFFI
> declarations. This is fine and works great on my development box, but I
> would prefer not to require that other developers in my organization also
> run grovel.
>
> As such, I would like to be able to check in the files that were generated
> by grovel and have these automatically loaded in other environments.
>

> This already works! However, my problem is that in our environment, ASDF
> compiles fasls into a default user output path and then loads them
> (something like ~/.cache/common-lisp/...). I will not have any control over
> the content at this location prior to loading the lisp-zmq system for the
> first time, and so there isn't really anywhere that I can automatically
> deploy the pre-generated grovel files.
>
> My questions are:
> * Is there any way to specify using defsystem that a local fasl should be
> used?
>
There is always a way for everything. You could change some
input-files or output-files or translate method
to check for a shared cache, and use it if it's up to date.

> * Are there any suggestions that anybody can give me to solve my problem.
> Perhaps I should precompile the lisp-zmq system and load that instead.
>
Have you tried ASDF3's binary-op? It should help you get what you want:
a single fasl for your system and a .asd file to load it.
Or you could somehow preload it and use register-preloaded-system.

> I'd rather not change any of the behavior on anybody's development
> environment, so (asdf:disable-output-translations) isn't an option.
> I'd like to have this self contained as much as possible.
>
It's hard to tell without deeper knowledge of your company's setup.

I'd like to recommend you use Google's build system instead,
but it's not (yet) available to the public.


—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Free Market is not the end of every large-scale economical problem;
but it's the beginning to any long-term solution to anyone of them.

Free Software is not the end of every large-scale software problem;
but it's the beginning to any long-term solution to anyone of them.

Freedom is not the end of every large-scale problem;
but it's the beginning to any long-term solution to anyone of them.
                — Faré