Shiro Kawai
shiro****@lava*****
2003年 10月 21日 (火) 17:54:41 JST
From: Kimura Fuyuki <fuyuk****@nigre*****> Subject: Re: [Gauche-devel-jp] QDBM Date: Tue, 21 Oct 2003 13:48:38 +0900 > ひとつお願いがあります。こういった細かいモジュールを置くために、ここ > (http://sourceforge.jp/projects/gauche/)のリポジトリなどを使わせてもら > うわけにはいかないでしょうか? QDBMに関してはとりあえずOKです。fuyukiさんをcommiterに 加えておきましたので、CVSにGauche-qdbmモジュールとして置いて下さい。 ファイルリリースの方もGauche-qdbmパッケージとしてお願いします。 将来的には専用サイトを立ち上げた方がよいのかもしれませんが、 とりあえずlazyにやってみましょう。 # gauche.orgはとられてるみたい。gauche.netは空いてるような。 > ついでに今ちょっと困っている問題をひとつ。 > > dbm.*をまとめてuseしたくて0.7.2で追加されたlibrary-*をごにょごにょして > いたのですが、こんなことをするしかないのでしょうか? > > (library-for-each 'dbm.* > (lambda (m p) > (eval `(use ,m) (interaction-environment)))) 最終的には、javaみたいに (use dbm.*)のようなことが できる方向を考えています。library-for-each等はそれを実現する インフラとして作成しました。ただ、単純にuseを複数モジュールの ロードに流用すべきかどうかについてまだ充分に考えていないので 保留にしてあります。特に、あるモジュールの特定のバージョンを 指定してロードしたいだとか、シンボルを選択的にインポートしたり リネームしたりだとか、useの機能にも色々バリエーションが考えら れるため、そういう拡張との親和性を考えたいので。 とりあえずやるなら、evalを使うのではなく、マクロ展開時に評価 させるのが良いと思います。 (define-macro (multi-use pattern) `(begin ,@(library-map pattern (lambda (m p) `(use ,m))))) (multi-use dbm.*) --shiro