[#23168] File.fnmatch のリファクタリング — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

13 messages 2004/03/08

[#23192] File.fnmatch と Dir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

19 messages 2004/03/13
[#23194] Re: File.fnmatch と Dir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/13

まつもと ゆきひろです

[#23195] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23196] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23260] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23261] Re: File.fnmatch とDir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/30

まつもと ゆきひろです

[#23265] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23238] Re: [ruby-cvs] ruby, ruby/lib, ruby/lib/rss, ruby/sample/openssl: * lib/logger.rb: trim tail space of each line. no user visible change. — Kouhei Sutou <kou@...>

須藤です.

10 messages 2004/03/27

[ruby-dev:23097] Re: [Oniguruma] Version 2.2.0

From: Kazuo Saito <ksaito@...>
Date: 2004-03-02 01:17:57 UTC
List: ruby-dev #23097
斉藤です。

>  えーと、どうしてオプショナルにするんでしょうか。今進めている
> のは、開発版の正規表現エンジンを鬼車に移行しようという話ですよね。
  :
> - 鬼車ディレクトリの場所を決める (直下にそのまま、あるいは
>   oniguruma/ などを作って入れる)
>
> - 小迫さんに ruby 側に取り込むべきファイルのリストを作って
>   もらう (それを使えば import の手順を自動(スクリプト)化できる)
>
> - configure の統合
>
> - その他、 ruby 側と単体の鬼車側でコードが乖離しないための
>   打合せ (これまでも #ifdef で場合分けしてきたので大丈夫と
>   思いますが)

ああ、そうか。一番目と三番目を混ぜて(弱気に:-)誤解してました。
「configure の統合」はビルドプラットフォームとか、m17n の
エンコーディングとか、そういうビルド時のオプションをどうやって
鬼車のビルドに渡すか、という意味、でいいですか?


> 1.9を鬼車化するのは決定事項ですので(3)でお願いします。

了解しました。ruby/ 直下に足すという事ですね。

それでは直下に置くとして、鬼車と Ruby のコードをうまく
共存させる案を挙げてみます。もちろん、Ruby側/鬼車側
双方から具体意見を頂くためのたたき台で、強制する気は
全くありません。ご意見いただけますか。

今後コードがどう変更されるか、どういうファイルを ruby 側へ
追加するかもまだ正確にわかりませんけど、手段は前述のとおり

A) patch があたる
B) 別ファイルで上書きされる
C) 追加される

の 3 択、だと思います。で、こんな風に考えてみました。
方針は

- 双方のソースコードには共存の都合だけの変更を
   できるだけかけない。
- できるだけ同じファイルは同じ名前で同じ内容にする。

です。


A) は patch を当てるしかない。当てる。
    鬼車側で追加変更があれば 1.9 用 patch にするか、import
    する人が代わりに変更分をみて ruby へ変更を入れる。
    (いまいちだが)

B) は、どうしても上書きしなければならない、というファイルは
    今無い(ような)ので、個別に以下のように変更して C) に含める。

    B1) regex.c (oniguruma/regex.c を参照)
        regex.c は、wrapper にせずできれば各ファイルを
        Makefile からビルドして欲しいが、今回はまずそのまま足して、
        ruby, 鬼車の双方を以下のように変更していく。

             ruby: regex.c の代わりに、regex.c が include している
                   鬼車の各ソースをビルド対象に追加。
                   (#ifndef ONIG_RUBY_M17N の部分も、とりあえず含む)

        oniguruma: patch 実行時に regex.c をコピーしないように変更。

        ただし、各ソースを個別ビルドすると regenc.h で config.h を
        読ませるために -DONIG_SOURCE_IS_WRAPPED が必要。
        これをどこから渡したもんだか、名前をどう変更したもんだか。

    B2) regex.h (oniguruma/oniggnu.h を参照)
        ファイル名が違うのが変更を追跡しにくいので、まず内容を

          #include "oniggnu.h"

        だけに変更して、oniggnu.h はそのままコピーする。


C) 鬼車/rubyの必要に応じて、現状のまま直下に追加する。

これだと A) がややこしくなるかもしれませんが 1 ファイルで
patch もそれほど大きくありませんし、他は基本的に同ファイル名、
同内容である事が維持されます。まあ、現状しか考えてませんけど。
#ああ、テストはどうしようか。変更して入れるしかないですかね。

いかがなもんでしょう。

Kazuo Saito <ksaito@uranus.dti.ne.jp>
ruby-dev summary は今夜やります(とここで言い訳しておく)。


In This Thread

Prev Next