今日は NetBSD と AIX のビルドエラーと、resolv.rb の Windows 上の JRuby での動作のための修正の他はテストのリファクタリングなどでした。
kazu:r39970 2013-03-28 02:13:57 +0900
r39968 および r39969 で追加/利用した asert_num2i_success と asert_num2i_error の typo (asert -> assert) を修正。
svn:r39971 2013-03-28 02:14:01 +0900
version.h の日付更新。
akr:r39972 2013-03-28 06:56:20 +0900
include/ruby/defines.h で #include する標準ヘッダを追加しています。 NetBSD でのコンパイルエラーを修正しているとのこと。autoconf の AC_INCLUDES_DEFAULT と同等のヘッダ群を追加しているそうです。
akr:r39973 2013-03-28 07:13:06 +0900
r39972 で include/ruby/defines.h に #include を追加したため不要になった #include を削除しています。
nobu:r39974 2013-03-28 13:50:12 +0900
拡張ライブラリ tk の extconf.rb で rb_thread_alive_p() と rb_thread_check_trap_pending() の関数チェックを追加しています。 またこのチェックを使って存在しなかったら代替を定義して、#ifdef RUBY_VM で YARV の判定? をしていた条件コンパイル部分を一掃しています。 これは古いバージョンの ruby に対する互換性を保つための実装方法をリファクタリングしたということでしょうか。
nobu:r39975 2013-03-28 13:50:15 +0900
ext/tk/tcltklib.c で未使用変数をコメントアウトして警告除去しています。
nobu:r39976 2013-03-28 13:52:25 +0900
ext/tk/ の svn property 変更です。はて、これはなんでしょう。
akr:r39981 2013-03-28 18:23:51 +0900
r39968 で追加して r39970 で改名(typo 修正)された test/-ext-/num2int/test_num2int.rb の assert_num2i_sucess および assert_num2i_error の中から2回呼ばれている assert_raise の呼び出し部分を ???_internal として切り出すリファクタリング。
nobu:r39986 2013-03-28 22:11:00 +0900
r39974 で拡張ライブラリ tk で関数が存在しなかった時に定義するようにした rb_thread_alive_p() の代替実装を static 関数から関数マクロに変更しています。また rb_funcall() のかわりに rb_funcall2() を利用するように変更しています。
nobu:r39987 2013-03-28 23:10:21 +0900
include/ruby/io.h で poll(2) に使う struct pollfd 構造体メンバの events, revents が AIX の poll.h では reqevents, reqrevents という名前になっているらしく、これをすりかえるためのマクロ定義してから #include poll.h するようにしています。 AIX でのビルドエラー修正です。 [ruby-core:53765] [Bug #8174]
akr:r39988 2013-03-28 23:11:35 +0900
標準添付ライブラリ resolv.rb が Windows を判定するために RUBY_PLATFORM をチェックしているのが JRuby で動かすときにうまくないということで require "win32/resolv" してみて LoadError が発生したら Windows 版じゃないという判定方法に変更しています。 [ruby-core:53389] [ruby-core:53388] [Feature #8090]
nobu:r39989 2013-03-29 00:55:05 +0900
昨日 r39958 でも修正した mkmf.rb で関数をチェックするために生成する C のコードで main 関数のなかでチェックしたい関数を参照するようにしましたが、それだけではなくその関数ポインタを fprintf() で出力するようなコードを生成しています。結果を使うことでコンパイラの最適化でシンボルが消されてチェックにならないのを防いでいるとのこと。 [ruby-core:53745] [Bug #8169]
svn:r39990 2013-03-29 00:55:10 +0900
version.h の日付更新。