[Maple-user: 311] Re: ユーザアプリケーションの作成場所

Back to archive index

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*****>




Maple-user メーリングリストの案内
Back to archive index