2007년 12월 14일 금요일

Installing Common Lisp - OpenMCL (Clozure CL)

후.. 맥에서는 SBCL이 멀티 스레드를 지원하지 않는다고 해서 OpenMCL을 깔게 되었다.

환경: Intel Macbook, Leopard

일단 OpenMCL 홈페이지는 여기: http://trac.clozure.com/openmcl

다음 ftp 주소 - ftp://clozure.com/pub/testing/ - 로 가면 파일들이 주욱~ 보인다. 설치할 수 있는 것은 다음 두 가지다. SLIME에서 프로그래밍하려면 2번만 깔면 되지 않나 싶다.

1. ClozureCL2007-12-03.dmg
이건 SLIME에서 불러올리는 리습 구현이 아니라 응용 프로그램에서 단독으로 REPL을 실행하게 해주는 파일이다. 다운받아서 더블 클릭한 다음, 마운트 되면 생기는 Clozure CL 아이콘을 응용 프로그램 폴더에 끌어다 놓으면 설치가 된다.

2. openmcl-darwinx8664-snapshot-070722.tar.gz
다운받아 압축을 풀면 ccl 폴더가 생기는데 아무데나 위치해도 상관 없다. 단, 다음과 같은 설정을 해주면 된다.

다운로드 받은 소스 파일은 2007년 7월의 스냅샷으로, 그 이후에도 많은 변경이 있기 때문에 업데이트와 리빌드가 필요하다. 방법은 다음 링크를 참조: http://trac.clozure.com/openmcl/wiki/UpdatingFromSource
(2008년 1월 16일 시점으로 리빌드 후 정상적으로 슬라임이 시동되지 않는 것 같다. 그래서 업데이트 하지 않은 스냅샷을 그대로 사용중이다.)

ccl/scripts/ 폴더 안에 openmcl64 파일이 있는데 이 파일을 열면CCL_DEFAULT_DIRECTORY=/usr/local/src/ccl 과 같이 되어 있는 것을 볼 수 있다. 이 부분을 CCL_DEFAULT_DIRECTORY= "ccl 폴더가 있는 위치" 로 변경하고 저장한다.내 경우에는 귀찮아서 그냥 ccl 폴더를 /usr/local/src/ccl 에 위치시켰다.
(인스톨 방법은 다음 링크를 참조하였다: http://openmcl.clozure.com/Doc/index.html)

그리고 홈폴더(~)의 .emacs 파일(없으면 새로 만들면 된다)에 다음과 같이 추가한다.

(add-to-list 'load-path "SLIME이 있는 경로")
(setq inferior-lisp-program "ccl폴더가 위치한 경로/scripts/openmcl64")
(require 'slime)
(slime-setup)

내 경우에는 다음과 같다.

(add-to-list 'load-path "/usr/local/bin/slime-2.1")
(setq inferior-lisp-program "/usr/local/src/ccl/scripts/openmcl64")
(require 'slime)
(slime-setup)

그리고 이맥스를 실행시키고 meta+x slime 을 치면 openmcl REPL이 등장하는 것을 볼 수 있다(meta 키는 터미널에서는 alt/option 키이다. 먹히지 않으면 메뉴의 "터미널 -> 환경설정 -> 키보드 -> 'option을 메타키로 사용'에 체크").

그리고 openMCL은 asdf(리습 라이브러리를 손쉽게 설치하게 도와주는 도구)를 포함하고 있지만, asdf-install을 사용하기 위해서 약간의 설정이 필요하다. 홈폴더에 openmcl-init.lisp 파일을 만들어서 다음 코드를 추가한다(openmcl-init.lisp 파일은 SLIME이 실행될 때 자동으로 로드되게 된다).

(require 'asdf)
(pushnew "ccl:tools;asdf-install;"
asdf:*central-registry* :test #'string-equal)
(asdf:operate 'asdf:load-op 'asdf-install)

댓글 없음: