ruby-trunk-changes r44492 - r44498

今日は Rinda::RingFinger でソケットオプションを指定する方法の修正や昨日の socket のシステムエラー時の処理の再修正などがありました。

drbrain: r44492 2014-01-04 10:16:28 +0900

標準添付ライブラリ rinda の Rinda::RingFinger で利用するソケットにの setsockopt に IP_MULTICAST_LOOP を指定する時に Socket::Option.ipv4_multicast_loop(1) を利用して Socket::Option オブジェクトを渡すように変更しています。このほうが移植性が高まるということです。 こんなオブジェクトがあるんですね、知りませんでした。 [ruby-core:59497] [Bug #9351]

svn: r44493 2014-01-04 10:16:33 +0900

version.h の日付更新。

drbrain: r44494 2014-01-04 10:18:20 +0900

r44492 と同様に Rinda::RingFinger でソケットの setsockopt に渡す :IP_MULTICAST_TTL の指定も Socket::Option.ipv4_multicast_ttl メソッドを使って指定するようにしています。

ktsj: r44495 2014-01-04 17:22:46 +0900

RubyVM::OPTS が返す VM のオプションのうち "operands unification" に余分な文字が入っていたのを削っています。

nobu: r44496 2014-01-04 19:13:36 +0900

r44490 の再修正。 rb_sys_fail_str() を呼ぶために errno を退避しておいて戻してから呼ぶようにしていましたが、そもそも errno を引数として渡せる rb_syserr_fail_str() が r34787 あたりで追加されているのでそれを利用するようにしています。

nobu: r44497 2014-01-04 19:15:31 +0900

r44496 のさらに追加で、拡張ライブラリ socket のシステムエラー時のメッセージを組み立てる時に文字列を PRIsVALUE を使ってオブジェクトのまま埋め込むように修正しています。表示できない文字などを含む文字列の時のことを考慮するためみたいです。

nobu: r44498 2014-01-04 21:10:20 +0900

拡張ライブラリ tk の extconf.rb でコンパイラオプションの -Wl,-R を利用していたところを -Wl,-rpath,... に変更しています。 linker に渡すオプションなのですが MacPorts でインストールした tk でビルドしようとした時に問題があったみたいです。 -R ってなんだっけな。