ruby-trunk-changes r62014 - r62024

今日はブロック引数への暗黙の to_proc メソッド呼び出しに Refinements が効くようにする変更や、拡張ライブラリ socket の Windows 版での例外メッセージの Encoding の不具合修正などがありました。

nobu: r62014 2018-01-23 23:17:25 +0900

parse.y の set_integer_literal() と parse_numeric() の戻り値の型を int から enum yytokentype に修正しています。

nobu: r62015 2018-01-24 00:31:21 +0900

拡張ライブラリ socket で gai_strerror(3) というライブラリ関数が使えない時に代替のメッセージテーブルを定義している ai_errlist という変数の定義を #ifndef HAVE_GAI_STRERROR で括って、参照されてない時に定義しないようにしています。

svn: r62016 2018-01-24 00:31:22 +0900

version.h の日付更新。

nobu: r62017 2018-01-24 00:31:22 +0900

拡張ライブラリ socket のエラー時のメッセージの組み立てで gai_strerror() の戻り値を埋め込むところで、Windows 版では gai_strerrorW() を利用して取得してから、Encoding の変換をして連結するようにしています。例外メッセージのエンコーディングが不正になってたみたいです。 [ruby-core:84972] [Bug #14384]

kazu: r62018 2018-01-24 09:03:51 +0900

Kernel#warn の rdoc 用コメントにキーワード引数 uplevel の説明を追記しています。 [ruby-core:84574] [Bug #14264]

yui-knk: r62019 2018-01-24 09:12:53 +0900

Rational の coerce のテストでエラー時のメッセージに書いていた ML の参照の typo を修正しています。

nobu: r62020 2018-01-24 15:25:02 +0900

ブロック引数に ary.map(&:to_s) みたいな感じで Symbol を渡すことで暗黙のうちに Symbol#to_proc で Proc 化する時に呼ばれる to_proc メソッドが呼び元での Refinements の影響を受けるようにしています。そうかー。文字列の interpolation で効くようにしたので、いもづる式に増えそうだなーと思いましたが、まだあるかな。 [ruby-dev:50384] [Feature #14223]

nobu: r62021 2018-01-24 15:32:46 +0900

NEWS ファイルに r62020 のブロック引数の to_proc への Refinements の影響について追記しています。 [Feature #14223]

nobu: r62022 2018-01-24 16:15:55 +0900

Dir#each_child と Dir#children という Dir のインスタンスメソッドを追加しています。 これは Dir.each_child や Dir.children のようなクラスメソッドと同様で、パスを引数で受け取るかわりに receiver の Dir オブジェクトから得るという違いだけです。 [ruby-core:83102] [Feature #13969]

nobu: r62024 2018-01-24 17:25:36 +0900

昨日の r62007 の mkmf.rb の linker フラグの -Werror を削った件で、mswin の時は link.exe はエラーにはならないということで復活させています。 [ruby-core:78827] [Bug #13069]