2007년 12월 12일 수요일

Installing Common Lisp - SBCL

환경: 맥북, 레오파드

레오파드에는 Emacs가 /usr/share/emacs에 기본적으로 깔려 있다. 리습 구현(implementation)과 SLIME(The Superior Lisp Interaction Mode for Emacs, 루비의 irb 같은 것이다. 물론 이런 방식의 프로그래밍 환경을 제공한 것은 리습이 제일 처음인 것으로 알고 있다.)만 설치하고 Emacs와 연결시키면 된다.

리습은 다른 언어와 달리 구현이 여러 개다. 각 구현마다 지원하는 바가 조금씩 다르고.. 따라서 자신의 취향에 맞는 구현을 선택하면 된다. 구현에는 Clisp, Allegro Common Lisp, SBCL, OpenMCL, Lispworks 등등이 있는데 Lispworks같은 경우에는 IDE 형태로 지원이 되고 깔끔하지만 상용이다. 상용 리습 구현들은 그 값을 하기 위해서 리습으로 짠 코드를 데스크탑 어플리케이션으로 딜리버리 하는 것을 쉽게 해 준다거나, 기술적 지원들을 해준다고 하지만, 당장 나와는 관계가 없다. 개인 버전은 무료라지만 여러 가지 제약이 많기 때문에 그냥 Emacs에 다른 리습 구현을 연결해 사용하는 게 나을 것 같다. Clisp을 받으려고 했다가 맥용이 어떤 것인지가 확실치 않아서, 맥 플랫폼 버전이 명시되어 있는 SBCL을 다운받았다.

다운받고 압축을 푼 후 해당 디렉토리로 가서
sudo sh install.sh
을 쳤는데, 'GNU Make not found'라고 나오면서 설치가 안된다. 패스의 문제인가 하고 set을 쳐 봤는데 PATH에 /usr/bin은 추가가 되어 있다. /usr/bin을 살펴보니 make가 있어야 하는데 make가 없다. Xcode 설치를 안 하면 이렇다.

Xcode를 설치하려면 레오파드 설치 시디를 넣은 후 Optional Installs를 선택하고 Xcode Tools를 선택해서 XcodeTools.mpkg 를 더블클릭하면 된다. 그러면 make나 gcc등이 다 설치가 된다.

다시 SBCL 압축을 푼 폴더로 이동해서 sudo sh install.sh를 치니 /usr/local/bin에 정상적으로 설치가 된다. 이제 SLIME을 다운받자. SLIME은 다운받고 압축을 풀기만 하면 되고 별도의 설치가 필요없다. 내 경우는 /usr/local/bin/slime-2.1로 복사해 놓았다. (다운받은 디렉토리에서 'sudo cp -r slime-2.1 /usr/local/bin' 과 같이 하면 /usr/local/bin으로 복사된다. 복사 후 원본 디렉토리를 지우려면 'rm -rf 디렉토리명'을 치면 된다.)

이제 .emacs 파일에 구현과 SLIME을 부르는 부분만 추가하면 된다. .emacs 파일은 홀 폴더(~) 안에 있다.('ls -a'로 검색하면 .로 시작하는 파일도 다 보인다.) 없다면 새로 만들면 된다.('emacs .emacs') .emacs 파일 안에 다음 내용을 추가한다.(다운받은 SLIME 폴더의 README 파일에 어떻게 해야 되는지 나와 있다.)

(add-to-list 'load-path "/usr/local/bin/slime-2.1") ;your SLIME directory
(setq inferior-lisp-program "/usr/local/bin/sbcl") ;your Lisp system
(require 'slime)
(slime-setup)

물론 ';' 뒤의 주석은 칠 필요 없고, 디렉토리 명은 자신의 SLIME과 리습 구현이 있는 디렉토리를 적어야 한다.

Emacs 를 시작한 뒤, Meta+x slime 을 치면 SLIME이 시작되면서 우아하게 CL-USER>가 등장한다. 만일 터미널에서 Emacs를 실행했을 때 메타 키가 먹지 않는다면 터미널 -> 환경 설정 -> 키보드 -> 'option을 메타 키로 사용'에 체크한다.

댓글 없음: