ruby-trunk-changes r48255 - r48271

今日は PRIsVALUE に余分な文字を追加して通常の %i と区別するようにする変更のほか、テストやドキュメントの変更がありました。

normal: r48255 2014-11-04 08:58:32 +0900

Encoding の TypedData の memsize 関数 enc_memsize() は常に 0 を返すだけなので削除して rb_data_type_t::memsize メンバは 0 にしておくようにしています。コードサイズの削減のためとのこと。 [ruby-core:65304]

svn: r48256 2014-11-04 08:58:44 +0900

version.h の日付更新。

hsbt: r48257 2014-11-04 12:09:28 +0900

標準添付ライブラリ open3 の rdoc コメントで code タグを適宜利用するようにしています。 https://github.com/ruby/ruby/pull/747
関係ないですけどこの pull request に結果のブラウザ表示のスクリーンショットが貼ってあってわかりやすくていいですね。

hsbt: r48258 2014-11-04 12:21:50 +0900

標準添付ライブラリ csvCSV.new の rdoc 用コメントの :skip_blanks オプションの説明に、このオプションでは空の行をスキップするだけで空のカラムのみからなる行はスキップされないことを追記しています。 https://github.com/ruby/ruby/pull/744

svn: r48259 2014-11-04 12:21:53 +0900

r48258 の修正の行末の空白除去。

hsbt: r48260 2014-11-04 12:33:50 +0900

String() メソッドの rdoc 用コメントで to_s を呼ぶと書かれていましたが、実際はまず to_str で、呼べない時に to_s を呼ぶのでそのように修正しています。 https://github.com/ruby/ruby/pull/743

nobu: r48261 2014-11-04 12:50:43 +0900

r48260 の ChangeLog エントリのメソッド記法と typo の修正をしています。

nobu: r48262 2014-11-04 12:51:33 +0900

rb_vfprintf() や rb_bug() のフォーマット文字列に使える VALUE 型埋め込みの指示子 PRIsVALUE が %i を利用していることで通常の printf(3) などの %i と競合しているのを検出できるようにするため、PRIsVALUE で定義する指示子に "\v" を付加して、vsprintf.c でそこをスキップするようにしているみたいです。 バイナリ互換性が壊れるので 2.1 以前の PRIsVALUE を利用していると文字列化して埋め込まれなくなってしまうようですが……。まあ拡張ライブラリのディレクトリ名に使われるABIバージョンというのはバージョン番号の minor が上がるたびに挙げる予定なのでソース互換性はあるのでまあいいかって感じですかね。

nobu: r48263 2014-11-04 14:03:50 +0900

snprintf(3) に PRIsVALUE を渡した時の整形結果についてのテストを削除しています。 r48262 の変更の影響だと思います。

nobu: r48264 2014-11-04 14:25:41 +0900

拡張ライブラリ win32 の Win32API.rb を利用した時に表示する警告メッセージに、かわりに dl を使うようにと書かれていたので、dl の削除に伴い fiddle を使うようにとメッセージを書き換えています。

nobu: r48265 2014-11-04 16:23:59 +0900

rubygems のテストで Gem::RemoteFetcher のコネクションプールの socket を全て閉じるように Refinements を使って close_all を追加してテストの file descriptor leak の検出を抑えるようにしています。

nobu: r48266 2014-11-04 16:25:41 +0900

vm.c およびテスト用の拡張ライブラリ ext/-test-/win32/console/attribute.c で VC6 での警告除去のため明示的なキャストを追加しています。

usa: r48267 2014-11-04 21:04:12 +0900

r48201 で .gitignore では対応されてましたが enc/unicode/data のバージョン毎の Unicode データのディレクトリを無視するように svn property を設定しています。

usa: r48268 2014-11-04 21:05:26 +0900

rubygems のテストで Windows ではフルパスにドライブレターが付加されることに対応するようにテストを修正しています。

usa: r48269 2014-11-04 21:20:59 +0900

標準添付ライブラリ securerandom で Windows 版で CryptAcquireContext() と CryptGenRandom() を拡張ライブラリ Win32API を使って叩いていたのを fiddle を直接使うように変更しています。

usa: r48270 2014-11-04 21:26:19 +0900

Win32API.rb が動いてなかったのを修正したっぽいです。 require "fiddle" は require "fiddle/import" に修正、Fiddle::Importer::CALL_TYPE_TO_ABI が private constant だったので直接参照できなかったので const_get を利用するようにする、Win32API の import 引数が文字列で、Enumerable ではないので String#chars を挟むようにするなど。どうもこの String が Enumerable じゃない修正をみるに 1.9 以降で動いてなかったんじゃないかという気がしますね……。
[追記]ではなくて先日の r48217 での dl 削除の時に入れられたコードだそうです。Windows では試してなかったんでしょうな。[/追記]

akr: r48271 2014-11-04 23:20:56 +0900

Time の rdoc 用コメントで Time.now のドキュメントが2箇所に分離していた? のを1箇所にまとめています。