ongaeshi
ongae****@gmail*****
2012年 4月 11日 (水) 10:33:18 JST
ongaeshiです。 2012年4月10日22:16 Kouhei Sutou <kou****@clear*****>: >> Win7(64bit) + Ruby1.8.7(ActiveScriptRuby,32bit) でも上手く動きませんでした。 > > あぁ、ActiveScriptRubyですか。 > RubyInstallerのRuby 1.8だとWindows 7 (64bit) + Ruby 1.8.7で > も動いたんですけどねぇ。。。 > > ActiveScriptRubyでもMSVCRT.dllなのでMinGWでクロスコンパイル > したやつで大丈夫なはずなんですけど。。。 > >> OSとRubyのバージョンの組み合わせで動いたり動かなかったりするのでしょうか? > > うーん、ビルドの仕方的にはどれでも動くはずなんですけど。。。 > VC++ 6くらいでビルドされたRubyまでは動きますけど、それより後 > のVC++でビルドされたRubyだと動かないと思います。新しいVC++で > ビルドされたRubyはMSVCRT.dll(たぶん > MicroSoftVisualC++RunTimeの略)じゃなくてMSVCR80.dllとかを使っ > ています。一方、MinGWでビルドしたやつはMSVCRT.dllを使うので、 > 競合してしまうんです。MinGWでも-lmsvcr80とかすれば > MSVCR80.dllを使ったバイナリを作れそうな気がするんですけど、 > うまくいったことはないです。。。 > Windowsはややこしいですね..。 ※ でも諸事情で使わない訳にはいけないし、なんだかんだで好きなOSだったり・・。 私が使っていてActiveScriptRuby + rroongaが動いた記憶があるのは、 Windows+Cygwin(MinGW) でコンパイルした rroonga1.1.0 だけでした。 ActiveScriptRubyはDevKitが動かないらしいので、今私が実験している パッチが上手くいったとしても、結局コンパイル出来ないのですが、 個人的にはActiveScriptRubyからRubyInstaller+DevKitに 環境を切り替えている最中なので、特に不便は感じていません。 > あ、ただ、今、世の中に出回っているやつでVC++でビルドされたも > のは古いバージョンのやつがほとんどです。最新のRubyを使えるの > は能楽堂が唯一じゃないかと思います。 > http://www.artonx.org/data/nougakudo/ > そうか!! 能楽堂がありましたね。 能楽堂でgroonga64bit版を含んだrroongaが作れたら一番安定するかも? その内実験するかもしれません。 >> $ gmilk test >> C:/ruby/lib/ruby/gems/1.8/gems/milkode-0.6.1/lib/milkode/findgrep/findgrep.rb:512: >> [BUG] rb_gc_mark(): unknown data type 0x2a(0x4c782c0) corrupted object >> ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32] >> >> This application has requested the Runtime to terminate it in an unusual way. >> Please contact the application's support team for more information. > > あ、これは、基本的な機能は動くけど、GCのときにSEGVするってこ > とですか?基本的な機能も動かない状態かと思っていました。 > 基本的な機能も動いていないつもりでしたが、 Milkode実行時のエラーなので分かりづらいですね・・。 分かりやすくするため、rroongaのチュートリアルを順番に実行するテストコードを作って、実行してみました。 https://gist.github.com/2352381 実行結果 https://gist.github.com/2328124 1. xp-32bit-ruby1.9.3.log : Groonga::Hash 要素へのアクセス時に'Segmentation Fault' https://gist.github.com/2352717#file_xp_32bit_ruby1.9.3.log 2. win7-64bit-ruby1.8.7.log : 同じく、Groonga::Hash 要素へのアクセス時に'Segmentation Fault' https://gist.github.com/2352717#file_win7_32bit_ruby1.8.7.log やはり、どちらも基本的な機能が動いていないようです。 それとは別に 1. 基本的な機能が動いているgemをインストールして 2. Milkodeで大量のレコードを登録(大体10000前後が目安) で、'Segmentation fault'するようです。 https://gist.github.com/2352717#file_add_many_record_from_milkode.log こちらについてはMilkodeとrroonga間で問題を切り分けられていないので、ひとまず報告まで。 >> 手元で実験しているのですが、WinXP(32bit)+Ruby1.9.3(+DevKit)の組み合わせでは上手く動きました。 >> もう少し、いくつかの環境で試してみます。 >> https://github.com/ongaeshi/rroonga/commit/0b6f07caf2435dc859b3b1c6e6a8d1d42d3446bb > > おぉ!うまく動いたらpushしちゃってください! > ありがとうございます!! いくつかの環境で動くようだったらpushしますねー。 -- /****************************************** ongaeshi MAIL: ongae****@gmail***** WEB: http://ongaeshi.me Twitter: http://twitter.com/ongaeshi ******************************************/