#:g1: Quicklisp素晴らしい!

Posted 2010-10-09 07:02:00 GMT

Quicklispは、Common Lispのライブラリ導入システムです。
構想が発表されたときには、clbuildや、asdf-install、中止されたmudball等々沢山あるのに、更にまた来るのか、と思いましたが、Quicklispはこれらのシステムの抱える問題を解決する狙いもあるようです。
主なところだと、
- Windowsを含めてのOSのマルチプラットフォーム対応
- ライブラリの依存関係の解消(バージョンの問題も含む)
- ライブラリの配布先のサイトがダウンしておりインストールできない問題の解消
等々があるようです。
詳しくは、ウェブサイト、デモ動画で知ることができます。
-(http://www.quicklisp.org/)
-(http://www.youtube.com/watch?v=11wYPAy9qNw&feature=PlayList&p=9A2D7E31B7D039AF&index=0&playnext=1&hd=1)

Quicklispはこれまで、開発者のZach Beane氏に直接連絡して、ダウンロードできるURLを教えてもらうという方法でテストを行なってきたようですが、今日、Beta版として公開されました。
ということで、早速導入。

難しいところは全然無く、
-(http://www.quicklisp.org/beta/)
の通りにすればOKです。
まず、

$ wget http://beta.quicklisp.org/quicklisp.lisp
等として、quicklisp.lispをダウンロード、これを処理系に読み込ませて、
(quicklisp-quickstart:install)
すれば、導入完了。
あとは、
(ql:quickload "ライブラリ名")
などで好きなライブラリを導入。自動でダウンロードしてきてセットアップしてくれます。
ライブラリを探すには、
(ql:system-apropos "ライブラリ名")
のようにして探せます。

自分は、デモ動画の通り、weblocksを導入してみましたが、ちょっと待っているだけで、weblocksを起動するところまで行き着くのは、やはり便利だと思いました。
今後、機能が充実/安定してゆけば標準的なものになって行きそう。
ライブラリ管理の決定版になると良いですね!

CLISPでの例

; SLIME 2010-10-01
CL-USER> (load "/share/sys/cl/src/quicklisp.lisp")
;; Loading file /share/sys/cl/src/quicklisp.lisp ...

==== quicklisp quickstart loaded ====

To continue, evaluate: (quicklisp-quickstart:install)

;; Loaded file /share/sys/cl/src/quicklisp.lisp T CL-USER> (quicklisp-quickstart:install) ; Fetching #<URL "http://beta.quicklisp.org/quickstart/asdf.lisp"> ; 144.48KB ================================================== 147,949 bytes in 1.26 seconds (114.92KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/quickstart/quicklisp.tar"> ; 160.00KB ================================================== 163,840 bytes in 1.48 seconds (108.43KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/quickstart/setup.lisp"> ; 2.78KB ================================================== 2,846 bytes in 0.01 seconds (235.97KB/sec)

; Fetching #<URL "http://beta.quicklisp.org/dist/quicklisp.txt"> ; 0.40KB ================================================== 408 bytes in 0.02 seconds (23.12KB/sec)

==== quicklisp installed ====

To load a system, use: (ql:quickload "system-name")

To find systems, use: (ql:system-apropos "term")

To load Quicklisp every time you start Lisp, use: (ql:add-to-init-file)

For more information, see http://www.quicklisp.org/beta/

NIL CL-USER> ; No value CL-USER> (ql:system-apropos "kmrcl") ; Fetching #<URL "http://beta.quicklisp.org/dist/quicklisp/2010-10-07/systems.txt"> ; 45.30KB ================================================== 46,386 bytes in 0.42 seconds (107.16KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/dist/quicklisp/2010-10-07/releases.txt"> ; 83.49KB ================================================== 85,490 bytes in 0.60 seconds (140.01KB/sec) #<SYSTEM kmrcl / kmrcl-20101006-git / quicklisp 2010-10-07> #<SYSTEM kmrcl-tests / kmrcl-20101006-git / quicklisp 2010-10-07> NIL CL-USER> (ql:quickload "kmrcl") To load "kmrcl": Install 1 Quicklisp release: kmrcl ; Fetching #<URL "http://beta.quicklisp.org/archive/kmrcl/2010-10-06/kmrcl-20101006-git.tgz"> ; 54.66KB ================================================== 55,973 bytes in 0.56 seconds (97.24KB/sec) ; Loading "kmrcl" [package kmrcl]................................... [package kmr-mop].. ("kmrcl") CL-USER> (kl:cmsg "Hello, Quicklisp!") ;; Hello, Quicklisp! NIL CL-USER>


comments powered by Disqus