[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000777] Re: f2c



高橋(FIP)さん

> 修正する項目としては、リストに上げてあるもので、
> いいのでしょうか。
> 簡単に出来るところから取り掛かりたいと思います。

とりあえずいいのではないでしょうか。今気が付く漏れも少しありま
すので(下記)、それもお願いします。

このままでは動かない(f2clibに追加)というのは優先的に片付けたいで
すね。実際には本家の f2c をリンクするに切り替えれば使えるのです
が。さらに、公開のためにはもろもろの名前を fix する必要があるで
しょう。rubyのラッパーはそれに依存してますから、もう fix して頂
けないと面倒です。リストの中で関係するのは

	f2c.hの名前の変更
	dclのライブラリはlibcdcl52.aとする

ですね。さらに、

	ヘッダファイルの作成

というのがあります。これも名前を決めないとなりませんが、
dennou-ruby:000509 より cdcl.h にしようとなっています(byごとけ
ん氏)。ちなみに、ヘッダファイルの作成そのものは、src 以下の *.P 
ファイルを cat で繋げるだけで ok と思います。(なお、*.P はコメ
ントも沢山あって長くなりそうなので、とってしまったほうがいいと思
います。例:

% cat  sgpmzr.P
extern int sgpmzr_(integer *n, real *rpx, real *rpy, integer *itype, integer *in
dex, real *rsize);
/*:ref: msgdmp_ 14 6 13 13 13 124 124 124 */
/*:ref: szpmop_ 14 3 4 4 6 */
/*:ref: szpmzr_ 14 3 4 6 6 */
/*:ref: szpmcl_ 14 0 */

といった感じなので、cat `find . -name "*.P" -print` | sed '/\/\*.*\*\//d' 
でいいのでは? --- やってみたらそれでも 2000 行弱になった)


ヘッダーについてはさらに、リストには挙ってませんが、以下も必要で
す。

	ヘッダーはインストール先ディレクトリーにインストール
	されるようにする。

cdcl.h だけでなく、f2c 互換ヘッダーもそうです。

名前問題でリストから漏れてるものとしては、

	実行型コマンドも Fortran 版と名前が重ならないようにして、
	共存可能にする。

があります。今までの一連のネーミングから dclhogehoge は 
cdclhogehoge とすればいいのでは? dclfrt については、frt が 
Fortran の意なので cdclfrt は今いちですね。これは現在のように
dclcc でいいでしょう。ただ、それだけだと他のコマンドやライブラリー
とプレフィックスが違うので、別名を "cdcl" にしてはどうでしょう(シ
ンボリックリンクでなくコピーでいいです。win で面倒のないように)。
なお、現在 C 版では dclcc と dclfrt が両方インストールされるよう
になってますが、後者は動く保証がないでしょう? インストールされ
ないようにしてください。

以上、ポイントは、

	(1) ./configure, make, make install でちゃんと使えるもの
	   がインストールされないとならない
	   (現状では各人が不具合に合わせて手を加えないとならない
	   ですが、その状態のままでは駄目です)

	(2) 諸々の名前は確定すべき。(基本はプレフィックスを
            dcl -> cdcl)

です。

さらに、その後でいいですが、configure では Fortranコンパイラーを
チェックしないようにすべきと思います。実際には使ってないのですか
ら、Fortranコンパイラーを持ってない場合、そこで止られたらかない
ません。また、リストにある

  make でお膳立てがすべて出来て、test が OK で、どんな
  名前のファイルがインストールされそうか把握した上で
  make install 出来るようにする。(方針を決めた後)

も「普通のパッケージ」にするためには将来的に必要でしょう。これに
ついては、本家がそうなるのを待つというスタンスでもいいと思います。

最後に、C化は手作業を出来るだけ廃して自動化すべきと思います。
dclのカラーマップのフルカラー対応等、今も少しずつ本家が発展し
ています。自動化されてれば C 版もそれにあわせて気軽に更新できま
す。

堀之内 武                    horinout@xxxxxx
京都大学宙空電波科学研究センター     611-0011 宇治市五ヶ庄