Jump to content

Quicklisp home in the wrong place?


Recommended Posts

Following from this question, I want to use several different Lisp packages through quicklisp, but I can't get the installation to work correctly. 

After doing some digging, I found out that the path to quicklisp is not defined correctly. This is the content of the ql:*quicklisp-home* global:

> ql:*quicklisp-home*
#P"/Users/opusmodus/quicklisp/"

 

I realised that changing this manually doesn't fix the issue, and because of this I can't install or use quicklisp correctly. Note that I do not have a user by the name opusmodus and creating that directory with my user's permission does not fix it. 

I managed to do something by using SBCL as my own user to load and install quicklisp, and then in opusmodus use the following:

(load #p"/Users/ajf-/quicklisp/setup.lisp")

 

But it's actually a workaround and it's not very reliable (also gives an error sometimes). Can you please point me in the right direction? 

Thank you very much

Link to comment
Share on other sites

The quicklisp folder should be in your home directory.
Try this:

(let ((quicklisp-init
       (merge-pathnames "quicklisp/setup.lisp"
                        "/Users/your-home-directory-name/")))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

 

Even better:

(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                         (user-homedir-pathname))))
    (when (probe-file quicklisp-init)
      (load quicklisp-init)))

 

Link to comment
Share on other sites

Thank you for your ultra quick reply I really appreciate that.

Doing that yields:

> (let ((quicklisp-init
       (merge-pathnames "quicklisp/setup.lisp"
                        "/Users/ajf-/")))
    (when (probe-file quicklisp-init)
        (load quicklisp-init)))
        
; Warning: loading dependencies of #<system "quicklisp"> completed without its input file #P"/Users/opusmodus/quicklisp/quicklisp/quicklisp.asd"
; While executing: #<standard-method asdf/action:compute-action-stamp (t asdf/operation:operation asdf/component:component)>, in process Listener-1(7).
> Error: File #P"/Users/opusmodus/quicklisp/quicklisp/package.lisp" not found
> While executing: ccl::fcomp-find-file, in process Listener-1(7).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.

 

Seems like it keeps referencing /Users/opusmodus regardless of that line. Maybe I should take further steps before this? Perhaps uninstall the quicklisp installation I did personally with SBCL? 

The second option you posted has the same effect.

Again, thanks

Link to comment
Share on other sites

That gives the correct result:

> (user-homedir-pathname)
#P"/Users/ajf-/"

 

Please don't hesitate to ask any sort of information from me to find a solution. I'll be happy to provide with whatever you need. 

Thank you

Link to comment
Share on other sites

I am really sorry, I really don't want to oblige and your support has been great, but it seems I'm having more trouble. I hope this is not just me being a dummy and it helps in some way:

 

1- asdf:*central-registry* keeps pointing to /Users/opusmodus. No big deal, I added a setf in ~/.ccl-init.lisp that configures it. Manually downloaded the libraries that are referenced by it (cl-store, alexandria, xmls, cl-ppcre, cl-interval -- no idea about "quantizers").

 

2- Installing drakma fails at usocket because Opmo can't find the CCL interfaces: https://gist.github.com/ajf-/8229a803a4717d589d59(probe-file "ccl:") shows "/Applications/" which doesn't seem quite right. (#_getpid) shows more info: https://gist.github.com/ajf-/920d3be32f7e241c1b0d.

I Manually installed ccl through brew install clozure-cl, and I tried to do: 

(ccl::replace-base-translation "ccl:" "/usr/local/Cellar/clozure-cl/1.10/libexec/")

 

But I keep getting Error: Foreign function not found errors with (#_getpid) and (ql:quickload "usocket"). Trying the Apple Store version of CCL (at "/Applications/Clozure CL.app/Contents/Resources/ccl/") did not work either. A custom svn co from http://ccl.clozure.com/download.html did not do the trick either. 

 

3- ~/.ccl-init.lisp doesn't seem to be loading on startup. 

I'll keep trying to sort this out tomorrow, but please let me know if there's something I am not doing right here and if there's any way I can help. 

 

Bests,
Alain

Link to comment
Share on other sites

On 29 September 2015 at 05:15:24, ajf- said:

I am really sorry, I really don't want to oblige and your support has been great, but it seems I'm having more trouble. I hope this is not just me being a dummy and it helps in some way:

 

1- asdf:*central-registry* keeps pointing to /Users/opusmodus. No big deal, I added a setf in ~/.ccl-init.lisp that configures it. Manually downloaded the libraries that are referenced by it (cl-store, alexandria, xmls, cl-ppcre, cl-interval -- no idea about "quantizers").

 

2- Installing drakma fails at usocket because Opmo can't find the CCL interfaces...

 

3- ~/.ccl-init.lisp doesn't seem to be loading on startup.

 

1) Fixed by downloading the updated Opusmodus.app, with changes I made yesterday. See http://opusmodus.com/forums/topic/310-opusmodus-1117247/

 

2) The interfaces don't ship with Opusmodus, and since they would bloat the app by 75 megabytes, I think it best to let programmers who need them do the heavy lifting for making them available in their environments. Here's how I made it work in the Guest account on my Mac:

 

Quote

# In a shell
cd
mkdir ccl
cd ccl
svn co http://svn.clozure.com/publicsvn/openmcl//release/1.11/darwin-x86-headers64

;; Then, in Opusmodus, or in a file in the "~/Opusmodus/Extensions" folder (replacing <userid> appropriately):
(setf (logical-pathname-translations "ccl") '((#P"ccl:**;*.*" #P"/Users/<userid>/ccl/**/*.*")))

 

This requires svn, which I think is part of the XCode command lines tools, or from other places.

Of course, you can pick any place you want for the "ccl" directory. You just need to change the logical-pathname-translations to match.

You can also install a whole CCL. Best to use version 1.11, since Opusmodus is based on that. Look at (logical-pathname-translations "ccl"), and change what you need to make it point at wherever your CCL is installed.

 

3) Opusmodus intentionally does NOT load ~/.ccl-init.lisp on startup. Add a file to ~/Opusmodus/Extensions/

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy