半年くらい前からだろうか、cygwin にインストールした clisp が起動と同時にエラーになる症状に陥った。
$ clisp i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 *** - Internal error: statement in file "/usr/src/clisp/clisp-2.46-1/src/clisp-2.46/src/stream.d" , line 5658 has been reached!! Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions. Break 1 [3]> nil NIL Break 1 [3]> (car '(1 2 3)) 1 Break 1 [3]> :q [/usr/src/clisp/clisp-2.46-1/src/clisp-2.46/src/eval.d:573] reset() found no driver frame (sp=0xdacc70-0xd90580) Floating point exception (core dumped)
動かないわけではないけれど、デバッガから抜けると落ちる。
まあ win32 バイナリの clisp の方が使えるから問題はないが。けど気持ち悪いなあ。 解決法がわからないから今のところ放置中。
私の環境でも、環境変数LANGをja_JP.SJISに設定してから
返信削除同様のことが起こりました。次のようにLANGの設定を解除し
てからclispを起動すると正常に起動します。
$ LANG= clisp
試してみてください。
あー、ロケールの問題でしたか。コメントありがとうございます。
返信削除好みの問題ですが自分はenvコマンドを使うのが好みですね。
$ env LANG=C clisp
CLISPの端末文字コードはデフォルトではCP932(SHIFT-JIS)らしいので、これだ
けでも一応日本語が通るようです。
http://clisp.cons.org/impnotes/encoding.html
[1]> *terminal-encoding*
#<ENCODING "CP932" :DOS>
[2]> (elt "ほげふが" 1)
#\HIRAGANA_LETTER_GE
1. 明示的に文字コードを指定する方法があったのでメモ。
返信削除$ man clisp
-Edomail encoding
file,pathname,terminal,foreign,misc,blank
$ clisp -E EUC-JP
これならば UTF-8, EUC-JP, CP932 が指定できる。
2. 起動時のバナーを表示させないようにしたらエラーがなくなった。謎だ…
$ clisp -q (or --quiet)
ちなみにこの状態なら SJIS, SHIFT-JIS も指定できる
$ clisp -E SJIS -q