lispbuilder-sdl on clozure cl (on mac)
以下の記述に沿ってもslimeだと動きません…うーん。
clozure clとかcclとか言われるのはANSI Common Lispの処理系の一つで、かつてはFranzからMacintosh Allegro Common Lispとして売られてた事もあるが、現在はオープンソースになっている*1。原則mac向けだがwindowsとかlinux、FreeBSDなどでも動くらしい。
うちの環境(Mac OS X 10.9.5)だとclozure clでのlispbuilder-sdlが挙動が変(というかマウス操作とかができない)だったのだけど、どうやらclozure cl自身に single-threaded な動作をさせないといけないらしい。というか本家にもそうあった。
quicklispにsingle-threaded-cclというのがあるのでこれを使えばsingle-threadedで動くimageを作れる。
$ ccl64 --version Version 1.9 (DarwinX8664) $ ccl64 Welcome to Clozure Common Lisp Version 1.9 (DarwinX8664)! ? (ql:quickload :single-threaded-ccl) To load "single-threaded-ccl": Load 1 ASDF system: single-threaded-ccl ; Loading "single-threaded-ccl" (:SINGLE-THREADED-CCL) ? (ccl::save-application "single-threaded-ccl" :prepend-kernel t) $ # 終了してshellに落ちてくる $ ./single-threaded-ccl Welcome to Clozure Common Lisp Version 1.9 (DarwinX8664)! ? (ql:quickload :lispbuilder-sdl-examples) (:LISPBUILDER-SDL-EXAMPLES) ? (sdl-examples:mandelbrot)
できたイメージ( ./single-threaded-ccl )を適当な名前でpathの通ったところに置いておくといい気がする。
macだとcclのほうが評判がいいっぽいのでこれからこっちを使ってみようかなあ。
ところで前回のhashlifeのプログラムがなぜかcclだと挙動が変(たまにライフゲームのルールに沿ってない生死の挙動を見せる)んだけどなんでだろうか…。puffer trainが崩壊していってしまう…。→たぶんハッシュの衝突が原因。前エントリーの追記を参照