ruby-trunk-changes r58781 - r58794

今日は Tempfile.create や Net::IMAP#append の不具合修正などがありました。

nobu: r58781 2017-05-19 00:06:47 +0900

parse.y から parse.c を生成する時のコマンドで後処理で sed コマンドでファイル名を置換しているところを parse.y と決め打ちしていたのを $(SRC_FILE) を参照するようにそろえています。こんなことしてたのか。

svn: r58782 2017-05-19 00:06:48 +0900

version.h の日付更新。

k0kubun: r58783 2017-05-19 00:13:30 +0900

r58773 の cgi のテストのインデント修正。

normal: r58784 2017-05-19 15:00:53 +0900

rb_method_definition_t 構造体の type メンバの bit field のサイズを 8 -> 4 に減らしています。残りの bit field のメンバのサイズと合計すると 64 -> 60 の減量なのであまり意味がなさそうですが、減ったって書いてありますね。bit field のサイズ変更じゃなくて PACKED_STRUCT_UNALIGNED() をつけるのが主眼なのかも。 [ruby-core:81236] [Feature #13494]

naruse: r58785 2017-05-19 15:14:43 +0900

NEWS ファイルに端末へ出力する時にかぎりバックトレースを逆順にした変更について追記しています。 [ruby-core:56096] [Feature #8661]

nobu: r58786 2017-05-19 16:12:45 +0900

バックトレースの出力時に逆順に出力する場合にスタックフレームの番号を出力するようにしています。 [ruby-core:56096] [Feature #8661]

nobu: r58787 2017-05-19 16:34:05 +0900

r58786 の文法エラーを修正しています。

ko1: r58788 2017-05-19 16:54:04 +0900

r58784 の構造体ダイエットで type の幅を 4 に減らしたために signed か unsigned かが重要になってしまったので、明示的に unsigned をつけるようにしています。 VC などで符号つきになるんだそうです。

duerst: r58789 2017-05-19 17:05:56 +0900

rubyspec の String#unicode_normalize のテストでソースに直接 UTF-8 の文字を書かずに \uxxxx 記法を使うようにしています。

duerst: r58790 2017-05-19 17:19:02 +0900

rubyspec に String#downcase, #upcase, #capitalize などのメソッドの Unicode 対応についてのテストを追加しています。

nobu: r58791 2017-05-19 18:20:14 +0900

標準添付ライブラリ tempfile の Tempfile.create でブロックつきで呼ばれて後始末でファイルを削除する時に、既にファイルが削除されていた場合にそれを検出して削除をスキップする変更です。でもこれ close 前に unlink しようとしているから Windows で開いているファイルを消せないというのにひっかかるんじゃないでしょうか?

shugo: r58792 2017-05-19 18:25:52 +0900

標準添付ライブラリ net/imap の Net::IMAP#append でレスポンスがない時にしないようにしているってことですが、send 系のメソッドに tag を追加して、レスポンスが受信スレッドで確認できるまで ConditionVariable#wait で待つようになってるので、メソッド自体からすぐかえるってことではないんじゃないかなと思います。 [ruby-dev:50129] [Bug #13579]

svn: r58793 2017-05-19 18:25:53 +0900

r58792 の行末の空白除去。

nobu: r58794 2017-05-19 18:36:34 +0900

r58791 の Tempfile.create の変更で File.identical? で開いているファイルとファイルパスが同じものかどうかチェックするのが、File オブジェクトが閉じられていると失敗するので closed? でチェックするようにしています。