Coming from a Perl background, I have to say I prefer cpan Foo::Bar
to the having to start sbcl, (require :asdf-install)
and finally (asdf-install:install :foo-bar)
. Is there anything more convenient than this around?

- 42,082
- 9
- 61
- 86
-
asdf-install is reportedly unmaintained; consider quicklisp; see http://www.cliki.net/asdf – dat Jan 24 '14 at 19:00
3 Answers
There is clbuild:
http://common-lisp.net/project/clbuild/
But I add this to my .bashrc:
function asdf_install {
sbcl --eval "(asdf:operate 'asdf:load-op :asdf-install)" --eval "(asdf-install:install :$1)" --eval "(quit)"
}
function asdf_oos {
rlwrap sbcl --eval "(asdf:operate 'asdf:$2 :$1)"
}

- 42,082
- 9
- 61
- 86
-
oos = operate on system. jrockway has shown a shortcut for `asdf:operate 'asdf:load-op` but there are other operations (such as `asdf:test-op`) you might want to do. – Matt Curtis Nov 20 '12 at 22:37
You might check out http://www.quicklisp.org/ - it's quick and easy to install, then to download, install, and load systems:
(ql:quickload :cxml)
To translate to Perl, this is like (shell) cpanm cxml
and (inside Perl) use cxml
all in one.
You can search for systems as well; for instance to list all the :
(ql:system-apropos "xml")
Commonly you'd be running a lisp process and giving it these commands directly, but if you prefer to do your installation and so on from the shell, you could define aliases (as you have in the answer https://stackoverflow.com/a/427333/17221):
function ql_install {
sbcl --eval "(ql:quickload :$1)" --eval "(quit)"
}
function ql_apropos {
sbcl --eval "(ql:system-apropos \"$1\")" --eval "(quit)"
}

- 1
- 1

- 23,168
- 8
- 60
- 63
Common Lisp can be verbose; however most (all?) implementations support a Lisp startup file that defines/loads whatever you like to personalize your development environment.
Also, check out Mudballs.

- 40,708
- 1
- 95
- 119
-
-
I mean: compared with Unix command line, or what little I know of perl, Common Lisp programmers tend to use long names; add package prefixes and names can look *really* long to some newcomers. It makes the code easier to read, but not as convenient to type. – Doug Currie Jan 11 '09 at 01:36
-