ruby-trunk-changes r57515 - r57533

今日は OpenStruct#each_pair の戻り値の修正などがありました。

marcandre: r57515 2017-02-04 03:25:28 +0900

標準添付ライブラリ ostruct の OpenStruct#each_pair で self を返すように修正しています。 [ruby-core:79309] [Bug #13169]

svn: r57516 2017-02-04 03:25:29 +0900

version.h の日付更新。

normal: r57517 2017-02-04 08:34:48 +0900

doc/syntax/literals.rdoc の文字列リテラルエスケープシーケンスについての説明の英文を修正しています。 [ruby-core:79418] [Bug #13190]

normal: r57518 2017-02-04 08:40:05 +0900

自動生成されるソースファイル ext/rbconfig/sizeof/limits.c を svn:ignore に追加して subversion の無視させるようにしています。

normal: r57519 2017-02-04 08:40:59 +0900

r57518 と同様 .gitignore にも ext/rbconfig/sizeof/limits.c を追加しています。

nobu: r57520 2017-02-04 08:50:41 +0900

ruby.h の inline 関数 rb_scan_args_set() から引数の数を渡す varc 引数を削除しています。使ってなかったみたいですね。unused parameter で警告になってそれがエラー扱いになって拡張ライブラリがビルドできないということがあったようです。 [ruby-core:79399] [Feature #13184]

normal: r57521 2017-02-04 08:55:06 +0900

rb_id2str() で struct RBasic::klass をセットするのを削っています。 Init_String() の最後のほうで rb_vm_fstring_table() に登録されている fstring に rb_cString を klass としてセットする処理は行なわれているので、それを前のほうに持ってきて rb_id2str() が利用されるタイミングより前にセットしておくようにすることで rb_id2str() 内での分岐を削って最適化しています。

normal: r57522 2017-02-04 08:58:18 +0900

r46663 で Init 関数とコメントの間に別の関数を入れてしまったため rdoc で Struct のクラス全体についてのドキュメントが生成されなくなっていたのを修正しています。明示的に Document-class: タグをつけています。 [ruby-core:79416] [Bug #13189]

nobu: r57523 2017-02-04 10:04:14 +0900

rubygems のテストで default gems が干渉していたみたいなので除外するようにテストに手を入れています。 [ruby-core:79408] [Feature #13186]

nobu: r57524 2017-02-04 11:17:35 +0900

r57514 でテスト用の test/unit に導入した並列テスト用の @jobserver インスタンス変数に初期化を追加しています。警告除去のため。

nobu: r57525 2017-02-04 12:28:17 +0900

r57514 や r57524 の続きで並列テストのための job_token (これもなにやっているのかよく理解してない)を共有するようにしているっぽいですね。

nobu: r57526 2017-02-04 14:23:48 +0900

r57514 からの並列テストの修正の続き。 子プロセスを起動する時に通信用の pipe を渡す設定を Test::Unit::Parallel::Worker.launch から Test::Unit::Parallel#process_args に移動するリファクタリング。多分起動時の他のオプションと同じ扱いにして @run_options にまとめるため。

kazu: r57527 2017-02-04 15:49:00 +0900

拡張ライブラリ pty の配下の extconf.rb や ruby 製ライブラリの magic comment frozen_string_literal を true に変更しています。

kazu: r57528 2017-02-04 15:49:04 +0900

sample/pty/expect_sample.rb の magic comment frozen_string_literal も true にしています。またサンプルのなかで(仮想端末上で) ftp コマンドを起動していますが pass コマンドを追加して passive モードで動かすようにしています。

kazu: r57529 2017-02-04 15:49:06 +0900

sample/pty/script.rb の magic comment frozen_string_literal を true に変更しています。

kazu: r57530 2017-02-04 15:49:07 +0900

sample/pty/shl.rb の magic comment frozen_string_literal を true に変更しています。

nobu: r57531 2017-02-04 19:48:13 +0900

sample/pty/shl.rb というサンプルスクリプトで子プロセスの終了を検知するための方法を変更しています。メインスレッドに PTY::ChildExited という例外が発生しなくなっているので自前で例外を Thread#raise で投げるようにしています。 [ruby-dev:49974] [Bug #13191]

nobu: r57532 2017-02-04 19:48:14 +0900

sample/pty/shl.rb で stty コマンドを Kernel#system で実行して端末の状態を変更していたのを拡張ライブラリ io/console の STDIN.raw! を利用するようにしています。 [ruby-dev:49974] [Bug #13191]

nobu: r57533 2017-02-04 19:48:15 +0900

同じくサンプルスクリプト sample/pty/shl.rb で $n_shells というグローバル変数(!?)で配列のサイズを保持する実装になってたのでもうちょっと ruby っぽい実装にリファクタリングしています。 [ruby-dev:49974] [Bug #13191]