I’ve been reading up on packages in Common Lisp, as getting and using commonly available libraries has been something of a struggle. My current reading indicates that:

(make-package 'dave)

will create a new package called dave.

Whilst:

(in-package dave)

changes the designated package from cl-user to dave.

It took a bit of head-scratching but I finally worked out that the function (well macro really) in-package is part of the common-lisp so if I want to move to a new package I have to make this clear by using either:

(common-lisp:in-package cl-user)

as in-package has been exported from common-lisp (I think) or:

(common-lisp::in-package cl-user)

to indicate the path to the function (think scope in c++ sort of), a path that can include un-exported symbols.

Now to start looking into systems, asdf and asdf-install.