'SBCL'에 해당되는 글 1건

  1. 2007/01/06 Hybrid Emacs을 사용한 Common Lisp 프로그래밍 for Windows (6)
Emacs 자체는 ELISP 으로 만들어졌지만, 기본적으로 Lisp 프로그래밍을 하기에는 조금 부족하다. 이때 좀 더 편리한 환경을 위해서 SLIME(Superior Lisp Interation Mode for Emacs)과 SBCL(Steel Bank Common Lisp)을 사용한다.

먼저 Common Lisp, Emacs, SLIME, SBCL에 대한 아주아주 간단한 설명을 한다. 이것들의 더 자세한 자료들은 참고 링크를 참고 한다.

Common Lisp[1]은 Lisp 이라는 언어가 다양한 형태로 내려오면서 여러가지 기능이 통합되거나 새로 추가 된 형태의 Lisp 이다. 왜 쓰는지에 대해서는 명확한 설명을 할 수 없다. 실용성이나 교육성에 대해서는 다른 참고 문헌들을 참고한다.
내 경우는 인공지능Artificial Intelligence과 Genetic Programming을 위해 공부하고 있다. 실제로 John R. Koja가 쓴 Genetic Programming 책(블로그 링크)을 보면 이러한 것들을 Lisp 코드로 설명하고 있다. 짧막하게 설명하면, AI와 Genetic Programming에 관련 된 것들을 closure 로 표현하면 굉장한 이점이 있다. 이것은 OOP의 Object 의 개념과는 조금 다르다.

Emacs[2]는 GNU의 프로그램 중 하나로, 매우 강력하고 편리한 기능들을 가지고 있다. Eamcs 자체는 ELisp 으로 개발되었으며 기본적으로 ELisp은 지원한다.

SBCL[3]은 Open Source Compiler겸 Run-time System으로써 ANSI Common Lisp을 따른다.. 여러 플랫폼을 지원하고는 있지만 아직 윈도우에서는 정식 버전은 아닌듯 하다. Emacs 는 ELisp 만을 기본으로 지원하기 때문에 Common Lisp을 사용하기 위해서는 SBCL이나 GCL등 을 사용해야한다.[4] SBCL은 어느정도 문서화는 되어 있지만, 아직 작업중이라고 한다. 또한 디버거등의 프로그램도 제공하고 여러가지 라이브러리도 제공하기 때문에 GCL 대신 이것을 사용한다.

SLIME[5]은 Emacs를 위한 모드Mode로써 플러그인 정도로 생각하면 될듯 하다. Common Lisp을 작업할 때는Emacs에서 Slime 모드로 들어가 편리하게 작업을 하는 것이다. Color Highlighting 기능도 있어서 괄호가 많은 Lisp 환경에서 많은 도움이 된다.

이제 기본적인 설명은 마쳤으니 본격적인 설치에 들어간다.
1. 먼저 Emacs for Windows를 설치하고 윈도우32용 SBCL를 설치한다. 이때 SBCL 의 디렉토리는 가급적 공백이 없는 것이 좋다. 아래 자세히 설명하겠지만, path 에 공백이 있으면 emacs에서 인식을 못하는 경우가 많다.

2. SLIME 을 설치 하는데 적당한 디렉토리를 만들어 저장해둔다.(내 경우는 emacs 안의 slime 디렉토리에 저장해두었다.)

3.  Emacs 설정을 한다.
.emacs 파일에 필요한 환경 설정을 추가해야한다. (파일이 없으면 생성한다.)

이때 .emacs 가 있어야 하는 위치는 다음 세곳 중 한 곳이어야 한다[6].
(1) HOME environment variable 이 지정된 디렉토리
(2) EMACS_HOME 으로 지정된 디렉토리 아래의 site-lisp 디렉토리 (내 경우는 동작하지 않았다)
(3) C:\

이제 이 파일에 추가되어야 할 내용은 다음과 같다.
(setq inferior-lisp-program "C:/Progra~1/Programming/SBCL/sbcl.exe")
(add-to-list 'load-path "C:/Progra~1/Programming/Emacs/slime")
(require 'slime)
(slime-setup)
첫번째는 Lisp 프로그램을 지정하는데, 이 경우 SBCL 을 사용한 것이다.
두번째 명령어의 add-to-list 명령어는 load-path 에 slime 디렉토리를 추가하는 것으로, 위에 설치한 slime의 디렉토리로 설정한다.

4. 이렇게 쓰고나니 굉장히 간단하다. (조금 억울하다. ㅜ_ㅜ 얼마나 삽질했는데...)
이제 Emacs 를 실행하고 설정 파일이 문제가 없다면 아무런 변화 없이 실행될 것이다.
이제M+x slime 을 입력하여 (M+x 는 Alt키+x키를 의미한다. 그후 slime 을 타이핑하고 엔터를 누르면 된다.), 약간의 기본적인 설정 명령과 함께 (내 경우는 몇가지 Warnning도 빠르게 지나갔다.) 화려한(?) 모습으로 다음과 같은 Common Lisp 프롬프트가 생긴다.
; SLIME 2006-04-20
CL-USER>
이제 마음껏(?) Common Lisp 을 사용하면 되겠다. (참고로 slime의 종료 명령어는 ,q <enter> 이고, emacs 의 종료 명령어는 C+x C+c 이다. C는 Control 을 의미한다.)

ps. 무지 고생했다. 대략 2시간 반 정도 삽질한 듯 한데, 의외로 답답한 것들이 좀 많았다.
예를 들어 PATH를 지정해줄 때 디렉토리 이름 내의 공백에 관해서 여러가지를 사용해봤다. 따옴표"안에 또다른 따옴표\"를 지정해보기도 했고, 공백을 \ (공백)으로지정해보기도 했지만, 모두 실패했다. MS-DOS 식의 8.3 표현법(eg. c:\\progra~1)을 사용하던가 긴 문자를모두 없애야한다.

* 수정 1. : .emacs 를 _emacs 로 수정(Windows 에서는 .emacs 대신 _emacs 를 사용)
* 수정 2. : Emacs 링크 오류 수정
* 수정 3. : _emacs 파일 내용에서 path 이름이 따옴표(")로 끝나지 않는 오타 수정


  1. Common Lisp : Common Lisp 을 왜 쓰는가에 대해서는 간단한 설명으로 끝낼 수가 없다. 장점도 있지만 단점도 있기 때문이다. 자세한건 공식 홈페이지를 참고하거나 다음의 추천하는 책들을 참고한다. [ANSI Common LISP by Paul Graham, Practical Common Lisp by Peter Seibel ] 왼쪽 책은 조금 간략하게 나온 책으로 개념을 잡기 좋은 책이다. 오른쪽 책은 저자가 Common Lisp에 관해 조금 객관적인 시각으로 봤다고 느껴질 정도로 솔찍하게 쓰여진 책이다. 책의 절반은 응용Practice에 관한 내용을 담고 있고, 이 책은 HTML과 PDF의 형태로 공개되어 있기도 하다. [본문으로]
  2. Emacs : Emacs의 명령어 모음은 기존 블로그 링크를 참고 하고, 더 자세한 것은 Learning GNU Emacs(3/E)의 책을 참고 하거나 공식 홈페이지 GNU Emacs를 참고한다. 또한 ELisp 은 그냥 텍스트를 입력하고 C+x C+e 를 입력함으로써 간단하게 수행할 수 있다. 하지만 이 문서는 Common Lisp을 사용하기 위한 것이다. [본문으로]
  3. SBCL : 자세한건 공식 홈페이지를 참고 한다. 사실 SBCL은 윈도우에서는 특별한 설정없이 바로 사용할 수 있어서 좋은 편이다. Emacs 설정 법에서 설명하는 core 를 명시하는 것을 제외하고는 Common Lisp 환경을 윈도우 콘솔 창에서 바로 사용할 수 있다. [본문으로]
  4. GCL : GCL 과 Emacs 의 연동에 대해서는 이곳을 참고 한다. 사실 SBCL를 사용하기 위해서 GCL로 테스트 하면서 힌트를 얻은 셈이다. SBCL 자체는 윈도우를 위한 설명은 거의 전무한 상태라서 상당히 고생했다.('Port in Progress'의 상태로 보아 아직 포팅이 완료 되지도 않은듯 하다.) 그외의 CLISP 등을 사용할 수 있다. CLISP을 사용한 Windows 환경은 블로그 mix2009.net 을 참고한다. [본문으로]
  5. SLIME : 역시 자세한건 공식 홈페이지를 참고한다. 그외에 간략한 사용법은 mix2009.net을 참고한다. [본문으로]
  6. 이 부분이 정확히 작동을 안하는데.. XEmacs 면 _emacs, 그냥 Emacs 면 .emacs 를 사용해야하며, 두 프로그램간에 인식하는게 조금 다른것 같다. 다시한번 직접 확인해가면서 인식하는지 확인해야할듯 하다. [본문으로]
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/01/06 13:04 2007/01/06 13:04

트랙백 주소 :: http://www.hybrid.pe.kr/tt/trackback/154

  1. Subject: emacs와 slime 설치 (sbcl)

    Tracked from 하얀 고양이 집 2007/01/08 09:53  삭제

    간만의 작성이라 적응이 쉽게 안됩니다.유용할 것 같아서트랙백을 보내 봅니다.windows에서 emacs를 설치,slime을 설치 하여 sbcl을 사용하기 편하도록 해주는(?) 설치 과정을 담은 글입니다.emacs는 ..

  2. Subject: DOC/EmacsCommonLisp

    Tracked from From Journeyman To Master:firefly 2008/05/06 18:20  삭제

    차후에 Emacs에 완전히 적응(?)한 후에 Lisp 프로그래밍을 위해서 닥트랙백!

댓글을 달아 주세요

  1. firefly 2008/05/06 18:23  댓글주소  수정/삭제  댓글쓰기

    트랙백이 왜 이 모양으로 날아갔을까요 -_- 아마도 인코딩이 서로 보내는쪽이랑 받는쪽이 다른가봐요 -ㅁ-) 외계어로 트랙백을 본의아니게 남겨서 죄송해용...

    • Hybrid 2008/05/07 01:59  댓글주소  수정/삭제

      트랙백이.. 주소 형식이다보니까 한글이 코드 형식으로 바뀌나봅니다.
      뭐, 제목은 제대로 잘 나왔네요. 하여튼 메마른 트랙백땅에 트랙백을 보내주셔서 감사합니다. ^^;

  2. OpenID Logotrip2me 2008/06/08 19:24  댓글주소  수정/삭제  댓글쓰기

    잘 읽었습니다. 저도 참고해서 리습공부 해봐야겠네요

  3. min 2009/05/22 13:28  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    이맥에 설치해 볼려고 열심히 삽질중입니다만 안돼네요. ㅜㅜ
    현재 서버2008 emacsw32 v23 외 slime 과 clisp , sbcl 두개를 갖다놓고 설치해봤는데 (경로 d:/emacs)
    clisp은 module 'syscalls' requires package OS. 오류
    sbcl은 오류내용을 주르륵 출력하면서 .slime폴더를 만들고 안에 fasl파일을 만드네요.
    해결 방법이 있을까요?

    • Hybrid 2009/06/04 23:41  댓글주소  수정/삭제

      제가 clisp 으로는 안해봤습니다만, 검색하면 많이 나오더라구요.
      그리고 sbcl 은 윈도우용에 버그가 많습니다. 구버전으로 해야 될때도 있고 그래요. 이거 정말 답 없더라구요. 일단은 clisp 과 연동하는 법을 찾아보시구요.
      fasl 파일을 만드는건 정상입니다. 그걸 만들어서 common lisp 을 사용할 준비를 한다고 보시면 되요..

[로그인][오픈아이디란?]