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-cp...
On Tue, Aug 18, 2015 at 1:21 PM, Zach Beane xach@xach.com wrote:
"Pascal J. Bourguignon" pjb@informatimago.com writes:
On Aug 18, 2015, at 14:35 , Hamda Binte Ajmal <
hamda.binte.ajmal@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