1. Quicklisp & FriCAS¶
Quicklisp: | homepage. |
---|
Quicklisp is a library manager for Common Lisp. It works with your existing Common Lisp implementation to download, install, and load any of over 1,200 libraries with a few simple commands.
Quicklisp is easy to install and works with ABCL, Allegro CL, Clasp, Clozure CL, CLISP, CMUCL, ECL, LispWorks, MKCL, SBCL, and Scieneer CL, on Linux, Mac OS X, and Windows.
Note
1.1 Installing a LISP¶
Download and install one of the implementations according to the instructions given on the respective website or in the README|INSTALL files within the distribution package. For SBCL there is a log of a sample installation in the appendix.
1.2 Getting and Compiling FriCAS¶
Get the latest (stable) source tarball from sourceforge. Do not take one of the binaries - it won’t work together with QuickLisp.
Unpack and compile FriCAS according to the instructions given in the file
INSTALL
.
The sources of the development version can be fetched by subversion:
svn co svn://svn.code.sf.net/p/fricas/code/trunk fricas
or from the mirror on GitHub:
git clone https://github.com/fricas/fricas.git
Note, however, that only the stable version will be tested to work with QuickLisp. Possibly the development branch will also work but there is no guarantee.
1.3 Installing QuickLisp¶
Follow the instructions given on the QuickLisp homepage. See also the sample installation section in the appendix.
Quicklisp can also be installed using the freshly compiled FriCAS as follows:
Download https://beta.quicklisp.org/quicklisp.lisp
Start FriCAS
)lisp (load "quicklisp.lisp")
)lisp (quicklisp-quickstart:install)
)quit
Check if there is a folder quicklisp in your home directory.
1.3.1 Manually loading after installation¶
You only need to install Quicklisp with quicklisp.lisp
once. To load
Quicklisp into your FriCAS session after the initial installation, load the
file quicklisp/setup.lisp
with the Common Lisp load function:
)lisp (load "~/quicklisp/setup.lisp")
1.3.2 Test if it works¶
With the commad system-apropos
we can lookup for online packages:
(1) -> )lisp (load "~/quicklisp/setup.lisp")
Value = T
(1) -> )lisp (ql:system-apropos :snark)
#<SYSTEM snark / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-agenda / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-auxiliary-packages / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-deque / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-dpll / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-examples / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-feature / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-implementation / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-infix-reader / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-lisp / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-loads / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-numbering / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-pkg / snark-20160318-git / quicklisp 2016-03-18>
#<SYSTEM snark-sparse-array / snark-20160318-git / quicklisp 2016-03-18>
Value = NIL
(1) -> )quit
If you wanted to load a library (snark in our example) then you would enter:
)lisp (ql:quickload :snark)
whereby the package name could also be set between quotation marks, like “snark”.