鄭です。 Yukihiro Matsumoto writes: > |こんにちは、鄭です。 > |Sun Solaris 2.5.1 + gcc 2.7.2.3 + ruby 1.1c3 で、Hash の sort をしたら > |エラーが出てしまい、場合によってはコアダンプしてしまいました。 > > 試してみました.が,linuxではなんの問題もなく動作するようで > す.謎ですね.で,思い出したのが昔SunOSのqsortでは比較関数の > 値の与え方によってはcore dumpしたことです.その時は純粋に > Rubyのバグでしたが,今回は比較ルーチン返す値の問題なのかも知 > れません.SolarisもSunOSのqsortの挙動を継承しているのかも知 > れません. > > んで,もともとはqsortを独自のものに置き換えることを構想して > いるのですが,それで試してみるってのはどうでしょう. > > 以下のものを検討してます. > > http://www.tokuyama.ac.jp/home/~kawamura/ > > どうでしょう.これとqsortを置き換えてみるってのは? qs6.c で試して見ました。 エラーやコアダンプ無しで一見正常そうに終了しました、、、と思ったら 結果がおかしい、、よく見たら私のスクリプトの比較の式が間違っていました。^^;;; PTABLE.sort{|a,b| (b[1].pos+b[1].width) - (a[1].pos+a[1].width) } とすべき所を、まちがって PTABLE.sort{|a,b| b[1].pos+b[1].width - a[1].pos+a[1].width } としていました。 コアダンプするのでてっきり ruby のせいかと思ってしまいました。 ごめんなさい。_o_ # それにしても、矛盾する比較結果をあたえられると、呼出元までまきこんで # core dump させてしまう、Sun の qsort って、、、、^^; -- ┌─鄭 明毅───────────────────┐ └──tei / harmony.co.jp──tei@mirage.linc.or.jp─┘