ruby-trunk-changes r42965 - r42980

今日は RubyGems 2.2.0.preview.1 と RDoc 4.1.0.preview.1 のマージ、Symbol を全て frozen にする変更、lambda の source_location の行番号の修正などがありました。

kazu:r42965 2013-09-18 23:21:43 +0900

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

glass:r42966 2013-09-18 23:34:04 +0900

String#lines と #each_lines が文字列が不正なバイト列を持っていた時に無引数だと例外が発生しないのに引数にデリミタを渡していると例外が発生していたので、常に例外が発生しないで処理するように修正しています。ついでに文字をたどる処理をまずバイト列として検索してからその位置が文字の先頭かチェックする方法にして効率化しています。 [ruby-dev:47549] [Bug #8698]

drbrain:r42967 2013-09-19 06:29:41 +0900

RubyGems 2.2.0.preview.1 をマージしています。先日 2.1.3 に上げたばかりですがまた大きな変更が入ってマイナーバージョンが上がったようです。 リリースノートはこちら。 https://github.com/rubygems/rubygems/blob/v2.2.0.preview.1/History.txt
gem prinstine に拡張ライブラリを含む gem のみ再インストールする --extensions というオプションを追加したり、gem uninstall で --user-install でホームディレクトリにインストールした gem パッケージを消すのに失敗していた不具合を修正したり、うっかり private なパッケージを gem push で公開しないように allowed_push_host という属性を追加してそれが指定されていたらそれ以外のホストに push しないようにする機能の追加や、環境変数 https_proxy を見るようにした変更などいろいろです。

svn:r42968 2013-09-19 06:29:51 +0900

version.h の日付更新。

drbrain:r42969 2013-09-19 06:39:43 +0900

RubyGems の依存関係の解決の処理を再帰呼び出しを使ったものからループによる処理に書き換えているそうです。とコミットログには書いてあるのですがまだ再帰的な呼び出しを使っているような……。ループと再帰の組み合わせに緩和したということでしょうか。差分よく読めていません。

tenderlove:r42970 2013-09-19 07:17:15 +0900

拡張ライブラリ psych の gemspec と Psych::VERSION のバージョンを 2.0.1 に上げています。

drbrain:r42971 2013-09-19 08:33:36 +0900

RDoc 4.1.0.preview.1 をマージしています。いろいろ変わってるみたいです。変更履歴はこちら https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc
rdoc -v が verbose モードじゃなくて --version 相当になったのというのが個人的にはよくひっかかったオプションなので目につきました。

drbrain:r42972 2013-09-19 09:00:01 +0900

rdoc の lib/rdoc/markdown/literals_1_9.rb と lib/rdoc/markdown.rb の行末の空白を修正、と書いてあるような気がするのですが、実際には 1.9 以降を検出するのに String#getbyte ではなく String#ord をチェックするように変更していたりしています。はて。

drbrain:r42973 2013-09-19 09:11:45 +0900

NEWS ファイルに RDoc 4.1.0.preview.1 と RubyGems 2.2.0.preview.1 への更新を追記/変更しています。

ko1:r42974 2013-09-19 14:30:02 +0900

Symbol を常に freeze した状態にするようにしています。 従来は Symbol にインスタンス変数を持たせたりできたようですが、できなくなるようです。 Symbol が frozen になっても問題なさそうが気がしますが、RubySpec でいくつか失敗しているみたいですね。
"I want to freeze this good day, too." とのことで、ご結婚おめでとうございます!

ko1:r42975 2013-09-19 14:33:47 +0900

r42974 の Symbol の frozen 化について NEWS ファイルに追記しています。

nobu:r42976 2013-09-19 16:22:13 +0900

行末の空白除去とファイル末尾の改行追加だそうですが、lib/rdoc/generator/template/darkfish/fonts の ttf ファイル(バイナリファイル)も変更してしまっているようです。

nobu:r42977 2013-09-19 16:25:09 +0900

sprintf や String#% で指示子 x/X で16進数にする時に精度が 0 の時の不具合を修正しているそうなのですが、元のどの挙動を変更したのかよくわかりませんでした。

nobu:r42978 2013-09-19 16:33:09 +0900

r42976 の行末空白除去などで変更してしまっていた lib/rdoc/generator/template/darkfish/fonts/ の ttf ファイルを元に戻しています。

nobu:r42979 2013-09-19 16:59:05 +0900

parse.y で Ripper 用のコードとまったく同じアクション部をコメントを削って1つにまとめています。同じ時はコメントで分けなくていいんですね。

nobu:r42980 2013-09-19 16:59:07 +0900

  • >() {} や lambda() {} で作った Proc オブジェクトの source_location の行番号がブロックの終端の位置の行を返していたので、1.9.3 と同じくブロックの開始位置 ('{' や do の位置)を返すようにしています。

これは 2.0.0 にもバックポートしようかなぁ。