Githubを利用して普段のLISP開発環境を晒してみたらどうか — #:g1

Posted 2010-06-27 03:05:00 GMT

Githubにソースを上げるとtarボールにしてダウンロードできるリンクができるのですが、都合の良いことに、asdf-installは、ウェブ上のtarボールのURLを指定してインストールすることが可能です。
割と重宝するのですが、これを利用して、Github上に普段のLISP開発環境を登録したら面白いかもしれないと思いました。
具体的には、普段作業で利用しているのは、大抵、CL-USERパッケージだと思いますが、これを自分のGithubのアカウント名と同じ名でパッケージ化し、Githubに上げます。
Githubを利用しているCLer同士で開発環境を晒し合うと思わぬ発見があったりして面白いことになったりしないかな、というところです。

ASDFでインストールできるように晒す手順

+ ユーザー名.asd を作成
+ package.lisp を作成
+ ユーティリティをファイルに纒める (任意)
1. asdファイルを作成 (ユーザー名.asd)
(asdf:DEFSYSTEM :G000001
  :NAME "g000001"
  :DESCRIPTION "g000001"
  :VERSION "2"
  :COMPONENTS ((:FILE "package") ;パッケージを記述するファイル
               (:FILE "g000001" :DEPENDS-ON ("package"))) ;好きな定義を書くファイル
  :DEPENDS-ON (:SERIES
               :ALEXANDRIA
               :SHIBUYA.LISP ))
2. package.lisp に パッケージ周りを設定 (.lisp)
(DEFPACKAGE :G000001
  (:USE :CL 
        :SHIBUYA.LISP
        :SERIES)
  (:IMPORT-FROM :CL-USER 
                :QUIT)
  (:IMPORT-FROM :ASDF 
                :OOS :LOAD-OP)
  (:IMPORT-FROM :ASDF-INSTALL
                :INSTALL)
  (:IMPORT-FROM :ALEXANDRIA
                :CURRY))
3. ユーティリティ等があれば、DEFSYSTEMで指定
等々とすれば準備完了
便利にASDF-INSTALLできるように、
(DEFUN GITHUB-INSTALL (USER-NAME NAME)
  (ASDF-INSTALL:INSTALL
   (FORMAT NIL
           "http://github.com/~A/~A/tarball/master"
           USER-NAME
           NAME)))
のようなものを定義してみます。
これで、
(github-install "g000001" "g000001")
のようにすると、そのユーザーの設定がパッケージとしてインストールできます。
さらに進めて、起動時にCL-USERの代りに作成したパッケージに切り換えるのも良いかもしれません(自分はそうしています)
しかし、問題は、こういう形式で晒している人をどうやってみつけるか、ですねー。

comments powered by Disqus