Dette dokumentet viser korleis du kan nytte Slime med Solaris-maskinane på datalingvistikk-labben. Slime er ein ganske kul emacs-modus som gir litt hjelp når du skal programmere i LISP; både i form av enkle finessar:
(def og trykkjer TAB så får du ei liste med
funksjonar som startar på def
(defun så viser minibufferen (defun *name* args _&body_ body)
og meir omfattande funksjonar:
Slime ser ikkje ut til å fungere med LISP-versjonen (CMUCL 18d) på Solaris-maskinane på HF, og ein lokal CMUCL av nyaste versjon så ut til å gi konfliktar med den gamle, så eg installerte ein annan, tilsvarande Common Lisp-tolk kalt Steel Bank Common Lisp.
Gjer slik:
wget http://puzzle.dl.sourceforge.net/sourceforge/sbcl/sbcl-0.9.11-sparc-sunos-binary.tar.bz2
(Om adressa ikkje fungerer lenger, gå til sbcl.org og trykk på boksen under "Solaris" og "S" (SPARC), lagre fila i hjemmekatalogen.)
bunzip2 sbcl-0.9.11-sparc-sunos-binary.tar.bz2
(Hugs at du kan skrive "sbcl" og trykkje TAB-knappen for å få
terminalen til å fullføre filnamnet – med mindre prompten ser slik
ut: fedon%, då må du skrive bash først for å få ein skikkeleg terminal.)
Skriv vidare desse fire kommandoane:
tar xvf sbcl-0.9.11-sparc-sunos-binary.tar mkdir sbcl cd sbcl-0.9.11-sparc-sunos INSTALL_ROOT=~/sbcl sh install.sh
export SBCL_HOME=$HOME/sbcl/lib/sbcl # for bash / zsh setenv SBCL_HOME $HOME/sbcl/lib/sbcl # for csh / tcsh PATH=$PATH:$HOME/opt/sbcl/prefix/bin:.
Prøv det. Du skal få opp ein LISP-tolk som ser slik ut:
This is SBCL 0.9.11, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. *
Skriv (quit) for å få tilbake terminalen.
(Denne sida viser installasjonsprosessen for SBCL til andre system òg.)
wget http://common-lisp.net/project/slime/slime-2.0.tgz
(Om direktelenka ikkje fungerer, finn lenka på hjemmesida til Slime.)
gunzip slime-2.0.tgz tar xvf slime-2.0.tar
.emacs (ja, det skal vere eit punktum først) i eit redigeringsprogram. Denne fila skal vere i hjemmekatalogen din; viss ho ikkje finst lager du ei ny fil med det namnet. Legg dette til nederst:
;; -------- Begin Slime (add-to-list 'load-path "~/slime-2.0") (require 'slime) (slime-setup :autodoc t) (add-hook 'lisp-mode-hook (lambda () (slime-mode t))) (add-hook 'inferior-lisp-mode-hook (lambda () (inferior-slime-mode t))) (setq slime-startup-animation nil) (setq slime-kill-without-query-p t) ;; Kommenter ut neste linje for å gå tilbake til CMUCL (setq inferior-lisp-program "~/sbcl/bin/sbcl") ;; -------- End Slime
Neste gong du starter Emacs og opner ei .lisp-fil kan du nytte denne emacs-kommandoen:
M-x slime
(dvs. Meta-knappen og "X", for så å skrive "slime"; på datalabben er "flagg"-knappen Meta-knapp) for å starte The Superior Lisp Interaction Mode for Emacs.
Elles har cliki.net ein god intro til dei ulike funksjonane i Slime,
denne er verdt å se gjennom. Debugger-funksjonar som M-n er spesielt
hendige å lære seg; M-n let deg gå gjennom backtracen kall for kall
(M-p går baklengs), og viser kva dei lokale variablane i funksjonen
er, i tillegg til å vise kildekoden til funksjonen i ein eigen buffer
– herfra kan ein t.d. trykke r for å returnere ein
valfri verdi til forrige funksjon i kallstabelen, eller trykke
i for å "inspisere" og få meir informasjon om ein
valfri, gjerne lokal, variabel. Ein annan nyttig kommando: Når
markøren er ved namnet på ein funksjon kan du nytte M-. (Meta og
punktum) for å hoppe til funksjonsdefinisjonen, medan
M-, tek deg tilbake.
Om du synst Slime tek for lang tid å starte opp, så kan du i staden køyre SBCL og Swank (Slime sin "LISP-server") i ein eigen terminal. Last først ned denne SBCL-oppstartfila:
wget http://www.student.uib.no/~kun041/.sbclrc-slime
Og start SBCL slik i terminalen:
sbcl --sysinit .sbclrc-slime
Då kan du, i staden for å nytte M-x slime, kople til din eigen
LISP-server med M-x slime-connect (og standardverdiane for "Host" og
"Port", dvs. trykk linjeskift to gonger), og du slepp å måtte vente på
server-oppstarten kvar gong du starter Slime.
(Send meg gjerne epost om du har problemer med å få installert Slime/SBCL.)
Dato: 2009-02-19 13:11:09 CET
HTML generated by org-mode 6.19d in emacs 22