万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

CommonLisp Mac初める WebサーバWoo

Lispはいろんなのがあるけど、sbclにした。 Common LispのWebサーバ「Woo」がだから。

依存系のインストール(面倒なのでbrew

brew install libev
brew install sbcl

パッケージ管理?QuickLispのインストール

quicklisp.lisp がDLされ、それがあるフォルダで行う

curl -O http://beta.quicklisp.org/quicklisp.lisp 
sbcl --load quicklisp.lisp

そのあとで、SBCLを起動

sbcl

その起動内したターミナルで初期化 ※~/quicklisp/setup.lisp"にはすでに入ってるっぽい。

(load "~/quicklisp/setup.lisp")
(ql:add-to-init-file)

これで晴れてqlコマンドが実行できる。

Wooのインストール

(ql:quickload :woo)
[package woo.ev.event-loop].......................
[package woo.ev.condition]........................
[package woo.ev.util].............................
[package woo.ev.socket]...........................
[package woo.ev.tcp]..............................
[package woo.ev]..................................
[package woo.response]............................
[package woo.queue]...............................
[package woo.specials]............................
[package woo.worker]..............................
[package woo.signal]..............................
[package woo]....
(:WOO)

となればインストールされたっぽい。

一旦SBCKから抜けて、

hello_world.lispのファイルに書く

(ql:quickload :woo)

(woo:run
  (lambda (env)
    (declare (ignore env))
    '(200 (:content-type "text/plain") ("Hello, World"))))

起動

sbcl --load hello_world.lisp

起動できる。

5000がデフォルトのポートらしいので、

http://localhost:5000 にアクセスすると、"Hello World"と表示される。