O Quicklisp é um gerenciador de bibliotecas que funciona com diversas implementações do Common Lisp (ABCL, Allegro CL, Clasp, Clozure CL, CLISP, CMUCL, ECL, LispWorks, MKCL, SBCL e Scieneer CL). Basicamente com o Quicklisp podemos fazer o download, instalação e uso de mais de 1.500 bibliotecas Lisp prontas para uso. O Quicklisp funciona mais ou menos como um gerenciador de pacotes (apt ou yum, por exemplo).
A instalação é bem simples: basta fazer o download de um arquivo e usar uma distribuição Lisp para instalar. Como temos duas distribuições instaladas, a SBCL e a CMUCL, faremos duas instalações diferentes.
1. Antes de instalar o Quicklisp
Fizemos a instalação do SBCL (ver Parte IV) e do CMUCL (ver parte V) mas não configuramos nenhum arquivo de inicialização: ~/.sbclrc
para o SBCL e ~/.cmucl-init.lisp
para o CMUCL. É importante ter esses arquivos agora, pois serão utilizados para carregar o Quicklisp.
O CMUCL disponibiliza um modelo que pode ser alterado. Se você seguiu a instalação conforme esta série de artigos, basta fazer (NÃO faça isso se você já tem um arquivo com configurações próprias):
cp /opt/cmucl/lib/cmucl/lib/generic-site.lisp ~/.cmucl-init.lisp
Você não precisa alterar nada nesse arquivo no momento, exceto talvez colocar o seu nome nas linhas 18 e 19:
Para o SBCL só precisamos criar um arquivo vazio:
touch ~/.sbclrc
Obviamente você pode configurar várias outras coisas nesses arquivos de inicialização mas, para nosso propósito de instalar o Quicklisp, isso basta.
2. Download e instalação
Faça o download do arquivo de instalação do Quicklisp:
wget https://beta.quicklisp.org/quicklisp.lisp
Agora vamos instalar o Quicklisp. Eu gosto de fazer duas instalações separadas do Quicklisp, uma para o SBCL e outra para o CMUCL, cada uma em diretórios específicos. Com o download feito agora basta instalar.
2.1. Instalação para o SBCL
Vamos instalar o Quicklisp para o SBCL no diretório oculto ~/.quicklisp_sbcl
. Para isso vamos iniciar o SBCL carregando o arquivo de instalação do Quicklisp:
sbcl --load quicklisp.lisp
O SBCL carregará o arquivo de instalação do Quicklisp. Você verá algo assim:
Basta digitar, no prompt do SBCL, o seguinte:
(quicklisp-quickstart:install :path ".quicklisp_sbcl/")
O comando acima fará a instalação do Quicklisp. Depois de alguns segundos você receberá uma mensagem de que a instalação foi concluída:
Agora, ainda no prompt do SBCL, digite:
(ql:add-to-init-file)
O comando acima acrescentará um código no arquivo ~/.sbclrc
para carregar o Quicklisp toda vez que o SBCL for iniciado. Você verá o seguinte:
Pronto! Agora o Quicklisp foi instalado e o SBCL configurado para carregá-lo sempre que for inciado. Para comprovar se tudo está funcionando corretamente, basta sair do SBCL, entrar novamente e tentar usar o Quicklisp:
O conteúdo do arquivo ~/.sbclrc
agora é o seguinte:
OK, o Quicklisp já está configurado para o SBCL!
2.2. Instalação para o CMUCL
Vamos instalar o Quicklisp para o CMUCL no diretório oculto ~/.quicklisp_cmucl
. Para isso vamos iniciar o CMUCL carregando o arquivo de instalação do Quicklisp:
cmucl -load quicklisp.lisp
O comando acima carregará o Quicklisp no CMUCL. Você verá várias mensagens de compilação e, ao final, dizendo que está tudo pronto para fazer a instalação:
Basta digitar, no prompt do CMUCL, o seguinte:
(quicklisp-quickstart:install :path ".quicklisp_cmucl/")
O comando acima fará a instalação do Quicklisp. Depois de alguns segundos você receberá uma mensagem de que a instalação foi concluída. Depois basta digitar, ainda no prompt do CMUCL, o comando:
(ql:add-to-init-file)
O comando acima acrescentará um código no arquivo ~/.cmucl-init.lisp
para carregar o Quicklisp toda vez que o CMUCL for iniciado. Você verá o seguinte:
Pronto! Agora o Quicklisp foi instalado e o CMUCL configurado para carregá-lo sempre que for inciado. Para comprovar se tudo está funcionando corretamente, basta sair do CMUCL, entrar novamente e tentar usar o Quicklisp:
OK, o Quicklisp já está configurado para o CMUCL!
3 Aprendendo a usar o Quicklisp
O Quicklisp é muito útil e nos poupa muito tempo procurando bibliotecas para Common Lisp. Aprenda a utilizá-lo lendo a documentação no site oficial.
Não se esqueça de atualizar o Quicklisp de tempos em tempos (faça isso para o SBCL e também para o CMUCL):
(ql:update-dist "quicklisp") (ql:update-client)
Se tudo estiver atualizado você verá o seguinte:
Agora nós temos o Emacs instalado e configurado, as distribuições SBCL e CMUCL instaladas e prontas, incluindo o Quicklisp. Aogra temos que fazer o Emacs usar essas distribuições. Faremos isso através do SLIME! Não perca os próximos artigos da série.
Este artigo foi publicado originalmente em 2021-10-13, no meu site pessoal: www.abrantes.pro.br.