R6RS Scheme のパッケージシステム UCL Package を試す

R6RS Scheme のパッケージシステム UCL Package が登場したので試す。
UCL Package Repositoryに行き手順通りに進める。Mosh にも対応。ありがたい。

Bootstrap のインストール

一度やれば OK 。

% cd
% cd src
% wget http://ucl.willdonnelly.net/ucl-bootstrap.tar.gz
% cp -r ucl-bootstrap ~/.site-scheme.site-scheme
% source ~/.site-scheme/paths
% sudo apt-get install libarchive-dev ## required!

パッケージのインストール

pregexp パッケージのインストールしてすぐ使ってみる。

% mosh
mosh> (import (ucl install))
#<unspecified>
mosh> (ucl-install 'pregexp)
downloading http://ucl.willdonnelly.net/repo/.packages.gz
caching 'http://ucl.willdonnelly.net/repo/pregexp-2009.5.8.tar.gz'
installing package '/home/taro/.site-scheme/cache/pregexp-2009.5.8.tar.gz'
installing file 'pregexp/main.sls'
symlinking 'pregexp/main.sls' to 'pregexp.sls'

mosh> (import (pregexp))
#<unspecified>

mosh> (pregexp-split ":" "/bin:/usr/bin:/usr/bin/X11:/usr/local/bin")
("/bin" "/usr/bin" "/usr/bin/X11" "/usr/local/bin")

パッケージを作ってみる

自作の赤黒木のパッケージを作ってみよう。github に置いてある。http://github.com/higepon/Scheme-rbtrees
まずブランチ作る。

% git branch ucl
% git checkout ucl

MANIFEST ファイルを書く。

(package rbtree)
(version 0 0 1)
(code "rbtree.sls")
(author "Higepon(Taro Minowa)")
(license New BSD)
(synopsis "Red-Black tree")
(description "Red-Black tree library for R6RS")
(depends
 (srfi :48))
(schemes ikarus mosh ypsilon plt larceny)

tar.gz にしてみて

(ucl-install "rbtree-0.0.1.tar.gz")

簡単!。

雑感

主要な処理系に対応していてインストールも簡単。まだこなれていない部分もありエラーメッセージが不親切。
あとどうしても必要だと思う機能は

  • インストール時の test
  • 何らかのドキュメントを含む方法

かな。
せっかく試してみたのであとで c.l.s にフィードバックしよう。