ruby-trunk-changes r56205 - r56221

今日は主に Refinements で Module も refine できるようにする変更や、forwardable で private method を警告つきで委譲可能にする変更などがありました。

kazu: r56205 2016-09-22 23:05:48 +0900

r56105 の svn:ignore の対応にあわせて .gitignore に /enc/unicode/data/9.0.0/*.txt を追加しています。

nobu: r56206 2016-09-23 10:32:55 +0900

r56205 だと enc/unicode/data/9.0.0 の下だけ無視するようになっていたので、バージョンに依存しないように /enc/unicode/data/*/*.txt に再変更しています。

svn: r56207 2016-09-23 10:32:56 +0900

version.h の日付更新。

nobu: r56208 2016-09-23 12:15:31 +0900

ISeq の末尾呼び出し最適化で jump 命令による無条件分岐の先に leave があった場合も末尾呼び出し最適化が有効になるようにしています。

nobu: r56209 2016-09-23 14:27:38 +0900

標準添付ライブラリ fileutils のテストで使う一時ディレクトリを pid のみ suffix に付けたパスを生成していたのを Dir.mktmpdir を利用するようにしています。

nobu: r56210 2016-09-23 15:47:06 +0900

標準添付ライブラリ forwardadble で private method が委譲できなくなっていたので、警告つきで可能にするように戻しています。うーん、確かに意図的に private method を委譲したいことはそんなにはない気がする(というかそもそも private をそんなに使わない…)。 [ruby-core:77341] [Bug #12782]

knu: r56211 2016-09-23 20:21:52 +0900

ruby, erb, irb, ri などの man ページ用のファイルで Kl というマクロを使って URL にリンクをはるようにしています。

knu: r56212 2016-09-23 20:21:55 +0900

man/ruby.1 の Rich Libraries の節のリンク切れしていた URL を更新したり参照を追加したりしています。

shugo: r56213 2016-09-23 20:46:33 +0900

Refinements で Class だけでなく Module のメソッドも再定義できるようにしています。 Refinements の Module#refine は Class しか対象にできなかったんですね。けどそんなに実装に大きな変更はないみたいです。 [ruby-core:76199] [Feature #12534]

svn: r56214 2016-09-23 20:46:34 +0900

r56213 で混入した diff というファイルの行末の空白除去。

svn: r56215 2016-09-23 20:46:34 +0900

r56213 で混入した diff ファイルの svn property 設定。

shugo: r56216 2016-09-23 21:08:00 +0900

r56213 で混入したファイルを削除しています。

nobu: r56217 2016-09-23 21:16:00 +0900

r56210 で標準添付ライブラリ forwardable.rb に混入してたデバッグ用の puts を削除しています。

knu: r56218 2016-09-23 21:40:16 +0900

tool/mdoc2man.rb に r56211 で追加した Lk というマクロを解釈する機能を追加しています。

nobu: r56219 2016-09-23 23:18:39 +0900

r56204 の拡張ライブラリ zlib の extconf.rb の変更で zlib のソースがソースディレクトリにある場合の Windows 版での DLL のインストール先が $(BINDIR) だったのを修正しています。

nobu: r56220 2016-09-23 23:18:41 +0900

拡張ライブラリ zlib の extconf.rb で zlib のソースがソースディレクトリにある場合に have_func() や have_type() でのチェックを省略して -DHAVE_XXX オプションを追加しています。zsrc がある場合も -I でヘッダファイルを探すパスは追加しているから have_xxx でのチェックも有効ではないのかなぁ。まあでもわざわざソースを置いてるからには最近のバージョンだろ、ということみたいです。

shugo: r56221 2016-09-23 23:59:26 +0900

r56213 の Refinements の Module 対応で make_method_entry_refined() で Ruby と同様の感じで || 演算子を使っていたところを条件演算子で書き換えています。 C だと || は論理演算子なので真偽値を返すので必ずしも評価値がそのまま結果として返されないからですね。