考えすぎると頭がかゆくなる

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Meadow + cygwin + gauche でwindowsにおける快適なscheme実行環境を構築

DrSchemeはすぐに固まっていい加減うっとおしいのでlinuxでemacs+gaucheな環境でschemeの勉強をしていたんだけどいちいちlinuxを立ち上げるのもこれまたうっとおしい!
というわけで何とかwindows上でemacs+gaucheライクな環境を築けないかともにょもにょ試してみた。

案1.cygwin+emacs+gauche

gaucheはunix向けソースしか無いようで、windows上で動かすにはcygwin必須な模様。
じゃあcygwinでxwindow起動してemacs立ち上げてそこからaucheでいいじゃん!
cygwinのxwindowで動くemacsは白黒でとってもダサイけどハカーはそんな事気にしないぜ。hehehe
と思い実際やってはみたもののやはりosネイティブのコピーアンドペーストが使えないのが想像以上にキツイ。
ブラウザからのソースコピーが出来ないのでプログラムの勉強というより写経になってしまう。
結局、cygwin経由のemacsを普段のエディタとしてはもちろんScheme専用エディタとしても使うのは現実的ではないという結論に達しました。


案2.emacsが選択肢から外れたので次はMeadowで試そう

でもcygwinで走るgaucheをMeadowから使う事って出来るんだろうか?
meadow gaucheで検索してみてもそれらしき例が全然挙がってこない。
こないのに「meadow + gaucheを構築しました~」みたいな話はちらほら目に留まる。
くそう。俺だけわからないってやつだこれは。
とりあえずMeadow + gauche + cygwinは出来そうな空気なので先に進んでみよう。
Meadowで使うgaucheとして、cygwinでgaucheをコンパイルして出来たgauche.exeを指定する。

(setq gosh-program-name "C:/cygwin/usr/local/bin/gosh -i")

でもってMeadowからgaucheを起動しようとすると「cygwin1.dllが無いよ」って怒られた。
ほら、やっぱりバイナリ直接指定したって動くわけ無いんだよ…と思いつつcygwin1.dllで検索してみるとC:\cygwin\binにパスを通せとのアドバイスが。
パスを通して再起動してみる。
でMeadowからgaucheを起動。動いた。動いた。動きましたよ。


どーやらここを見ると
http://homepage3.nifty.com/kaku-chan/cygwin/chapter_005.html
cygwinのgccでコンパイルしたバイナリはcygwin1.dllが見つかりさえすれば普通にwindowsのexeと同じように動作するらしい。
知らなかったっす。

というわけでscheme実行環境は
cygwin+gauche+Meadow
に落ち着きました。細かい流れは以下。

まずcygwinのインストール。
gaucheのコンパイルのためにmakeが必要になるのでcygwinのインストーラでdevel -> makeをチェックしておくこと。

cygwinがインストールされたら次はgaucheのインストール作業。
ここを参考に、まずslibを落としてきてC:\cygwin\share\slibにインストール(slibを解凍して出来たフォルダをC:\cygwin\shareに突っ込むだけ)。
それが終わったら、適当な所にGauche-0.8.9.tgzを解凍して以下の流れでコンパイル。

configure --enable-multibyte=utf-8 --with-slib=/usr/share/slib --with-iconv=/usr/lib
make
make-install.

ここまでやるとcygwin上でgoshと入力してschemeインタプリタが起動するようになる。

次にmeadowをインストール。終わったらこのページを参考にこれを.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)

この行が重要。
(setq gosh-program-name "C:/cygwin/usr/local/bin/gosh -i")

以上を.emacsに追加する事で、Meadowで作業中にC-cSを入力すると画面が分割されそこでgoshが動き出すようになる。
しかしこのままだとcygwin1.dllが見つかりませんエラーが出るのでcygwin1.dllがある
C:\cygwin\bin
にパスを通す。
マイコンピュータ -> 詳細設定 -> 環境変数
のシステム環境変数にあるPathを編集。
;C:\cygwin\bin
を追加して再起動する。

これでMeadowからgoshを操作できるようになりました。

meadowでgauche

コメント


管理者にだけ表示を許可する
 

scmファイルに定義した関数をgoshで

はじめまして。
yagieyと申します。最近Schemeはじめました。
ひとつ質問させてください。

Meadow + cygwin + gaucheの環境を構築しようと、ここを参考にやってみました。

インストールは全部終わって、MeadowでC-cSってやるとgoshが起動するようになったところです。

んで、構築した環境をテストしてみようと、階乗の計算をするfact関数が定義されたfact.scmを開いて、C-cSでインタプリタ起動して、
gosh> (fact 5) [Enterを入力]
ってやっったんですが、「factがunboundだYO!!」って怒られました。

掲載されているスクリーンショットのように、
 ・上のバッファに定義を書く
 ・下のインタプリタのところでテストする
って真似がやりたいんですが、どうやったらできるんですか?

基本的なことで恐縮ですが、よければ教えてください。
おねがいします。

yagiey | URL | 2007年10月21日(Sun)00:50 [EDIT]


C-c C-lを押してみて下さい。
ミニバッファに「Load Scheme file:」と出るのでfactを定義したファイルの名前でも書きましょう。

シモネキスト | URL | 2007年10月21日(Sun)20:54 [EDIT]


ありがとうございます!!

C-c C-lでできましたよ。
定義をロードする作業が必要だったんですね。

これで快適なSchemeライフを送ることができます。
ありがとうございましたー。

yagiey | URL | 2007年10月21日(Sun)21:34 [EDIT]


 

トラックバック

TB*URL
この記事にトラックバックする(FC2ブログユーザー)

[Scheme]DrSchemeからMeadow+Gaucheへ

今までDrSchemeを使ってSchemeのコーディングをやってたんだけど、開発者のはしくれとしてemacsに憧れがあって、「emacs使わんで何が漢ぞ!!」とばかりにやってみました。 ってかemacsじゃなくてMeadowなんだけども。 あ、あとDrSchemeってファイルを開くダイアログや保存す
[続きを読む]

つんどく、だっきゃく。 | 2007年10月21日(Sun) 22:57


[scheme]WindowsにGaucheの環境を構築中

段々元気が出てきたので、おもむろにWindowsXP上にGaucheの環境を構築してみる。 このページを参照。 http://kayui.blog38.fc2.com/blog-entry-45.html:title=考えすぎると頭がかゆくなる-Meadow + cygwin + gauche でwindowsにおける快適なscheme実行環境を構築 ] 途中で止
[続きを読む]

momo_dev(k.kinukawa)の日記 | 2008年05月25日(Sun) 22:59


 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。