[size=200]Introduction[/size]
Pas vraiment la peine de présenter Common Lisp : ceux qui connaissent l’apprécient pour ce qu’il est, et les autres ne savent pas ce qu’ils ratent…
Pour les débutants qui voudraient apprendre les bases de Lisp, qui reste l’un des très rares langages de programmation programmables, je vous conseille fortement de lire Practical Common Lisp de Peter Seibel. Pour en apprendre plus, lisez également On Lisp de Paul Graham. Une fois ces deux ouvrages digérés vous aurez déjà de bonnes bases.
Sur Linux, une des implémentations les plus abouties de Common Lisp (et qui a l’avantage d’évoluer très rapidement) est Steel Bank Common Lisp (SBCL), dérivée de CMU-CL.
Emacs couplé à SLIME et SBCL est l’environnement idéal que ce soit pour du prototypage rapide ou du développement plus poussé. C’est ce que je me propose d’installer dans ce T&A, avec bien entendu l’HyperSpec (la documentation de référence de Common Lisp) disponible en local.
Inutile de compter sur les dépôts Debian pour maintenir votre SBCL à jour : les paquets sont mis à jour tous les 36 du mois, et une fois sur deux toute l’installation part en sucette, obligeant à bricoler les fichiers de la distribution. Cet état de fait tient à la volonté (qui part d’un bon sentiment) de fournir tout ce qu’il faut pour faire cohabiter proprement différentes implémentations de Common Lisp sur une même Debian via une architecture ASDF commune. Malheureusement le résultat est inutilisable à l’heure actuelle, c’est bien dommage.
La meilleure solution pour avoir un environnement à la fois robuste et à jour reste donc de tout installer à la main. Ça veut aussi dire être capable de recompiler SBCL.
Ne nous leurrons pas, très peu de personnes ont besoin d’avoir plusieurs implémentations différentes sur la même machine, et ces gens là n’ont besoin ni de ce T&A ni des dépôts Debian… Pour un usage commun (lire : tant qu’on ne développe pas de librairies cross-implémentations), il est très largement suffisant de ne disposer que de SBCL.
Compiler soi-même permet également d’accéder aux sources de SBCL à partir d’Emacs, ce qui peut se révéler bien pratique par moments.
En résumé : ce T&A vise les développeurs Lisp (ou wannabe…) qui souhaitent maintenir à jour un environnement SBCL/SLIME/Emacs complet sans se prendre la tête, et qui comme moi en ont marre de devoir recoller les morceaux à chaque fois.
IMPORTANT : respectez bien les droits des commandes utilisateur ($) et root (#) ça évitera les bêtises.
[size=200]Sommaire[/size]
[ul][li] Amorçage de SBCL à partir d’une distribution binaire[/li]
[li] Compilation de SBCL[/li]
[li] Installation de SLIME[/li]
[li] Installation de LispWorks HyperSpec[/li]
[li] Installation de Emacs[/li]
[li] Configuration de SBCL et SLIME[/li]
[li] Configuration basique de Emacs[/li]
[li] Maintenir l’ensemble à jour[/li][/ul]
[size=200]Organisation[/size]
Je vais installer tout ça dans /opt/lisp/ mais vous pouvez bien sûr le mettre où vous voulez.
Afin de rendre les mises à jour totalement transparentes, on créera un lien /opt/lisp/sbcl/ qui pointera vers la version courante de SBCL.
SLIME et l’HyperSpec atterriront aussi dans /opt/lisp/.
SBCL sera au final installé manuellement dans /usr/local/ via des liens symboliques. Changez ça à vos risques et périls (n’oubliez surtout pas de définir SBCL_HOME dans ce cas).
Note : l’ensemble étant un peu long, j’ai séparé les sections en plusieurs messages à la fois pour des raisons de clarté, et pour pouvoir faire un sommaire avec des liens vers les différentes parties.