Shammer's Philosophy

My private adversaria

2012-04-01から1ヶ月間の記事一覧

Clozure CL で Thread を使ってみる【その4】

以下の記事では、 Clozure CL で Thread を使ってみる【その1】 - Shammerism Clozure CL で Thread を使ってみる【その2】 - Shammerism Clozure CL で Thread を使ってみる【その3】 - Shammerism process-run-function を使用していたが、本来は make-…

Clozure CL で Thread を使ってみる【その3】

Clozure CL で Thread を使ってみる【その2】 - Shammerismでは、passive-socket はメインスレッドの中でlisten していたが、これを別のメソッドで行うようにしてみた。 (defmethod queue-listen ((q queue)) (with-open-passive-socket (server "127.0.0.1…

Clozure CL で Thread を使ってみる【その2】

Clozure CL で Thread を使ってみる【その1】 - Shammerismの実装では、無限ループ状態になってしまい top で CPU 100% となってしまったのでそうならないように修正を考える。Java の 1.4.2 が最初に本格的に取り組んだ言語だったこともあり、マルチスレッ…

Clozure CL で Thread を使ってみる【その1】

LISP で Queue を実装 version 1.0 - ShammerismでQueue を実装してみたので、それを使ってみたいと思う。Queue と言えば Consumer と Producer、つまり、Thread だ。Lisp での Thread はまだ不慣れなところが多いので、Queue の Consumer 処理と Producer …

push と pop

簡単だけれども Queue の実装ができたので、今度は Stack を・・・と思ったのだが、どうやら push と pop という Macro があるようだ。これを使用すれば非常に簡単に Stack を実現できる。 ? (defparameter *stack* nil) *STACK* ? (macroexpand-1 '(push 'a…

LISP で Queue を実装 version 1.0

LISP で Queue を実装その2 - Shammerismを清書しただけ、という感じだが、ちょっとだけスリムになったのでとりあえず書いておくことにした。 (defclass queue () ((internal-list :reader get-internal-list :writer set-internal-list :initform nil))) (d…

LISP で Queue を実装その2

LISP で Queue を実装その1 - Shammerismの失敗を回避するためにクラスを使用。 ? (defclass queue () ((internal-list :reader get-internal-list :writer set-internal-list))) #<STANDARD-CLASS QUEUE> ? (defmethod en-queue ((q queue) object) (let ((original-queue (if (sl</standard-class>…

LISP で Queue を実装その1

とりあえずそんな複雑なものではなく、 in-queue すると先頭に追加される de-queue すると先頭から一つ削除、2 番目以降が一つずつ前にくる というだけのものでいいので書いてみようと思う。 in-queue はあまり考えることはない。空の状態から開始して、渡さ…

with-open-passive-socket ver 20120407

with-open-passive-socket ver 20120327 を別 package 化したら動かない - Shammerismで発見された問題を解消するために with-open-passive-socket の内容を変更。コード自体はかなりシンプルになった。 (defmacro with-open-passive-socket ((server addr p…

with-open-passive-socket ver 20120327 を別 package 化したら動かない

with-open-passive-socket ver 20120327 - Shammerismで完璧、と思っていたが、これを別の package にしたら動作しないことが判明。具体的には、 (make-package "SOCKET-LIB") (in-package socket-lib) (defmacro with-open-passive-socket (&rest body) (le…

Python Socket Server

Python HTTP Post client - Shammerismでクライアントを書いたので、今度はサーバー。と言っても、複雑なことは何もせず決まった応答を返すだけのもの。ほとんどサンプルのコピー。。。 import SocketServer class MyTCPHandler(SocketServer.BaseRequestHan…