jueves, 18 de septiembre de 2008

Cómo crear un entorno amigable para Lisp en Windows

¿Qué hay de nuevo?

Hoy hablaremos de Lisp y Windows. No es este el mejor sistema operativo para usar Lisp. Tradicionalmente ha habido implementaciones de Lisp para Mac y Unix, aunque algunas compañías como Franz ofrecen buenos compiladores de Lisp para Windows. Esta es una buenísima opción para todos aquellos que no tengan reparos en usar software propietario, puesto que la versión de evaluación de Allegro impone muy pocas limitaciones a los desarrolladores, junto con un gran IDE y un compilador rápido. Sin embargo, hoy hablaremos sobre cómo usar un Lisp libre como es clisp sobre Windows sin dejarnos los nervios en el intento.

El entorno que instalaremos constará de clisp como intérprete de Lisp y emacs + slime como IDE. Muchos de vosotros ya conoceréis emacs, así que no hace falta presentarlo. Slime es un modo de interacción con emacs que permite ejecutar lisp desde un buffer de emacs y muchas otras cosas, como documentación en línea de funciones, inspector de objectos, compilación de archivos desde emacs y mucho más.

Empezaremos por instalar clisp. En sourceforge podemos encontrar el último instalador para Windows, que mientras escribo este artículo es el clisp-2.46-win32-mingw-big.exe. Para instalarlo seguiremos el procedimiento estándar en Windows ( aceptar, aceptar, aceptar ...). Para finalizar, sólamente nos queda una comprobación: vamos al menú inicio -> ejecutar y escribimos "clisp". Si está correctamente instalado veremos aparecer el REPL de clisp. Si no apareciera, desinstalamos clisp y instalamos una versión distinta. Que aparezca clisp de esta manera quiere decir que se ha instalado correctamente en el PATH. De no ser así, todavía se puede instalar emacs+slime, pero será más complicado, de manera que no voy a explicarlo ahora. Si a alguien le interesa que me lo haga saber en un comentario y se lo explicaré.

A continuación procedemos a instalar emacs. Podemos bajarlo desde aquí. He enlazado a la versión 22.3 porque, además de ser la última y mejor versión de emacs, tiene una bonita interfaz en GTK . Lo que bajaremos es un archivo comprimido en formato zip que habremos de descomprimir. Seguidamente crearemos la carpeta C:\emacs y copiaremos allí todo lo que hemos descomprimido, de manera que nos queden las carpetas C:\emacs\bin, C:\emacs\lisp, etc. Para poder usar emacs sólo nos queda crear un acceso directo en el escritorio al archivo C:\emacs\bin\runemacs.exe.

Para finalizar habremos de instalar slime. Para ello descargamos la última snapshot de la cvs desde aquí. Una vez bajado, lo descomprimimos y copiamos el contenido de la carpeta que aparece a C:\, de manera que nos quede, por ejemplo, C:\slime\README, C:\slime\doc, etc... Una vez hecho esto, sólo queda decirle a emacs dónde encontrará a slime. Para ello, abrimos emacs y seleccionamos las opciones "Active region highlighting" i "Parent match highlighting". Estas opciones nos facilitaran editar código fuente en lisp. Seguidamente, guardamos las opciones haciendo click sobre Options -> save options , y nos fijamos en el nombre de archivo que pone en el minibuffer. Esa es la ruta completa hasta el archivo de configuración de emacs. En mi pc, la ruta es C:\Documents and settings\nombre_usuario\Datos de programa\.emacs. Bien, ahora desde emacs abrimos ese archivo y añadimos las líneas siguientes:

(add-to-list 'load-path "/slime/") ; dónde hemos instalado slime
(setq inferior-lisp-program "clisp") ; nuestro lisp.
(require 'slime)
(slime-setup)

Ya está. Ahora cerramos emacs y lo volvemos a abrir para que cargue los cambios en el fichero de configuración ( seguramente, hay otra manera más elegante de hacer esto, pero no la conozco) y ya podemos empezar a usar slime. Para arrancarlo, simplemente escribid "Alt - x " y cuando el minibuffer os pida que escribáis poned slime. Ahora pulsad enter y slime ya cargará.

Podéis ver el resultado a continuación:





















Eso es todo por hoy. Espero que con esto consigáis tener un entorno lisp decente en el que dar forma a vuestras ideas. Adew!

2 comentarios:

Anónimo dijo...

Para evitar tener que reiniciar emacs, puedes reevaluar el archivo de configuración escribiendo M-x eval-buffer

Unknown dijo...

Para Windows vista funciona esto? Yo lo he echo y al cargar clisp poniendo en el minibuffer slime me salen muchos mensajes de warning aunque al final si sale el simbolo CL-USER> pero no va bien, me puede decir si es por el vista?

Gracias