とみた@つくば です。

On Wed, 18 Jun 2008 15:15:01 +0900
Nobuyoshi Nakada <nobu / ruby-lang.org> wrote:

> MySQL/Ruby 2.8pre2をみてみたのですが、やや問題があるようです。
> 
> = 別ディレクトリでコンパイルできない。
>   *.cを自動で探すのはソースディレクトリです。この場合はソース全
>   体をコピーしなくとも、ヘッダに分けるだけで充分だと思います。
> 
> * RUBYY_VERSION_CODEをみている
>   rb_str_set_len()を使うのはRSTRING_LEN()がないときでいいと思い
>   ます。
> 
>   RUBY_VERSION_CODE < 160 のときにTypeError()やRaise()を使ってい
>   ますが、この関数は1.3ではすでに廃止されています。なので、1.4で
>   は動かないはずです。また、他のところでは無条件でrb_raiseを使っ
>   ているので、1.2以前でもダメなはずです。つまり、もう1.4以前では
>   使われていない、とみなしてもいいのでは。

以前のバージョンの Ruby で動くかどうかは全然確認してなかったのですが、
あえて意図的に動かなくするような変更はしなくてもいいかなぁ… くらいの感
じでそのままにしてました。

どうせ動作してないのなら、MySQL/Ruby 2.8 については、1.8.x 以上でしか動
かないという前提にして、ソースを整理してもいいですね。

パッチの中で、RSTRING(str)->ptr, RSTRING(str)->len を
RSTRING_PTR(str), RSTRING_LEN(str) に変えているのは、Ruby 1.9 だとマズ
いってことですかね。なんかマズそうですね…。

ほぼこのままパッチを取り込ませていただくと思います。ありがとうございます。

-- 
とみたまさひろ <tommy / tmtm.org>
3469 42CC 4D32 F53C AD98  65A5 8C37 FF09 69C1 6040