COMMON LISP JP > Archives > 2010/11/13

2010/11/13 13:29:02 UTCPocket
#
TwitterでもつぶやいたのですがHunchentootを使ってみています。
#
そこで質問なのですが、HunchentootでインクリメンタルにWebアプリケーションを開発するにはどのようにすれば良いのでしょうか?
#
(hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242))
#
してしまうとreplが復帰してこないので、編集しては一旦終了させ、再ロードとやっているのですが、もうすこし良い開発方法があるはずだとおもうので、よろしくおねがいします。
2010/11/13 13:38:53 UTCg000001
#
自分は、slimeのswankを立ち上げておいて、アタッチしたりしていますが、swankを起動するのは、slimeを使うなら結構楽かなと思います。
#
もしどっちかしか起動できない場合は、SBCLの場合はマルチスレッド対応でなかったりとか…
#
(swank:create-server :port 4005 :dont-close t :coding-system "utf-8-unix")みたいな感じで起動させておいて、という感じですね
2010/11/13 13:43:34 UTCPocket
#
なるほど、ちょっとためしてみます!
#
ありゃ、Mac上のsbclではhunchentootをstartさせるとreplがうばわれていたのですがlinuxの方では普通にreplがかえってきますね..
#
Macのsbclの問題なんですかね..
#
最新版のsbclをコンパイルしてインストールしているのですが
2010/11/13 13:52:28 UTCg000001
#
(find :sb-thread *features*);=> :SB-THREAD
#
でないとマルチスレッドじゃないですね。コンパイルしているのなら
2010/11/13 13:53:59 UTCPocket
#
なるほど,たしかにnilがかえってきました。
#
コンパイルオプションの設定をしてなかったかもしれないですね。
2010/11/13 13:54:25 UTCg000001
#
grep :sb-thre base-target-features.lisp-exprして、:sb-threadが
#
コメントアウトされてないかを確認して、コメントでなくしてからコンパイルするとマルチスレッドなSBCLになると思います
#
でも、macosxのSBCLでマルチスレッドってなんか問題があったような、なかったような。知ってる人が教えてくれるかもしれません :)
2010/11/13 13:56:19 UTCPocket
#
ありがとうございます!
2010/11/13 13:56:37 UTCg000001
#
base-target-features.lisp-exprはソースディレクトリの直下にありますー
2010/11/13 13:57:48 UTCPocket
#
やはりコメントアウトされていました
#
ちょっと再コンパイルしてみます。
2010/11/13 13:59:23 UTCg000001
#
デフォルトはコメントアウトされてるんですよね。パッケージだと有効にしてビルドしてるディストリビューションが多いみたいなんですが
2010/11/13 13:59:24 UTCPocket
#
slimeにswankとバージョンがちがうけどok?ときかれてしまったのですが
#
これは、asdfのディレクトリからアンインストールして
#
slimeのディレクトリを参照に追加すれば良いのでしょうか?
2010/11/13 14:00:07 UTCg000001
#
多分、emacsが読んでる、slime.elと、CLが読んでるswankが
#
別のところなのかもしれないですね
#
もしくは、コアを作っているならば、コアの中のswankが新しいか古いかですね
#
そうですね、asdf:*central-registry*にswank.asdを登録すればOKではないかと思います >slimeのディレクトリを参照に追加すれば良いのでしょうか?
2010/11/13 14:03:25 UTCPocket
#
ありがとうございます。
#
結局slime内のswank.asdを.sbcl/systems/にリンクしました :)
2010/11/13 14:04:43 UTCg000001
#
そうですね、それでOKだと思います。あとは、同じslimeディレクトリ内のslime.elをemacsが読むようにload-pathかなにかを適切に設定すればOKだと思います
2010/11/13 14:09:13 UTCg000001
#
基本的にバージョンがあってなくても動きはするんですが、微妙に変だったりするんですよねー
2010/11/13 14:11:08 UTCPocket
#
先程はversionが違うといわれたうえprotocolがどうのといってemacsがフリーズしたので解決してよかったです。
#
Linuxのノートの方では無事インクリメンタルな開発ができました。あとはMacの方でのsbclのコンパイル完了を待つのみ
#
sbclのコンパイルってなにげに時間長いですよね。cmuclよりはマシでしたけど..
2010/11/13 14:14:51 UTCg000001
#
slimeのバージョン問題は自前でビルドする場合の面倒臭いところですねー
#
SBCLのコンパイル時間は、ビルドに使うlispの処理系によるんですが、clispとかだと遅いですね
2010/11/13 14:23:22 UTCPocket
#
testしたところ大量のthreadに関するエラーが...
#
ためしにMac用に提供されているBinaryを導入してみます
2010/11/13 14:26:13 UTCg000001
#
何かがあったような気がしますねw
2010/11/13 14:26:38 UTCsnmsts
#
clispだと遅いですよね…なーんもlispが無い状態だとclispを使うのが楽な感じですけど…
#
macでsbclを使うのを辞めてしまったのですが…理由を思いだせない…
2010/11/13 14:27:13 UTCg000001
#
Clozure CLとかもSBCL並に速いですね
2010/11/13 14:34:47 UTCPocket
#
なるほど、
#
結局バイナリ版でもthreadは提供されていませんでした。
#
threadがないとswankで連携するのも不可能なのでしたっけ?
2010/11/13 14:42:42 UTCsnmsts
#
swankの反応でやること全てになっちゃいますねー
2010/11/13 14:44:17 UTCPocket
#
なるほど
#
なにか他のMac上の日本語対応した処理系を利用した方が現実的ですかね
2010/11/13 15:02:32 UTCPocket
#
気がついたらこんな遅い時間に。。もうしわけありません
#
hunchentootはMac上ではclozureCLを利用する事にしました。いろいろありがとうございました!!