ruby-trunk-changes r40648 - r40676

今日は kosaki さん無双で主に configure で存在チェックしている関数の整理とリストラなどでした。

nobu:r40648 2013-05-12 03:28:32 +0900

拡張ライブラリ socket の ext/socket/raddrinfo.c でポインタ演算の結果を int 型の変数に代入する際に明示的にキャストをするようにしています。コンパイラの警告除去のため。

svn:r40649 2013-05-12 03:28:36 +0900

version.h の日付更新。

hsbt:r40651 2013-05-12 10:44:06 +0900

拡張ライブラリ socket の rdoc コメントの Socket.tcp のオプション引数の記述を削除しています。 が実際にはオプション引数は :connect_timeout というパラメータを受け取れるので消すのは間違いだというクレームが ruby-core ML に流れているので再修正があることでしょう。
[追記]と思ったら、:connect_timeout についての記述は別にあるので、これで正しいという結論になったようでした[/追記]

kazu:r40652 2013-05-12 11:33:45 +0900

test/rake/test_rake_thread_pool.rb のコメントの typo を修正しています。

kazu:r40653 2013-05-12 11:33:48 +0900

r40646 の ChangeLogtypo 修正。

naruse:r40654 2013-05-12 16:09:26 +0900

r40646 の続き。拡張ライブラリ socket で struct sockaddr_dl があるかどうかをチェックする必要があったところに条件コンパイルの条件を追加しています。

kosaki:r40655 2013-05-12 17:40:00 +0900

bignum.c の不要な(不要になった?) static 関数の宣言を削除しています。

kosaki:r40656 2013-05-12 17:40:12 +0900

r40632 で configure.in の AC_CHECK_FUNCS() の引数を 1行ごとに改行を入れるようにしましたが、それを全て別の AC_CHECK_FUNCS() の呼び出しに分解して、関数名のアルファベット順に入れ替えているそうです。ちゃんとチェックしていませんが行数は一致してるので多分変化はしていないと思います。

kosaki:r40657 2013-05-12 17:40:24 +0900

configure に getenv(3) のチェックを追加して dln_find.c で getenv() を利用するところで条件コンパイルの条件に追加しています。これまでは Windows 環境でなければ getenv() はあるものとされていたようです。[追記]コメントで教えて頂きましたがここは逆で Windows 以外では getenv() はないものとして定義していて、その定義が食い違ったりしていたとのことでした。[/追記]

kosaki:r40658 2013-05-12 17:40:35 +0900

r40631 で librt のチェックのために使っていた clock_gettime() の存在チェックをその他の関数と同じく AC_CHECK_FUNCS() の群れの中に入れるように移動しています。

kosaki:r40659 2013-05-12 17:40:47 +0900

configure.in の _setjmp と _longjmp のチェックにコメントを追加。また setjmp() がマクロとして定義されているか関数として定義されているかをチェックしている部分の移動など。

kosaki:r40660 2013-05-12 17:40:59 +0900

configure.in から close(2) のチェックを削除しています。 HAVE_CLOSE がどこにも使われていなかったため。

kosaki:r40661 2013-05-12 17:41:12 +0900

同じく configure から fseeko(3), fseeko64(3), ftello(3), ftello6(3) のチェックを削除しています。また Windows 版の win32/win32.c での ftello() fseeko() の代替実装も削除しています。

kosaki:r40662 2013-05-12 17:41:24 +0900

configure.in で off_t の型のチェックに RUBY_REPLACE_TYPE() という関数を利用するようにして NUM2OFFT() および OFFT2NUM() が生成されるようにしています。 include/ruby/ruby.h で定義していた NUM2OFFT() マクロは未定義の時だけ定義するようにしています。未定義になることあるんでしょうか? また File.truncate の実装で NUM2POS() というマクロを一時的に定義して ftruncate(3) の第2引数の型に応じた数値変換をするようにしています。
コミットログには ftruncate64 のチェックを消したと書かれていますが実際にはコメントを追加しただけで削除はされていません。

kosaki:r40663 2013-05-12 17:41:36 +0900

configure で gettimeofday(2) の存在チェックの結果利用できなかったら AC_MSG_ERROR() ですぐにエラーにするようにしています。 gettimeofday() は必須とのこと。タイマースレッドのところで使ってるからですね。

kosaki:r40664 2013-05-12 17:41:46 +0900

Process.kill の実装 rb_f_kill() で killpg(2) が利用可能かのチェックに使っていたマクロ名が間違っていたのを修正しています。 ということはこれまで常に killpg() は使われてなかったってことですね。

kosaki:r40665 2013-05-12 17:41:57 +0900

configure.in で pause(3) のチェックも HAVE_PAUSE が利用されていないため削除しています。

kosaki:r40666 2013-05-12 17:42:09 +0900

同じように configure.in で setitimer(2) のチェックを削除しています。 HAVE_SETITIMER が利用されていないため。1.8 の頃はスレッドの切り替えに setitimer を使ってたんでしたっけ、確か。

kosaki:r40667 2013-05-12 17:42:19 +0900

process.c で Windows 環境でのみ定義していた HAVE_SPAWNV というマクロの定義を win32/Makefile.sub で生成する config.h に移動しています。 ChangeLog には #define SPAWNV と書かれていますね。 r40676 で修正しました。

kosaki:r40668 2013-05-12 17:42:30 +0900

r40662 で ftruncate(2) の第2引数の型に合わせて整数変換マクロを定義したのと同様に truncate(2) の第2引数に合わせて変換マクロをその場で定義して使うようにしています。 けど ChangeLog には truncate64 の関数のチェックを削除したと書かれていますが実際にはコメントを追記しただけで消してはいません。

kosaki:r40669 2013-05-12 17:53:40 +0900

configure.in で mingw の時に固定で定義しているチェック結果から ac_cv_func_fseeko=yes を削除しています。 r40661 で fseeko() のチェックは削除したのでこれも不要なのでしょう。

kosaki:r40670 2013-05-12 18:01:57 +0900

include/ruby/intern.h から include/ruby/ruby.h と重複している関数のプロトタイプ宣言(rb_uint2big, rb_int2big, rb_uint2inum, rb_int2inum, rb_ll2inum, rb_ull2inum)を削除しています。

kosaki:r40671 2013-05-12 18:02:10 +0900

同じく include/ruby/ruby.h で宣言済みの rb_iv_set() と rb_iv_get() のプロトタイプ宣言を include/ruby/intern.h から削除しています。

kazu:r40672 2013-05-12 18:47:02 +0900

r40666 と r40671 の ChangeLogtypo 修正。

nobu:r40673 2013-05-12 21:13:01 +0900

r40662 で configure.in で RUBY_REPLACE_TYPE() で off_t の型チェックをすることで自動的に OFFT2NUM() と NUM2OFFT() が定義されるようになったのですが、NUM2OFFT() のみ再定義を避けるようにしていたので include/ruby/ruby.h で定義されていた OFFT2NUM() の定義も未定義の時のみ定義するようにして上書きを避けています。

nagachika:r40676 2013-05-12 22:51:54 +0900

r40667 の ChangeLogtypo を修正。