Windows で Common Lisp の開発環境を Eclipse のプラグイン Cusp を使っているのだけれど、ここにおいて古くて忌まわしい問題が・・・
日本語コードが忌まわしい・・・なんで今時日本語エンコードで振り回されているんでしょうか・・・
Common Lisp 側は Unicode (UTF-8)前提なので、それに合わせれば良さそうなものなんだけれど、確かにソースファイルのエンコードを UTF-8 に指定して出来たファイルを asdf 経由でコンパイルする分にはコンパイルできて成功するのに、エディタ上で文字列などに日本語を入れるとエディタがファイル保存のタイミングで即時エラー(行頭に赤バッテンマークが付く)になるので個別に Lisp メニューから Compile File することさえできない。
ちなみにワークスペースのテキストファイルの文字エンコードを MS932 にしておけば、この即時エラーにならないですが、当然 Common Lips (SBCL)側でのコンパイルでこけたりするわけです。
Cusp がどう動いているか良くわからんのですが、おそらくファイル保存のタイミングで一旦 REPL など(多分なんか違う気はする)にエディタの字面を評価させたりしてるのじゃあるまいか。その際にその何らかの評価系へ渡すコードの文字エンコードが拙いことになっているような気配がする。
正直こういうのを見ちゃうと Eclipse + Cusp じゃなくて vim + Limp にしたい。REPL の操作も Limp の方が clisp ライクで楽だし。Cusp で入力のヒストリー一覧から選択ていうのは、サーチ機能も付いてはいるけど正直マウス操作なんかしたくないわけなので、その点で減点なわけです。しかもこのヒストリーは古いものが上に来る一覧なので、操作が長くなると最近の操作は下の方に消えているから、一覧を手繰らないといけない。普通よく再入力したりするのは最近の操作が多いわけだから、この辺も面倒。
そういったように Cusp はいろいろ面倒だったりするのだけれど、Limp は Limp で Windows で動くようにするにちょっと手間が掛かりすぎて嫌。FreeBSD とかで Limp 環境を構築するのは、すぐ終わるんですけどねぇ・・・Windows はあれこれ入れたり、細工したり手間が掛かりすぎます。
まあ、Windows じゃなくて FreeBSD でやれれば良いのですが、いろいろ他との兼ね合いもあったりして儘ならないのです・・・
しかし、そう見ていくと REPL というかフロントエンドから “(ed …)” などしちゃえと考えると(Cusp や Limp、Slime とは方向性が正反対なんですが)、clisp は単体で大変良く出来ていますよねぇ・・・HyperSpec などとの連携は無いのではありますけれど。