O Carnegie Mellon University Common Lisp (CMUCL) é outra implementação open-source do Common Lisp que não é muito utilizada hoje em dia mas é interessante. O próprio SBCL, que instalamos na Parte IV desta série, é um fork do CMUCL.
O CMUCL também é mantido hoje em dia, mas com um ritmo menor do que o SBCL. O site do CMUCL ainda é bem antigo (e relativamente desatualizado) e muitas coisas estão sendo migradas para o GitLab, causando confusão para quem está vendo o CMUCL pela primeira vez. Para que uma pessoa que esteja conhecendo o CMUCL pela primeira vez possa se situar adequadamente, é necessário visitar dois sites:
- O site antigo “oficial”: CMUCL Home Page; e
- O site novo de desenvolvimento no GitLab: CMUCL Project.
Neste artigo faremos a instalação do CMUCL como uma alternativa ao SBCL!
1. Que versão instalar?
Para simplificar um pouco as coisas faremos a instalação dos binários para Linux já disponíveis, mas mesmo assim há uma decisão a ser tomada: devemos instalar uma release oficial antiga, ou uma versão snapshot atualizada?
O site de download do CMUCL tem várias opções mas as duas que nos interessam são as releases e os snapshots. Os releases são as versões “oficiais”, extremamente testadas e prontas para distribuição; os snapshots são versões intermediárias com correções de bugs ou funcionalidades adicionais, que foram colocadas à disposição, são estáveis, mas não foram tão testadas quanto as releases. Eventualmente um snapshot será lançado, após testes e possíveis correções, como uma release oficial.
Atualmente temos o seguinte:
- Última release oficial: CMUCL 21d, lançada em 2018-12-08; e
- Último snapshot: CMUCL 21e, lançado em 2021-07-06.
Uma lista com as informações sobre as releases e snapshots está disponível na Wiki do CMUCL. Se você quiser algo testado e estável, sem possíveis novas funcionalidades e correções de bugs, instale a release 21d. Se você quiser novas funcionalidades e correções de bugs ao preço de uma possível menor estabilidade, instale o snapshot 21e.
Farei a instalação do snapshot 21e.
2. Download e instalação
Faça o download do snapshot 21e para Linux e salve o arquivo em algum diretório temporário (faça o download pelo site do CMUCL ou use o comando abaixo):
mkdir cmucl-temp cd cmucl-temp wget https://common-lisp.net/project/cmucl/downloads/snapshots/2021/07/cmucl-2021-07-x86-linux.tar.bz2 wget https://common-lisp.net/project/cmucl/downloads/snapshots/2021/07/cmucl-2021-07-x86-linux.extra.tar.bz2
Note que fizemos o download de dois arquivos: o primeiro é a distribuição base do CMUCL, e o segundo (o que tem um “extra” no nome do arquivo) contém arquivos e bibliotecas opcionais.
Agora basta descompactar os arquivos para um diretório específico, por exemplo, cmucl-21e
:
mkdir cmucl-21e tar -jxvf cmucl-2021-07-x86-linux.tar.bz2 -C cmucl-21e tar -jxvf cmucl-2021-07-x86-linux.extra.tar.bz2 -C cmucl-21e
Por fim eu gosto de colocar tudo dentro do diretório /opt, criando alguns links simbólico para acesso direto, fazendo:
sudo mv cmucl-21e /opt/ sudo ln -sfn /opt/cmucl-21e /opt/cmucl sudo ln -sfn /opt/cmucl-21e/bin/lisp /opt/cmuls-21e/bin/cmucl
3. Ajuste das variáveis de ambiente
Devemos ajustar a variável PATH
e criar a variável CMUCLLIB
no arquivo ~/.bashrc
(ou ~/.bashrc_profile
, dependendo de sua distribuição Linux). Coloque algo como:
export PATH="/opt/cmucl/bin:/opt/sbcl/bin:$PATH" export CMUCLLIB="/opt/cmucl/lib/cmucl/lib"
4. Hora da verdade
Abra um terminal, digite cmucl
e tecle Enter. Se tudo correr bem você verá o prompt do CMUCL:
Parabéns, agora temos o CMUCL instalado e configurado. Consulte a documentação para saber como ajustar algumas coisas na inicialização criando o arquivo ~/.cmucl-init.lisp
, como carregar bibliotecas por exemplo.
Uma última observação: o CMUCL tem um editor de código embutido, o Hemlock. Ele é parecido com o Emacs, mas é bem mais espartano e difícil de usar. Como configuraremos o Emacs, não precisamos usar o Hemlock mas, se você for corajoso e quiser fazer uma viagem ao passado, precisará instalar algumas fontes que não são disponíveis por padrão. No Ubuntu faça:
sudo apt install xfonts-100dpi sudo apt install xfonts-75dpi
[OPCIONAL] Se quiser pode instalar algumas fontes da Microsoft também:
sudo apt install ttf-mscorefonts-installer