Mac OSX (64lbit)での common lisp の プロジェクトの作成までのまとめを作成してみた。あちこち間違っていると思うので、指摘してください。





Emacs のインストール Gnu Emacs 上の slime で開発するので、Emacs をインストールする。

macport でも homebrew でも どちらでもよいがとりあえず最新安定版を使用する。

quicklispのインストール quicklisp のダウンロード mkdir -p ~/work/quicklisp cd ~/work/quicklisp wget http://beta.quicklisp.org/quicklisp.lisp ccl64 quicklisp のインストール ( load "~/work/quicklisp/quicklisp/lisp" ) ( quicklisp-quickstart:install ) ( ql:add-to-init-file )

slime のインストール ( ql:system-apropos "slime" ) ( ql:quickload :quicklisp-slime-helper ) ( quit ) こんな表示がでるので、 To use, add this to your ~/.emacs: (load (expand-file-name "~/quicklisp/slime-helper.el"))

;; Replace "sbcl" with the path to your implementation

(setq inferior-lisp-program "sbcl") init.elなどにこのようなものを書いておく。HyperSpec をダウンロードした場合、そのパスを変更すること。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; slime ;; SLIME is the Superior Lisp Interaction Mode for Emacs. (load (expand-file-name "~/quicklisp/slime-helper.el")) ;; Replace "sbcl" with the path to your implementation (setq inferior-lisp-program "/opt/local/bin/ccl64") ; your Lisp system (setq slime-net-coding-system 'utf-8-unix) ; 日本語の使用 ;(slime-autodoc-mode) (setq w3m-command "/opt/local/bin/w3m") ;; HyperSpecを読み込む. macport で hyperspecをインストールしなかった場合、このパスを適宜変更すること (setq common-lisp-hyperspec-root (concat "file://" (expand-file-name "/opt/local/share/doc/lisp/HyperSpec-7-0/HyperSpec/")) common-lisp-hyperspec-symbol-table (expand-file-name "/opt/local/share/doc/lisp/HyperSpec-7-0/HyperSpec/Data/Map_Sym.txt")) ;; HyperSpecをw3mで見る (defadvice common-lisp-hyperspec (around hyperspec-lookup-w3m () activate) (let* ((window-configuration (current-window-configuration)) (browse-url-browser-function `(lambda (url new-window) (w3m-browse-url url nil) (let ((hs-map (copy-keymap w3m-mode-map))) (define-key hs-map (kbd "q") (lambda () (interactive) (kill-buffer nil) (set-window-configuration ,window-configuration))) (use-local-map hs-map))))) ad-do-it)) ;;;; 以下は skk-user用 (defun my-slime-space (n) (interactive "p") (if skk-henkan-mode (skk-insert) (slime-space n))) ; (add-hook 'slime-mode-hook (lambda () (progn (define-key slime-mode-map " " 'my-slime-space)))) これで Emacs を起動して、M-x slime で slime が起動することを確認する。

asdf でのパスの設定

quicklisp のプロジェクトの検索では、よく ~/quicklisp/local-projects に野良の lispのライブラリをダウンロードしていたが

話がややこしくなる。折角なので検索パスを追加する。 clozure cl の初期設定ファイルで検索パスを設定できるとは思うがよくわからないので、asdf を利用する。

clozure cl は asdf を自動的にロードしているらしいので、そのまま設定ファイルを作成すればいいはず。 mkdir -p ~/.config/common-lisp/source-registry.conf.d cd ~/.config/common-lisp/source-registry.conf.d ここに以下のようなファイルを作成する。ファイルの拡張子は .confであればよい。 ( :tree ( :home "lisp" )) tree は指定フォルダ以下全てのフォルダを検索パスに追加することを意味している。

ここでは ~/lisp 以下のフォルダ全てを追加した。 すぐに設定を反映させるなら、以下を実行します。 ( asdf:clear-source-registry ) 参考 ASDFの設定