#:g1: asdf-system-connectionsの紹介

Posted 2014-05-11 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の132日目です。

asdf-system-connectionsとはなにか

 asdf-system-connectionsは、Gary Warren King氏作のASDFのsystem間を結び付けるためのユーティリティです。

パッケージ情報

パッケージ名asdf-system-connections
Quicklisp
common-lisp.netASDF-System-Connections
CLiKihttp://cliki.net/asdf-system-connections
Quickdocshttp://quickdocs.org/asdf-system-connections

インストール方法

(ql:quickload :asdf-system-connections)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 systemを結び付けるというのもいまいち想像が付かないと思いますが、ある意味ASDFでのautoloadみたいなもののようです。
とりあえず、aとbの2つのsystemがあったとして、aのパッケージでは、bのパッケージをuseする場合、下記のように関係を記述できます。

(asdf:defsystem :a&b2  
  :depends-on (:a :b)  
  :perform (asdf:load-op :after (op c)  
                         (use-package (find-package :b)  
                                      (find-package :a))))

このように記載しておけば、aとbのsystemがロードされて揃った時点で、operate load-op :afterが実行されるので、aパッケージはbをuseした状態になります。

まとめ

 今回は、asdf-system-connectionsを紹介してみました。
自分は、あまりautoload的なものを使わないので便利さがあまり実感できませんが、プロジェクトの関連パッケージをautoloadしたい場合などには便利かもしれません。

comments powered by Disqus