Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2010-10-09

Quicklisp素晴しい!

| 16:02 | Quicklisp素晴しい! - わだばLisperになる を含むブックマーク はてなブックマーク - Quicklisp素晴しい! - わだばLisperになる

Quicklispは、Common Lispのライブラリ導入システムです。

構想が発表されたときには、clbuildや、asdf-install、中止されたmudball等々沢山あるのに、更にまた来るのか、と思いましたが、Quicklispはこれらのシステムの抱える問題を解決する狙いもあるようです。

主なところだと、

  • Windowsを含めてのOSのマルチプラットフォーム対応
  • ライブラリの依存関係の解消(バージョンの問題も含む)
  • ライブラリの配布先のサイトがダウンしておりインストールできない問題の解消

等々があるようです。

詳しくは、ウェブサイト、デモ動画で知ることができます。

Quicklispはこれまで、開発者のZach Beane氏に直接連絡して、ダウンロードできるURLを教えてもらうという方法でテストを行なってきたようですが、今日、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> 

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20101009