Środowisku :

  • OS : linux
    • Ubuntu
  • IDE : Emacs 22.2.1
    • mode :
      • major mode : inferior-lisp
      • minor mode : slime

Przygotowania

edytuj

Aby przygotować Emacsa do pracy z Common Lispem ( tu SBCL) należy

  • Zainstalować sbcl, slime i cl-swank. W tym celu w konsoli wpisujemy :


sudo  apt-get install slime cl-swank sbcl 


  • Dodać do pliku .emacs w swoim katalogu domowym comendę : (setq inferior-lisp-program "sbcl"). W konsoli wpisujemy :


echo '(setq inferior-lisp-program "sbcl")' >> ~/.emacs
  • Uruchomić emacsa poprzez wpisanie w konsoli :
emacs


  • Jesteśmy w emacsie. Przełączamy się na slime. Wpisujemy :
M-x slime

To znaczy naciśnij Alt (i nie puszczaj ) oraz x, napisz : slime i wciśnij Enter.


  • Teraz jesteś w SBCL.

Wprowadzanie poleceń

edytuj

Mamy kilka sposobów :

  • wybrać z menu ( nie wszystkie polecenia mają swój odpowiednik w menu)
  • wpisać w slime-repl , np. : (load "a.lisp")
  • użyć kombinacji klawiszy :
    • M-x slime-load-file
    • C-c C-l

Programowanie w Lispie

edytuj

Mamy kilka sposobów :

  • wprowadzać pojedyncze polecenia ( patrz wyżej)
  • wczytać plik z programem ( tryb wsadowy , ang. batch mode )
  • wczytać biblioteki, a następnie wprowadzić polecenia
  • utworzyć plik w Emacsie , wpisać do niego polecenia i uruchomić go. W tym przypadku wykorzystujemy Emacsa na 2 sposoby : jako edytor tekstu i IDE.

Tworzenie i edycja pliku

edytuj

C-x C-f lub z menu File/Visit New File.

Jeśli plik istnieje to zostanie otwarty, jeśli nie istnieje to utworzony w nowym buforze. Jeśli nadamy plikowi odpowiednie rozszerzenie np. lsp lub lisp ) to automatycznie zostanie wybrane podświetlanie składni dla Lisp.


Wpisujemy polecenia do edytowanego pliku.

Możemy wkleić zawartość schowka za pomocą polecenia C-y, chyba że wolimy C-v.

Wtedy możemy zmienić to za pomocą komendy menu ( Options/C-x .... ) lub oczywiście poprzez odpowiedni wpis w pliku .emacs .

Kompilacja i uruchomienie programu

edytuj

Możemy wybrać z menu SLIME/Compilation/Compile File a następnie SLIME/Evaluation/Eval Region


Polecenia slime Skrót klawiszowy Emacsa Opis
slime-load-file C-c C-l Wczytać plik
. C-c C-k Wczytać i skompilować plik

Przykładowe programy

edytuj

Minifract

edytuj


Aby uruchomić potrzebujesz :

  • linux ( OS )
  • emacsa ( editor, and more )
  • SBCL = SB Common Lisp
  • ZPNG ( library for png )
  • ffmpeg
  • minifract

Instalujemy zpng

edytuj

Po zainstalowaniu w Emacsie / Slime wpisujemy :

(asdf:oos 'asdf:load-op :asdf-install)
(asdf-install:install :zpng)

Instalujemy minifract

edytuj
# in a shell
# download mini-fract-0.6
# extract it 
# I have done it to  /home/adam/mini-fract-0.6/
ln -s ~/mini-fract-0.6/mini-fract.asd ~/.sbcl/systems

Uruchamiamy

edytuj
; in a lisp (  in emacs, in the slime buffer ) 
; load mini-fract
(load "/home/adam/mini-fract-0.6/mini-fract.lisp")
;change-package mini-fract
(in-package mini-fract)
; to make a movie 
; it makes one movie using values from second item from list *interesting-regions*
; directory mov-index nb-movs
(make-movie "/tmp/movs/" 1 1)
; you will find it in /tmp/movs/ directory