ruby-trunk-changes r30412 - r30417

文法エラーのメッセージのエンコーディングをセットする修正、RDoc 3.1 のマージが行なわれています。

usa:r30412 2010-12-28 18:43:49 +0900

パース時に文法エラーの例外を発生させる関数にエンコーディングの指定を含む rb_compile_error_with_enc() 関数を追加して、これを利用するようにしています。SyntaxError のメッセージに元のスクリプトの文字列を含むのにエンコーディングが ASCII-8BIT 固定だったのでスクリプトエンコーディング(?)で生成するようにしています。
[Bug #4217] の1つめのエラーはこれじゃなくて端末の external_encoding で不正な文字列を出力しようとしてエラーみたいな感じなので、これとは別に何か修正が必要なような気がします。手元の環境(Mac OS X)だとちゃんと '?' に置換して出力されるのですけど。

$ ruby -e 'print(Regexp.compile("\xff"))'
-e:1:in `initialize': invalid multibyte character: /?/ (RegexpError)
	from -e:1:in `compile'
	from -e:1:in `<main>'

[追記]そういえば ChangeLog には re.c の修正も書かれているのですけどコミットには含まれていませんでした。ChangeLog を見たときにあれっ無いなと思ってたんですけど調べてるうちに忘れてしまってました。コミット漏れだったようです。[/追記]

drbrain:r30413 2010-12-29 07:08:56 +0900

RDoc 3.1 をマージしています。リリースノートはこちら http://rdoc.rubyforge.org/History_txt.html
差分が大きいので細部は見ていませんが、r30382 での lib/rdoc/ri/paths.rb の修正、環境変数 HOME が設定されていない時の修正が変更されています。"for 1.8 compatibility" とコメントされていますが少なくとも HOMEPATH を単独で参照しているところは不具合扱いなので修正したほうがいいんじゃないかと思います。

svn:r30414 2010-12-29 07:08:59 +0900

version.h の日付更新。

drbrain:r30415 2010-12-29 07:22:58 +0900

lib/rake/rdoctask.rb を lib/rdoc/task.rb を利用するようにしています。require "rake/rdoctask" は deprecate なので require "rdoc/task" を使います。

akr:r30416 2010-12-29 10:07:26 +0900

signal.c の関数マクロの引数にかっこをつける修正です。

akr:r30417 2010-12-29 10:33:28 +0900

Process.waitall の rdoc で Process::Status#inspect の表現が違うのを修正しています。