COMMON LISP JP > Archives > 2011/11/03

2011/11/03 05:07:44 UTCgee
#
やってみましたが、here is no package named "COM.GIGAMONKEYS.HTML" .ってのがでました。com.gigamonkeys.htmlのasdfによる読み込みが必要とあるサイトに書いてあったのですが、com.gigamonkeys.htmlが見当たりません
2011/11/03 05:18:29 UTCmkamotsu
#
gigamonkey.comってPractical Common Lispが置いてあるサイトのドメインですね.
2011/11/03 05:22:51 UTCmkamotsu
#
Peter Seibel氏が作ったライブラリかな.たしかに(ql:system-apropos "gigamonkey")しても出てきませんね.
#
その代わり,同じくSeibel氏が作ったmonkeylib-markup-htmlというのがあります.名前が変わったのでは.
2011/11/03 05:28:43 UTCmkamotsu
#
monkeylib-markup-htmlをquicklispでインストールしてみてください.
2011/11/03 05:32:18 UTCgee
#
できました。
#
インストール
2011/11/03 05:33:53 UTCmkamotsu
#
com.gigamonkyes.htmlというパッケージは無いですが,com.gigamonkeys.markup.htmlというパッケージがあります.
#
おそらくそれが目当てのものかと.
2011/11/03 05:40:19 UTCgee
#
パッケージもできました。あとサーバーを起動する方法なんですが、この場合どうすればいいんですか?
2011/11/03 05:41:37 UTCmkamotsu
#
(net.aserve:start :port 4242)でできません?
#
ああ,まずそのin-packageで作ったパッケージに入らないといけないですね.
#
もしくはパッケージ名を指定して(パッケージ名:start :port 4242)
2011/11/03 05:48:36 UTCgee
#
入りました。そしたら今度はThere is no package named "NET.ASERVE" .がでました
2011/11/03 05:49:40 UTCmkamotsu
#
:useにnet.aserveは入ってますよね.
#
というか(require 'aserve)はしてますよね.
2011/11/03 05:52:17 UTCgee
#
はい。:ASERVEが赤字で出てるので
2011/11/03 05:54:19 UTCmkamotsu
#
(cl:defpackage :test-package (:use :cl :net.aserve :com.gigamonkeys.markup.html))こんな感じでパッケージ作りますよね.
#
(in-package :test-package)してから,(start :port 4242).
2011/11/03 05:59:32 UTCgee
#
(cl:defpackage :test-package (:use :cl :net.aserve :com.gigamonkeys.markup.html))の時点でThere is no package named "NET.ASERVEが出ました。
2011/11/03 06:00:32 UTCmkamotsu
#
ということはaserveのインストールができてませんね.(ql:quickload :aserve)をもう一度.もしかしたらLisp on a boxを再起動したほうがいいかもしれません.
2011/11/03 06:02:19 UTCgee
#
quicklispでやるとLambda list of method #<STANDARD-METHOD CCL:ACCEPT-CONNECTION (ACL-COMPAT.SOCKET::SERVER-SOCKET)> 
is incompatible with that of the generic function CCL:ACCEPT-CONNECTION.
Method's lambda-list : (ACL-COMPAT.SOCKET::SERVER-SOCKET &KEY
                        ACL-COMPAT.SOCKET::WAIT)
Generic-function's   : (CCL::SOCKET &KEY CCL::WAIT
                        CCL::STREAM-ARGS)
のがでてしまいます。
2011/11/03 06:03:33 UTCmkamotsu
#
え,以前(require :aserve)は完了してませんでしたっけ.
2011/11/03 06:04:10 UTCgee
#
はい。それは完了しているんですが、quicklispでやるとエラーが出ます。
2011/11/03 06:05:07 UTCmkamotsu
#
こちらの環境ではquicklispでもロードできるんですよねぇ.まだ取れてないバグがあるような.
2011/11/03 06:07:54 UTCgee
#
上のエラーは関係ありますか?
2011/11/03 06:09:11 UTCmkamotsu
#
はい.パッチをacl-compatにパッチを当てたんですよね? あのパッチで少し前進したんですが,もう一歩足りないみたいです.
2011/11/03 06:09:51 UTCgee
#
そのもう一歩は難しいですか?
2011/11/03 06:10:38 UTCmkamotsu
#
こっちでも動かないならパッチの書きようがあるんですけど動いてるので…… Clozure CLのバージョン依存かWindows依存なんでしょうね.
2011/11/03 06:11:30 UTCgee
#
やはりwindowsでやるのは無理がありましたか
2011/11/03 06:12:20 UTCmkamotsu
#
まぁ,まだ誰もやってない,というだけです.フリーソフトの発展というのは一番最初にやりたいと思った人が頑張った結果なんですよ.
2011/11/03 06:13:59 UTCgee
#
そうですか。windowsが原因だとしたなぜ動かないんですか?
2011/11/03 06:16:01 UTCmkamotsu
#
OSによってClozure CLのソケットの実装が違うからでしょうね.
2011/11/03 06:17:24 UTCgee
#
その実装を書き換えたらうごきますか
2011/11/03 06:19:02 UTCmkamotsu
#
ちょっと遡りすぎですね.Clozure CLのWindows上でのソケット特有の使い型をACL-COMPATに教えるだけで動くと思います.
2011/11/03 06:20:29 UTCgee
#
windows特有の使い方は自分で調べれますか?
2011/11/03 06:22:34 UTCmkamotsu
#
究極的にはオープンソースなのでソース見れば…… なんですがどこまでの知識が必要なのか俺にもわかりません.
#
そこまでしてClozure CLでaserveを動かしたいか,ということですけど.
2011/11/03 06:29:15 UTCgee
#
正直webサーバーを実際に使って勉強できればいいんでけど、これじゃなきゃ本の通りできない気がして
2011/11/03 06:30:56 UTCmkamotsu
#
実践Common Lispですか? その本.
2011/11/03 06:31:02 UTCgee
#
はい
2011/11/03 06:31:39 UTCmkamotsu
#
http://www.gigamonkeys.com/book/ ここにソースコード使ってます?
2011/11/03 06:32:23 UTCgee
#
たしか使ってます
2011/11/03 06:33:53 UTCmkamotsu
#
ということはquicklispも必要なかったですね.ライブラリは全部その中です.
2011/11/03 06:35:38 UTCgee
#
これはwindowsむけではないんですか
2011/11/03 06:37:33 UTCmkamotsu
#
Pure Common Lispで書かれているコードはCommon Lispが動いていればWindowsだろうとLinuxだろうとMacであろうと関係ありません.
#
しかしCommon Lispの仕様にはネットワーク通信は含まれていないので,Common Lispでネットワーク通信のプログラムを書くには処理系ごとに違った書きかたをしなければなりません.
2011/11/03 06:39:16 UTCgee
#
そうですか。サーバーはあきらめるべきですか
2011/11/03 06:41:48 UTCmkamotsu
#
それを,全てのCommon Lisp処理系が,Allegro CLという処理系と同じ使いかたができるようにするライブラリがacl-compat.
2011/11/03 06:43:13 UTCgee
#
acl-compatってそういう役割だったんですか。
2011/11/03 06:44:24 UTCmkamotsu
#
俺だったら,Lisp in a Boxが使っているCommon Lisp処理系をClozure CLからCLISP等に換えますね.Lisp in a Boxって,実践Common Lispが出版された頃はCLISPという処理系を使ってたんですよ,たしか.
2011/11/03 06:48:02 UTCgee
#
clispをダウンロードして何かかしらすればlisp in a box の処理系ってかえれますか?
2011/11/03 06:49:44 UTCmkamotsu
#
Emacs,SLIME,quicklisp,Clozure CLというソフトを設定済みの状態で固めてあるだけなので,Emacsの設定を変えれば変えられると思います.
2011/11/03 07:01:55 UTCgee
#
clispダウンロードしてみたんですが、emacsの設定はlisp in a box のファイルのなかですか?
2011/11/03 07:06:33 UTCmkamotsu
#
lisp in a boxのマニュアルに書いてないですかね.
#
失礼,マニュアルなんて無いですね.
2011/11/03 07:13:16 UTCmkamotsu
#
lisp in a boxのフォルダの中,emacsから始まるフォルダの中の,site-lispにあるlispbox.elというのがEmacsの設定ファイルですね.
2011/11/03 07:27:10 UTCmkamotsu
#
その前にCLISPはちゃんと動きますか?
2011/11/03 08:53:33 UTCmkamotsu
#
手元の環境で試してみましたが、Windows版のCLISPはマルチスレッドが動かなくて駄目ですね。
2011/11/03 12:51:50 UTCgee
#
ちゃんと動いてるのかどうかはわからないんですが、一応コードは実行できます。
2011/11/03 12:59:40 UTCmkamotsu
#
なんかTwitterでも話題になってたんですが,やっぱりaserveはWindowsでは苦しいんじゃないか,という雰囲気でした.
2011/11/03 13:00:55 UTCgee
#
そうですか。Linuxとかだったら大丈夫なんですか?
2011/11/03 13:02:01 UTCmkamotsu
#
内容をしっかり理解すれば,aserveをhunchentoot,monkeylib-markup-htmlをcl-whoと読みかえることが出来ると思うんですが,難しそうですか?
#
使っているPCのスペックが高ければVirtualBoxなどを使ってバーチャルなLinux環境を作るのも手です.
#
LinuxだとClozure CLの他にSBCL,CLISPなどが選択できて,その上ではaserveは問題無く動きます.
2011/11/03 13:05:00 UTCgee
#
バーチャルなLinux環境というのは作るの難しいですか?
2011/11/03 13:06:40 UTCmkamotsu
#
すごく簡単です.
#
時間は掛かりますけど.
2011/11/03 13:07:09 UTCgee
#
どれくらいですか?
2011/11/03 13:07:34 UTCmkamotsu
#
2時間ぐらいですかね.PCの性能とネット環境の速度によります.
#
まぁCommon Lispあんまり関係無くなってますけど.
2011/11/03 13:09:49 UTCgee
#
いまちょっとdownloadしてみます。
2011/11/03 13:26:37 UTCgee
#
download完了しました。
2011/11/03 13:26:56 UTCmkamotsu
#
そこまで報告せんでよろし.
2011/11/03 13:28:13 UTCgee
#
はい
2011/11/03 14:37:35 UTCgee
#
仮想ハードディスクはどこにすればいいんでしょうか?
2011/11/03 14:38:50 UTCmkamotsu
#
VirtualBoxのことは流石に主旨に似わないと思うんですが……
#
基本全部デフォルトで良いですよ.
2011/11/03 14:39:31 UTCgee
#
すみません
2011/11/03 14:40:42 UTCmkamotsu
#
失敗したら最初からやりなおせばいいのでとりあえず試行錯誤してみてどうしても上手くいかないところを人に聞くのが上達のコツです.何事にも.
2011/11/03 15:18:58 UTCllibra
#
とりあえず、僕が貼ったパッチもどきはWindowsで書いたものなので、Windowsでもコンパイルできます。少なくともWindows XP SP3上のClozure CL 1.8-dev r14962では。
#
上に出ているエラーとかにも対処しているはずですので、多分、ちゃんとパッチを適用できていないんだと思いますが、ただ、実際geeさんの手元にあるソースコードを見ていなので、何とも言えません。
#
ただ、個人的にはPortable AllegroServeを動かすことにあんまり興味がないので(僕にはHunchentootで十分なので)、仮にあのパッチを適用した結果、まだ正常に動かなかったとしても、これ以上詳しく調べることはしないと思います。
2011/11/03 15:28:25 UTCllibra
#
今までのやり取りの中で、察するに、色々分からないことだらけだと思うんですが、PCの基本的なこととかは、切りがないですし、ここで全部教えることはできないです。
#
ただ、自分でも色々試してみて、どうしてもやり方が分からない、手掛かりも分からない、みたいなときは、「目的のために、これこれこうしたんですが、このようになりました。解決する方法か、手掛かりとなる情報を教えてくれませんか」といった風に聞いてもらえれば、他の方も快く教えてくれると思います。
#
mkamotsuさんもおっしゃってますが、色々試行錯誤するのが一番早いので、失敗を恐れずにやってみると思います。
#
みると思います←みると良いと思います、ですね。失礼。
2011/11/03 15:39:54 UTCmkamotsu
#
とりあえず俺たちがCommon Lispを勉強しはじめた頃にはこういうチャットはなかった.とだけ言っておきます.いい時代になったものです.