小松です。 In the message of [ruby-list:17446] Re: Kconv について on 1999/10/6 12:58:30 Katsuyuki Komatsu <komatsu / sarion.co.jp> wrote: ||再インストールして、 情報を整理してメールしたいと思ってるところです。 | |なんなら、scriptで全部ログを取って私宛にメールしていただいても |かまいませんです。 この件に関して、関口さんからログをいただいて、ログを元にいくつか 確認していただいたところ、OSのfnmatch()の仕様が期待した通りで なかったためということが分かりました。 テストのため、 ruby -e 'for d in Dir["/tools/ruby/ruby142/ruby-1.4.2/ext/*"]; print d, " ", File.directory?(d), " ", File.file?(d + "/MANIFEST"), "\n"; end' を実行してもらったところ、何も出力されなかったそうです。 このため、missing/fnmatch.cの方を使うようにしていただいた所、拡張 ライブラリも作られるようになりました。 ということで、 ruby 1.4.2 (1999-09-18) [sparc-uxpds] の方は、 mv MANIFEST MANIFEST.dist # /tools/ruby/ruby142/ruby-1.4.2/ext/../MANIFESTにマッチして # しまうのを避けるため、名前を変えておく。 ./configure # ここでMakefileの # MISSING = flock.o isinf.o # を # MISSING = flock.o isinf.o fnmatch.o # に変更する。 make make test make install としてください。 で、ext/../MANIFESTにマッチしないようにするため、ext/extmk.rb.inを 以下のように変更する必要があると思います。 diff -ru2pN ruby-1.4.2.dist/ext/extmk.rb.in ruby-1.4.2/ext/extmk.rb.in --- ruby-1.4.2.dist/ext/extmk.rb.in Wed Aug 18 16:51:30 1999 +++ ruby-1.4.2/ext/extmk.rb.in Fri Oct 15 16:17:31 1999 @@ -605,4 +605,5 @@ for d in Dir["#{$top_srcdir}/ext/*"] d = File.basename(d) + next if d == "." or d == ".." if $install print "installing ", d, "\n" Ruby 1.2.6でうまくいっていたのは、fnmatch()は常にruby独自のものを 使うようになっていたからのようですね。 Ruby 1.4.3では、ぜひとも[ruby-dev:7891]に出ているようにfnmatch()を 専用化してdir.cに組み込む件を実現して欲しいと思います。 -- 小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>