ruby-trunk-changes r53268 - r53281

今日はリリース間際らしく NEWS の整理や、古い Ruby を BASERUBY として使った時のビルドの修正、内部的関数の C API からの削除などがありました。

ko1: r53268 2015-12-24 14:59:17 +0900

NEWS ファイルにチケットの参照の追加や、"Implementation improvements" というセクションを追加して主に性能の向上などに繋る内部的変更について追記したりしています。 [ruby-core:72450]

sorah: r53269 2015-12-24 15:35:04 +0900

tool/vcs.rb の古い ruby 向けに IO.popen を再定義していた部分が RUBY_VERSION < "1.9" になっていたのを "2.0" にして 1.9 でも再定義するようにしています。またこの古い ruby 向けの代替実装(r49705)で typo していたところを修正しています。

sorah: r53270 2015-12-24 15:35:39 +0900

tool/file2lastrev.rb で ruby 1.8.7 で動作するように proc は Proc.new に変更しています。 おおう、proc { .. } って 1.9 からだったっけ…。使わないので完全に忘れてる(proc より Proc.new 派)。
[追記]1.8.7 で proc は引数の数が一致しないと ArgumentError が発生する(lambda 同様)のでうまく動かないことがあったようです。

sorah: r53271 2015-12-24 15:35:49 +0900

tool/vcs.rb の古い ruby 向け IO.popen 再定義のところで if の条件部に代入を含む式を書いてたのを行を改めて代入と if 文をわけるようにリファクタリング

kazu: r53272 2015-12-24 15:38:54 +0900

r53268 で NEWS に追記したチケット番号の参照が重複していたのを修正。

kazu: r53273 2015-12-24 15:39:10 +0900

r53268 の NEWS ファイルの Set の性能向上についての追記部分の typo 修正。

kazu: r53274 2015-12-24 15:39:24 +0900

NEWS ファイルから空のセクション "Build system updates" を削除しています。

naruse: r53275 2015-12-24 16:21:28 +0900

r50045 で ripper のビルド時のために VPATH を置換するようにした時に "../.." という固定の相対パスを使うようになってしまっていたので、ビルドディレクトリを指すように $(PWD) を参照するように修正しています。

naruse: r53276 2015-12-24 16:21:30 +0900

common.mk に fake.rb の依存関係に miniruby を追加しています。ちょっとうろ憶えですが、通常のビルド時(クロスコンパイルではない時)は r51749 で BASERUBY を使うように一時的にしたものの、 r53072 でやっぱり miniruby を使うようにしたので、fake.rb は通常は miniruby に依存しているため、だと思います。

normal: r53277 2015-12-24 17:21:11 +0900

r53268 で追記された "Implementation improvements" セクションから、既に新機能として記述されていた Socket の nonblock 系 API の :exception オプションの追加についての記述を削っています。

nobu: r53278 2015-12-24 17:25:44 +0900

parse error 時の例外メッセージの構築に String オブジェクトを使ってエンコーディング情報を保持するようにしています。

nobu: r53279 2015-12-24 18:43:22 +0900

r53278 の変更で使用しなくなった関数 rb_compile_error()、rb_compile_error_with_enc()、rb_compile_bug() をコメントアウトしていいます。また rb_compile_error()、rb_compile_error_append() と rb_compile_error_with_enc() は include/ruby/intern.h で外部からも呼べるようになっていたので、DEPRECATED() マクロで deprecated にマークして……あれ、でも rb_compile_error_append() 以外はコメントアウトで定義が消されてる関数では? ううん??
また parse.y の parser_yyerror() で syntax error のメッセージを rb_compile_error_???() の関数群で少しずつ組み立ててたのを、必要な部品を用意して rb_compile_error() で一気に組み立てるように変更しています。

kazu: r53280 2015-12-24 18:59:19 +0900

NEWS ファイルの r53272 で重複していたチケット番号を消したところに、かわりのチケット番号を追記しています。

hsbt: r53281 2015-12-24 23:02:02 +0900

NEWS ファイルに CGI.escapeHTML の最適化について追記しています。