Namazu-devel-ja(旧)


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

Re: parallel mknmz (Re: mknmz next generation)



On Tue, 28 Mar 2000 19:11:31 +0900
Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx> wrote:

> 移植性は Perl の方がずっといいと思います。
>「あれこれパイプで処理を行う」部分、以外は Mac でも動きますよね? 

どっちが移植性が高いかという問題は、ケースバイケースかも
知れませんが、少なくともmknmzは文字コードの変換や、分かち
書きなどでパイプを使っていると思うので、ちょっと憂鬱です。
外部のプロセスとの通信手段やプロセス関係の制御回りはプラッ
トホーム別にくせが出やすい分野のひとつですので、はまる時に
ははまるような気がしますけど。
基本的に文字列の処理以外の部分では色々と環境非互換性がでま
す。GUI関係とか、ファイル入出力関係とか、プロセス制御関係と
かが代表的な例です。Winはまだましですが、Macなんて、環境変
数だのコマンドラインオプションだのも基本的にない世界ですの
で、Perlスクリプトの移植性も場合によってはあまりあてにならい
こともあります。

> C言語のプログラムでは、環境ごとの非互換を吸収するために 
> autoconf/automake でいろいろとがんばらないといけません。

autoconf/automakeが使えるのは基本的にUNIX系のOSで、Macや
Winなどでこれらを期待するのはあまり現実的とは考えていなの
です。
MacならCodeWarrior for Macで、WinならVisual C++ですぐに
コンパイルして利用できるようなもののほうがありがたいです。

> 僕は mknmz を C言語で書き直す利点として次の2つを考えています。
> 
>   * 高速化
>   * ライブラリ化

ライブラリ化はどうなるか分かりませんが、検索したい文書の
数が増えてくると、インデックスの更新にかかる時間が気にな
るでしょうから高速化は重要ですね。

> Perl にも HTML::Parser や XML::Parser はあります。これらを使
> わない理由は次の通りです。
> 
>   * 現在のいい加減な処理でも結構うまくいっているから
>   * 書き直すのが面倒だから
>   * 遅くなるから

遅くなっていうのが、一番問題ですね(笑)。

あと、Namazuへの適用を考えると、決してフルパースを行う
必要はなくて、インデックス作成時のタグの読み飛ばしや
コメントのスキップなど、極めてかぎられた処理だけを行え
ればいいので、HTML::Parserなどはオーバースペックという
気もします。

> >先にCatfishなんとかしないと〜(笑)
> 
> 期待しています。:-)

http://www.ff.iij4u.or.jp/~ahata/indexj.html
に開発版を公開してみました。ソフトウェア的には、概ね
こんな感じかなというのがわかるくらいにはできています
ので、ちょっと見ていただけると助かります。

# XML文書のコーディングが一番問題気になるところです。

---------------------------
Bansoukou
Email: bansoukou@xxxxxxxxxxxx