FUJINAKA Tohru
tohru****@nakar*****
2006年 6月 29日 (木) 10:01:04 JST
Hawkさん、こんにちは。 藤中です。 # 丁寧な説明、ありがとうございます。 ## ちょっと遅くなりました。 > > Perlの方式(perl付属/vender_perl/site_perlとディレクトリを用意する)は検討 > > されましたでしょうか。 > > 検討されいるとすれば、同方式では何かネックがあるのでしょうか? > > 例えばMaple本体付属、共有ライブラリ、アプリケーション固有というように、 > いくつかの階層を持たせる方法は検討しましたし、 > 開発者間での議論においても提案したはずです。 (snip) > だから「Maple本体」としては、拡張機能も、拡張機能の拡張機能も > 包括的統一的に扱えるような仕組みを用意してやって、 > 拡張機能の側も、勝手気ままに独自の管理体制を敷くのではなく、 > 本体側の仕組みを利用するようにする……という風に再構成する必要があるので > しょう。 > ”Perlの方式”がそこまでを意味するなら、確かにそれは検討すべき > 目指すべき方式であり、今の段階では単に未到達である、 > ということになります。 私としては、単に前半に出てきた「階層を持たせる」だけでいいかと考えていた だけでして。 Mapleは、妙に自由度があるにも関わらず、一方では妙な制約が課せられていま す。 検索パスがそのひとつ。 配列(的)に持つことができるようになるだけで、拡張機能の配置場所の制約がな くなるので使い勝手が良くなると思っています。 手元のPerlの@INCはこのようになっていて、 /etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.6 (snip) /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.6 (snip) /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl . 例えばスクリプトで HTML::Prototype パッケージが必要になったら、@INC配列 の先頭から順番に"$INC[$i]/HTML/Prototype.pm"という感じでファイルを検索し ていく、という動作です。 -- なお、統一管理できるような仕組みというのは、うーん、どうでしょう? 必要かどうかがちょっとわからないのと、取り入れた場合にはおそらく、機能か 何かのキー名称で管理することになりそうで、もしそうなるとその衝突を回避す る労力がどこか(本体かリポジトリか)で必要になると予想され、その労力はだれ が負担するのかな、と。 Emacsでは本体や個々の拡張パッケージがそれぞれ適当な変数を宣言して、適当 にやっています。 compilation-search-path Variable: *List of directories to search for source files named in error messages. exec-path Variable: *List of directories to search programs to run in subprocesses. load-path Variable: *List of directories to search for files to load. ... Mapleに似合うのは、このぐらい緩い感じかなと。 PerlもEmacsも長らくこんな感じでやってきていますので、Mapleでもなんとかな るかと、なんとなく思います。 # もっといい方式があるかどうかはともかく。 -- 藤中 達 <tohru****@nakar*****>