戻る

GaucheをcygwinでコンパイルしてMeadowと組み合わせて使う

cygwinのターミナルからgaucheで幸せになっていたのも束の間、
新たな問題が……。
「goshを動かすだけではそれ自体はshellではないから、馬鹿正直に入力を処理系に渡してしまう。
 backspaseとか使うとそのコードまで義理堅く処理系に渡す。
 ゆえに打ち間違いができない。」
これは意外に辛いですよ〜。

gaucheの本はUNIXで動かすのを前提だから普通にEmacs使えばと書く。
ところが、cygwinで動くXemacsはいまいちピンとこないし
ターミナルで動かすとそれはそれなりの問題が別途発生。
で、インターネットでいろいろ調べてmeadowと組み合わせればいいということになったのでした。

slibのインストール

なぜ必要なのかはわからないんだけど、(移植性抜群!のライブラリー集らしいんだけど、schemeの場合なくてもなんとかなるんじゃないだろうか……と思ってしまう。)とりあえずインストール。
http://people.csail.mit.edu/jaffer/SLIB.html からx86 MS-Windows用のslib-3b1-1.exeを適当なフォルダに落として実行すると、
Program Filesの中にslibフォルダを作ってインストールされるので、
cygwin/usr/shareフォルダの中にslibフォルダごとコピーしてしまう。

cygwinでgaucheのコンパイル

要領はおおむねhttp://www.lufimia.net/cal/kesobumi/gauche.htmのとおりなんだけど、少々変更箇所が……。
「1 ファイルの入手」と「2 解凍」は記載のとおり。
「3 Gaucheフォルダへの移動」の前に、解凍したgaucheフォルダを/cygwin/usr/srcフォルダ内に動かしましたが、これは本質的変更ではありません。
管理のしやすさなど今後のことを考えただけ。
で、gaucheフォルダに移動したのちのconfigureコマンドのオプションが違います。
configure --enable-multibyte=sjis --with-slib=/usr/share/slib --with-iconv=/usr/lib
のようにslibとiconv(これは普通cygwinのインストールでインストールされているはず。)とを加えるオプション。
あとのmakeとmake installは一緒。

meadowのインストール

http://www.meadowy.org/meadow/netinstallのsetup-ja.exeをダウンロードして実行すると、meadowがインストールされます。
インストーラーはcygwinのインストーラーと同じタイプなんで、cygwinのインストールを参考にするといいと思います。
ちなみに私はc:\meadowにいったんダウンロードしてからインストールしました。その後setup-ja.exeもc:\meadowに移動させています。これも今後の管理のため。
また最後にインストール.exeを実行して、フォルダとしてはc:\cygwin\home\自分のホームディレクトリを指定しています。

windowsの環境変数のpathの設定

スタート→設定→コントロールパネル→システム→詳細→環境変数でシステム環境変数にpathがあると思うので編集で値の末尾に「;c:\cygwin\bin」を追加しておきます。
これでcygwin1.dllが必要なプログラムも動く算段。
(ふと思ったんだけど、すでにpathが通っているはずのwinnt\system32なんかに入れるのはさすがに極道なのかなあ。)

.emacsの設定

例えば
(setq process-coding-system-alist
(cons '("gosh" utf-8 . utf-8) process-coding-system-alist) )
(setq gosh-program-name "C:/cygwin/usr/local/bin/gosh -i")
(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)
(defun scheme-other-window ()
"Run scheme on other window"
(interactive)
(switch-to-buffer-other-window (get-buffer-create "*scheme*"))
(run-scheme gosh-program-name) )
(define-key global-map "\C-cS" 'scheme-other-window)
などを加える。

これでmeadow動かしてcontorol-c Sを打つと、ウインドウが上下2つに分かれて、うち1つにgaucheのコマンドプロンプトが出てgaucheが動くという次第、
※参考
http://kayui.blog38.fc2.com/blog-entry-45.html
「Meadow + cygwin + gauche でwindowsにおける快適なscheme実行環境を構築」 (「考えすぎると頭がかゆくなる」シモネキスト)
(2008.12.16.)
戻る