Here is my code:
(defpackage :com.yves.tests (:use :common-lisp))
(in-package :com.yves.tests)
(require :usocket)
Everytime I evaluate the require
directive, I get this error:
LOAD: A file with name #1=USOCKET does not exist
[Condition of type SYSTEM::SIMPLE-FILE-ERROR]
Of course I installed the package with quickload in my REPL:
CL-USER> (ql:quickload "usocket")
To load "usocket":
Load 1 ASDF system:
usocket
; Loading "usocket"
("usocket")
CL-USER>
Actually I've installed it yesterday evening, and all my code was evaluating with no complain. Today I restarded Emacs and Slime. And I get this error. Is there additional configuration to do?
Here is what is in my loadpath:
CL-USER> (princ custom:*load-paths*)
(/Users/yves/quicklisp/ /opt/local/lib/clisp-2.49/dynmod/ ./ ~/lisp/**/)
(#P"/Users/yves/quicklisp/" #P"/opt/local/lib/clisp-2.49/dynmod/" #P"./"
"~/lisp/**/")
CL-USER>
Am I supposed to add the path to every new package by hand? Isn't quicklisp initialisation supposed to perform it, by itself?
Require
is not the required operation here.In the simple case where you have your entire system in one self-sufficient file, you can wrap
ql:quickload
forms into aneval-when
:If you want to use symbols from
usocket
without qualification, use it in the defpackage form:If you have a bigger system that spans several files, you can use ASDF. A quick way to get a simple setup running is
quickproject
, also available from Quicklisp.