fu7mu4’s diary

はてなダイアリーから移転しました。

Clozure CL 1.10 / slime が cp932 の「ん」での謎の挙動をする

まず、Clozure CL / Slime で UTF-8 でひらがなの "ん" のある文字列をつかった lisp ソースを作成します。

(defvar *char* "さん") ;特に意味はない

C-cC-c(slime-compile-defun)してみましょう。問題はありません。
次にC-cC-k(slime-compile-and-load-file)してみましょう。はい、問題はないですね。

じゃあ、次にC-xRETfしてファイルの文字コードをcp932(shift_JIS)に変換してから同じことをしてみましょう。

C-cC-c は問題ないですね。
それでは C-cC-kしてみましょう。

あるぇー

Unexpected end of file on #, near position 74
[Condition of type END-OF-FILE]

Restarts:
0: [RETRY-COMPILE-FILE] Retry compiling #P"/Users/fu7mu4/junk/2014/12/09-223334.lisp"
1: [SKIP-COMPILE-FILE] Skip compiling #P"/Users/fu7mu4/junk/2014/12/09-223334.lisp"
2: [ABORT] Abort compilation.
3: [*ABORT] Return to SLIME's top level.
4: [ABORT-BREAK] Reset this thread
5: [ABORT] Kill this thread

えーっとどういうことですかね。
理由はよくわかりません。とりあえず UTF-8lispのソースを書いておけばいい。そういうことでしょうか。

Windows7上でも MacOSX上でも発生するようです。