[prime-dev: 120] Re: primeのFreeBSD portsバージョンアップ中なのですが、

Back to archive index

Hiroyuki Komatsu komat****@taiya*****
2004年 1月 21日 (水) 02:25:23 JST


小松です。

なるほど、了解しました。

> しかしruby_rを使えば上記の実行は大丈夫です。

よく分かっていないのですが、ruby と ruby_r という 2つのコマンドが
あって /usr/local/bin/ruby と /usr/local/bin/ruby_r のように
共存しているのか、ruby と ruby_r の 2つのパッケージがあって
ruby コマンドの実体はどちらのパッケージが提供する実体への
エイリアスなのか、どちらでしょうか。

もし前者で、ruby_rというコマンドが別にあるのであれば、configure で
ruby へのパスを指定できた方がうれしいと思いますので、そのようにします。

--
                                                            小松弘幸
                                                -----------------------
                                                   http://taiyaki.org/


At Tue, 20 Jan 2004 20:57:23 +0900,
Gen Otsuji wrote:
> >   $stdout.sync = true
> >   while line = $stdin.gets do
> >     p line
> >   end
> > 
> > というコードは通りますでしょうか?
> 
> 通りました。
> しかし調べた結果,次を実行すると
> ----------test.rb----------
> #!/usr/local/bin/ruby
> require 'sary'
> while line = $stdin.gets do
>   p line
> end
> ---------------------------
> % ./test.rb
> ./test.rb:3:in `gets': Resource temporarily unavailable(Errno::EAGAIN)
>         from ./test.rb:3
> 
> 結果がこうなりました。
> しかしruby_rを使えば上記の実行は大丈夫です。
> どうもFreeBSD特有の問題であるようでした。FreeBSD4.xではスレッドライブラ
> リがlibc_rというものなのですが,それが標準ライブラリのlibcと排他的だったた
> めlibc_rをリンクしたsary等を使うにはruby_rを使わなければならなかったの
> です。5.xではスレッドライブラリがlibc_r,libthr,libkseの三つあるように
> なっていて排他的でもなくなっています。しかし古いlibc_rがportsでは標準とな
> っています。libc_r自体も排他的ではなくなったのですが、まだバグがあってlibc,
> libc_rを混ぜて使うとstdioが変になることがあるということのようです。
> getsのエラーはこのためのようです。ということをFreeBSDのえらい人に知らされ
> ていたのですが、忘れていました。というわけでruby_rをまだ使い続ける方が
> 良さそうです。
> お騒がせ致しました。




Prime-dev メーリングリストの案内
Back to archive index