ラベル common lisp の投稿を表示しています。 すべての投稿を表示
ラベル common lisp の投稿を表示しています。 すべての投稿を表示

2012年4月1日日曜日

SLIME起動せず

最新(2012-03-31版)のslimeを入れ、(require 'slime)すると、
Debugger entered--Lisp error: (error "Invalid character: 12362, #o30112, #x304a")
  eval-buffer(#<buffer  *load*> nil "/home/shingo/tmp/slime-2012-03-31/slime.el" nil t)  ; Reading at buffer position 306084
  load-with-code-conversion("/home/shingo/tmp/slime-2012-03-31/slime.el" "/home/shingo/tmp/slime-2012-03-31/slime.el" nil t)
  require(slime)
  eval((require (quote slime)))
  eval-last-sexp-1(t)
  eval-last-sexp(t)
  eval-print-last-sexp()
  call-interactively(eval-print-last-sexp)
といって見事に死んでくれます。
貴重な休日にこの・・・。

M-x goto-char で 306084 を調べると、 "\x304a" という文字がNGっぽい。
*scratch*で評価してもEmacsLispのデバッガに落ちるます。もう少し調べました。
NGとなったのは (def-slime-test utf-8-source を宣言している箇所。
utf-8-sourceが通るかどうかをテストしている模様。
これがコミットされたのが2012-03-26。つい最近です。
ソースを一通りgrepしてみたけど utf-8-source を使っている箇所がなさそうだったので、コメントアウトしました。
(require 'slime)したところ問題なし。

環境は
OS : Linux 32bit
Emacs : 22.2.1
CommonLisp : SBCL 1.0.55

2012年3月12日月曜日

WindowsでEmacs + SLIMEでそこそこ快適なCommon Lispの開発環境がほしい

GNU Emacsについて
公式ページで配布しているWindows用バイナリを使えば、とりあえずはEmacsは使うことができます。が、MS-IMEで日本語を入力するときにちょっとおかしくなります。(ちょっと?)
そのため、IMEパッチなるものが必要となります。

私はCygwinを入れてコンパイルする根性がないため、バイナリを頂いています。


emacsのインストール
http://cha.la.coocan.jp/doc/NTEmacs.html
より、IMEパッチ適用済みのバイナリを頂きます。
それを C:\emacs とかに展開して終了です。
デスクトップの emacs.exe へのショートカットがあっても便利だと思います。



emacsの設定
Options -> Set Default Font でフォントの設定ができます。あとはお好きに。



Common Lispのインストール
Clozure CLを入れます。(以下、CCL)
なぜかというと、最新のSBCL+SLIMEだと、SLIMEが起動しなかったためです。あと、CCLはWindowsでもマルチスレッドに対応していますが、SBCLはWindows環境だとまだ実験段階らしいためです。

http://ccl.clozure.com/download.html
より、Windows用バイナリを頂いてきて、展開して終了です。
私はC:\ccl-1.7に入れました。



SLIMEのインストール
http://common-lisp.net/project/slime/
より、cvs snapshotのリンクを押して、最新のものをダウンロードします。
どこでも良いので適当に展開して配置します。
Windows VistaやWindows7だと、 C:\Users\ユーザ名\AppData\Roaming がemacsのホームディレクトリとなっているらしいので、そこに展開してもよさそうです。
私はC:\emacsにemacsを置いているので、C:\emacs\site-lisp\slime-2012-03-10に置きました。load-pathの設定を省くためです。



SLIMEの設定
以下のように.emacsに書いておきます。

; 我が家は32bitです
(setq inferior-lisp-program "c:/ccl-1.7/wx86cl.exe")
(require 'slime)
(slime-setup '(slime-fancy))
(add-hook 'lisp-mode-hook (lambda ()
       (slime-mode t)
       (show-paren-mode)))

M-x slime でめでたく起動です。

HyperSpecについてはまた機会があれば。
そのままの設定ではWindows上からだとブラウザで表示しようとするので、ちょっと工夫が必要となります。