トップ «前の日記(2014/02/15 (土) ) 最新 次の日記(2014/02/17 (月) )» 編集 RSS feed

HsbtDiary


2014/02/16 (日) [長年日記]

[ruby] "Remove deprecated definitions" で色々消えたので対処していた

Remove deprecated definitions が Matz accepted になって、早速 trunk では消えてしまったのだけど、この影響で mysql-0.3.11 や eventmachine-1.0.3 がビルド出来なくなったので色々直していた。mysql-0.3.11 は最新版ではないのだけど、諸般の事情で今すぐ 0.3.15 を使う事ができないので fork してでも直すしかないのだ。

主に rb_thread_blocking_region を使っているような処理なので、@akr さんが書いてある通りに rb_thread_call_without_gvl を使うようにすることが動くようになった。なお、mysql-0.3.15 では最初から rb_thread_call_without_gvl が使えるなら、それを使うようになっているので気にする必要はない。

https://gist.github.com/hsbt/9026952

2.0.0 以上でしか動かすことを考えて無いので、rb_thread_blocking_region のエミュレートとかは全部消してしまった。欲しい人は 0.3.15 のように処理すれば何とかなるんじゃないでしょうか。eventmachine は後で見る。

[ruby] "Hide a Bignum definition" で影響を受けた gem の皆さん

Hide a Bignum definition で RBIGNUM_* ファミリーが拡張ライブラリからは見えなくなってしまったので、いくつか有名どころがビルドできなくなっている。昨日、よく使うライブラリを gem pristine して調べた限りだと

  • sqlite3(RBIGNUM_LEN, RBIGNUM)
  • msgpack(RBIGNUM_POSITIVE_P, RBIGNUM)

の二つが割と影響範囲大きそうだった。rb_integer_pack/unpack を使うということみたいだけど、「なるほどわからん」というのが今ここなので勉強しつつ gem をどう直せば良いか頑張る。