ruby-trunk-changes r52899 - r52910

今日は io/console に IO#getpass という新メソッドの追加、rb_autoload() の deprecate などがありました。

hsbt: r52899 2015-12-06 08:40:24 +0900

拡張ライブラリ jsonJSON::VERSION と gemspec ファイルのバージョンを 1.8.3 に更新しています。

svn: r52900 2015-12-06 08:41:02 +0900

version.h の日付更新。

nobu: r52901 2015-12-06 12:12:28 +0900

r52896 で追加した Env に非ASCII文字を格納するテストでリテラルに直接 UTF-8 文字を書いていたのを \u{} 記法を使うようにしています。こういう配列っぽい記法あるんですね。

nobu: r52902 2015-12-06 15:25:10 +0900

拡張ライブラリ io/console に IO#getpass というメソッドを追加しています。要するに echo back を無効にしてパスワード入力を求めるやつですね。

nobu: r52903 2015-12-06 15:30:11 +0900

r52902 の修正。 write_io() という prompt 出力先の IO を決定する関数を削除して、また標準入力を使う場合は出力先を標準エラー出力にしています。

usa: r52904 2015-12-06 16:22:17 +0900

FileUtils のテストで Windows の CI で時々失敗する部分の調査のために Dir.rmdir の例外捕捉とデバッグメッセージ出力が追加されています。

usa: r52905 2015-12-06 18:28:02 +0900

WRBrick で CGI を動かすテストで URL のパスにバイナリを URL エンコーディングしたものを使うテストを Windows 版でスキップするようにしています。CGI なので環境変数経由でパスも渡されますが、Windows では ENV のエンコーディングの扱いは locale に依存していて、これまで通っていたのはたまたま(環境依存?)ということみたいです。

kazu: r52906 2015-12-06 18:38:36 +0900

r52856 の ChangeLog エントリの typo 修正。

kazu: r52907 2015-12-06 19:04:19 +0900

r52839 の explicit_bzero() の代替実装のため configure で weak attribute の有無をチェックする時の条件文の間違いを修正しています。

nobu: r52908 2015-12-06 21:13:25 +0900

r52896 の再修正。 ENV の値を取り出す時に env_name() で正規化(エンコーディングや NUL 文字チェック)された環境変数名を利用するようにしています。

normal: r52909 2015-12-06 21:28:09 +0900

rb_autoload() の実体を rb_autoload_str() と改名して、file を VALUE 型でオブジェクトとして受け取るようにしています。これにより拡張ライブラリから rb_autoload() を直接利用するのは deprecated とされています。 file に fstring を使うことによる最適化と、rb_autoload() を外部から使わせないようにするのが主眼でしょうか。 [ruby-core:71369] [Feature #11664]

nobu: r52910 2015-12-06 21:41:47 +0900

r52902 で追加した io/console の IO#getpass のテストで子 Thread の終了を helper のブロック内で待つようにしています。