HTML

Lambda

A modern programozási nyelvek világában töltött évek után irány vissza az alapokhoz. Az egyik legrégebbi nyelvvel, a Lisppel ismerkedem, és próbálom felhasználni mai, modern alkalmazások készítésére, mindenki okulására.
Rólam
Kinek szól?

Friss topikok

  • kotee: UCW-t már nem nagyon fejlesztik aktívan (amennyire én tudom).. Helyette viszont van cl-dwim és WUI... (2009.09.10. 14:00) Környezet kiépítése 2

Linkblog

Archívum

Vissza az alapokhoz?

2009.05.15. 01:18 vonbraun

Fejlesztőkörnyezet

Címkék: tutorial emacs fejlesztőkörnyezet

Megfelelő fejlesztőkörnyezet keresése közben egy problémába, legalábbis annak látszó dologba ütköztem. Minden elérhető forrás az Emacs használatát javasolta. Erről tudni kell, hogy egyike azon szoftvereknek, amelyek kettéosztják a világot (a másik tudtommal a vi). Vannak, akik rajongásig szeretik és vannak akik szenvedélyesen utálják. Én az utóbbi csoportba tartoztam (a vi-t illetően pedig az azt szeretők közé).

Próbáltam más utat keresni (átmenetileg találtam is), de a végső megoldás mégis az Emacs lett. Hogy miért? A Slime nevű pluginje miatt, amelyet kifejezetten Lisp-pel való munkához fejlesztettek.

A Slime a következők miatt látszott (és bizonyult) jó választásnak:

  • szokásos fejlesztőeszköz-funkciókat tudja (segítség a parancsoknál, debugger, fordítási hibaüzenetek forráshoz kötése)
  • kapcsolódás távoli Lisp szerverhez
  • távoli REPL használata
  • azonnali kód-kiértékelés és -fordítás, távoli szerverre is
  • távoli fájlszerkesztés és betöltés

Ez persze nem látszott az elején, sokat kellett kísérletezni hozzá, hogy megértsem az utolsó kettőt például. A távoli fájl- és kódműveleteket úgy kell elképzelni, hogy fut a program a szerveren, változtatsz valamit a kódon, majd egy billentyűparanccsal a kód bekerül a szerverre, lecserélve az ott futó kódrészt. Nincs leállítás, megszakadás, stb, a felhasználó következő kérését az új kód fogja kiszolgálni.

Ezért hát rászántam magam és feltettem az otthoni gépemre az Emacs-ot, Ubuntu alatt egyszerűen az sudo apt-get install emacs22 paranccsal. Emacsból egyébként több is van, a két legelterjedtebb a GNU Emacs és az XEmacs. Közös eredettel büszkélkedhetnek, ám egyszer különváltak. Az utóbbi nevében az X nem a Unix-rendszerek grafikus felületére utal, mindkét változatnak van grafikus felülete. Én a GNU Emacs-ot választottam.

Kell még hozzá egy Slime, ha már ennyire áradoztam róla. Ez általában megtalálható a Linux disztribúciókban, ám a Slime-nak van olyan kényes tulajdonsága, hogy azonos verziók szeretnek együttműködni. Azaz ugyanazt kell feltennünk a kliens oldalra, ami a szerveren fut. A szerveren pedig CVS-ből jön a kód, így a kliensen ugyanígy kell tennünk a következő paranccsal:

cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co slime

Ezt valami olyan könyvtárban add ki, ahol a Lisp-es fejlesztési cuccokat gyűjtöd. Aztán adjuk meg az Emacs-nak, hogy hol keresse. Ehhez hozd létre a saját könyvtáradban a ~/emacs.d/slime.el fájlt valamilyen szerkesztővel, a következő tartalommal (a pontosvesszővel kezdődő sorok a megjegyzések):

; hol találja a Slime-ot:
(add-to-list 'load-path "/home/user/lisp/slime/")
; töltse is be azt:
(require 'slime)

(add-hook 'lisp-mode-hook (lambda () (slime-mode t)))
(add-hook 'inferior-lisp-mode-hook (lambda () (inferior-slime-mode t)))
; mit indítson, ha a kliensgépen levő Lisp kell
(setq inferior-lisp-program "/usr/bin/sbcl"
      ; kezdeti behúzás változtatása
      lisp-indent-function 'common-lisp-indent-function
      slime-compile-symbol-function 'slime-fuzzy-complete-symbol
      ; hyperspec dokumentáció
      common-lisp-hyperspec-root "file:///home/user/lisp/HyperSpec/"
      slime-startup-animation t)
; így induljon el a Slime: kérünk REPL-t
(slime-setup '(slime-repl))

Ezután egyelőre nincs más dolgunk, mint elindítani az Emacs-ot. Fontos: kilépni a Ctrl-X Ctrl-C billentyűparancsok egymás utáni kiadásával lehet! Ha elindul hibák nélkül, akkor jól csináltuk a dolgunkat, legközelebb folytatjuk.

Szólj hozzá!

A bejegyzés trackback címe:

https://lambda.blog.hu/api/trackback/id/tr81122552

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása