[asdf-devel] Loading pre-compiled fasls

Yellow Dog yellowdog967 at gmail.com
Thu Dec 12 13:01:45 UTC 2013

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.


On Wed, Dec 11, 2013 at 6:04 PM, Faré <fahree at gmail.com> wrote:

> >: Yellow Dog <yellowdog967 at 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é
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20131212/7c2785f1/attachment.html>

More information about the asdf-devel mailing list