Ambiente de desenvolvimento Lisp (SBCL e SLIME)
Alguns passos para instalação e configuração de um ambiente de desenvimento Lisp.
Compilador Lisp
O SBCL (Steel Bank Common Lisp) é um compilador com desenvolvimento bem ativo, portado para várias plataformas e bem eficiente. Sua instalação é simples:
$ tar jxf sbcl-1.0.5-x86-darwin-binary.tar.bz2
$ cd sbcl-1.0.5-x86-darwin
$ sh install.sh
Um pacote interessante também é o Linedit, que faz um wapper da readline no prompt do compilador. Para instalar:
$ sbcl
* (require :asdf-install)
* (asdf-install:install :linedit)
Assim todos os pacotes necessários são baixados e instalados (bem parecido com o apt-get). O mais recomendado é a instação local (geralmente opção 2 do asdf-install). Instalado o Linedit, adicione o seguinte no seu $HOME/.sbclrc
;;; Check for –no-linedit command-line option. (if (member “–no-linedit” sb-ext:*posix-argv* :test ‘equal) (setf sb-ext:*posix-argv* (remove “–no-linedit” sb-ext:*posix-argv* :test ‘equal)) (when (interactive-stream-p *terminal-io*) (require :sb-aclrepl) (require :linedit) (funcall (intern “INSTALL-REPL” :linedit) :wrap-current t)))
SLIME
O SLIME é um mode do emacs para programação interativa em Lisp. Ele é composto de duas partes, o SWANK, que a parte server e o SLIME em si. A instalação pode ser feita assim:
$ cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co slime
$ mkdir lisp
$ cd lisp
$ ln -s ../slime/swank.asd
Com isso você terá dois diretórios no seu home: slime e lisp.Depois adicione o seguinte no seu .emacs
(add-to-list 'load-path “/home/<user>/slime”) (require ‘slime) (add-hook ‘lisp-mode-hook (lambda () (slime-mode t))) (add-hook ‘inferior-lisp-mode-hook (lambda () (inferior-slime-mode t))) (setq inferior-lisp-program “/usr/local/bin/sbcl –noinform –no-linedit”)
Executando M-x slime no Emacs já é possível utilizar o SLIME com SBCL.
Desenvolvimento remoto
Uma coisa interessante que é possível fazer com o SLIME é rodar o processo Lisp numa máquina e o Emacs em outra. Vamos dizer que a maquina de desenvolvimento é chamada hostdev. Nela tendo o SBCL e SLIME instalado como acima podemos rodar o seguinte programa no SBCL:
(require :asdf) (push “/home/<user>/lisp” asd:*central-registry*) (asdf:oos ‘asdf:load-op :swank) (setf swank:*use-dedicated-output-stream* nil) (swank:create-server :port 4005 :dont-close t)
Ele vai abrir a porta 4005 e esperar conexões do SLIME.
Agora no localhost podemos fazer um tunel SSH para essa maquina:
$ ssh -L4005:127.0.0.1:4005 user@hostdev
Assim no Emacs usamos M-x slime-connect, e conectamos no IP 127.0.0.1 na porta 4005 (valores default) e estamos usamos a imagem Lisp que esta rodando na maquina hostdev.
Para quem está começando, existem opções que não exigem nada de configuração como o LispBox (um pacote com emacs, distribuição lisp - Allegro, CLISP, SBCL ou OpenMCL - e SLIME), ou ainda o LispWorks, uma IDE que é free para uso pessoal.
| Enviar por e-mail | Hits para esta publicação: 1668
Deixe uma resposta.