loading lisp files from inside the java jar

Hamda Binte Ajmal hamda.binte.ajmal at gmail.com
Tue Aug 18 13:08:57 UTC 2015


The only reason I installed quicklisp was that I needed to use cl-ppcre
package.
This is the post I posted about months ago when I started with my
application development
http://stackoverflow.com/questions/28172357/run-an-abcl-code-that-uses-cl-cppre


On Tue, Aug 18, 2015 at 1:21 PM, Zach Beane <xach at xach.com> wrote:

> "Pascal J. Bourguignon" <pjb at informatimago.com> writes:
>
> >>> On Aug 18, 2015, at 14:35 , Hamda Binte Ajmal <
> hamda.binte.ajmal at gmail.com> wrote:
> >>>
> >>> To be more specific
> >>>
> >>> The load statement looks like
> >>> (load
> "jar:file:C:/Users/Administrator.NUIG-1Z7HN12/Documents/NetBeansProjects/Interface/dist/Profet.jar!/aima/quicklisp/setup.lisp")
> >>>
> >>> and the error thrown is
> >>>
> >>> "Unhandled lisp condition: Can't ensure directory
> >>>
> #P"jar:file:C:/Users/Administrator.NUIG-1Z7HN12/Documents/NetBeansProjects/Interface/dist/Profet.jar!/./"
> >>> ancestor of
> >>>
> #P"jar:file:C:/Users/Administrator.NUIG-1Z7HN12/Documents/NetBeansProjects/Interface/dist/Profet.jar!/cache/asdf-fasls/07y1rt/asdf.abcl"."
> >
> > At last!
> >
> >
> > So the problem you have here is that when loading setup.lisp it tries
> > to compile asdf.lisp and to save the fasl file INSIDE the jar, as per
> > the cache directory determined by setup.lisp.
> >
> > IIRC, quicklisp respects the XDG Base Directory Specification to find
> > out the cache directory where to save the fasl.  So one option could
> > be to set the required XDG environment variables to direct it
> > elsewhere than inside the jar.
> >
> >   $ export XDG_CACHE_HOME=$HOME/.cache
> >   $ abcl
> >
> > could help.
> >
> > You might want to send a feature request to Xach (quicklisp) so that
> > it would detect this situation and adjust to a more convenient
> > behavior.
>
> Quicklisp does not look at XDG environment variables. The intent is that
> if no sufficiently-new ASDF is already loaded, it will try to compile to
> a fasl file in ~/quicklisp/cache/asdf-fasls/<hash>/.
>
> I was going to suggest loading a sufficiently new ASDF before trying to
> load the quicklisp/setup.lisp file.
>
> However, now that I look at the Quicklisp setup code, I see that it
> *unconditionally* does (ensure-directories-exist ...) on the asdf fasl
> cache directory, even though it should only be done if Quicklisp needs
> to compile its own ASDF.
>
> I think one option is to preload the asdf-fasl cache and put that in the
> jar.
>
> I'll open a Quicklisp issue for the unconditional fasl cache directory
> creation problem and try to fix it soon.
>
> Zach
>
>
>
>


-- 
Hamda Binte Ajmal
+92 344 550 7680
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20150818/5bba0363/attachment.html>


More information about the armedbear-devel mailing list