ruby-trunk-changes r42525 - r42535

今日は readline の再修正、prepend した時に内部的に生成される IClass の RGenGC の対応、ヒアドキュメントの終了の検出での '\r' の扱いの修正などがありました。

naruse:r42525 2013-08-12 02:58:07 +0900

拡張ライブラリ readline の Readline.output=, Readline.input= を r42402 で dup した fd を fdopen(3) した FILE 構造体を保持させるように変更したところ Mac OS X の editline では rl_getc() を使わないため動作しなくなってしまったということで、作った FILE を IO オブジェクトに持たせるようにしています。 [ruby-dev:47509] [Bug #8644]
[ruby-dev:47608]akr さんから Readline ライブラリの FILE を IO オブジェクトに持たせると IO#close で SEGV の恐れがあるという報告があるので、この方法だとだめみたいです。

svn:r42526 2013-08-12 02:58:14 +0900

version.h の日付更新。

naruse:r42527 2013-08-12 10:04:01 +0900

r42525 で Readline.input= と Readline.output= で Readline で作った FILE を IO にもセットしていたのをとりあえず FILE が stdin, stdout だった時だけに変更しています。 [ruby-dev:47608] で指摘されていた点の対処のためでしょうか。

naruse:r42528 2013-08-12 11:25:49 +0900

r42527 の再修正。 Readline で作った FILE は新たに fdopen(3) で作っているので stdin/stdout と一致することはないので revert して、readline_getc() で常に rl_getc() に rl_instream を渡すようにしています。 rl_instream が外部の拡張ライブラリで変更されるとこれでもだめだけど、ということですがさすがにそこまでは面倒みきれないっていう気も。 [ruby-dev:47608] [ruby-dev:47609] [Bug #8760]

zzak:r42529 2013-08-12 12:49:50 +0900

標準添付ライブラリ yamlYAML::DBM#, =, fetch, key などのメソッドに rdoc 用コメントを追記しています。

zzak:r42530 2013-08-12 12:54:32 +0900

拡張ライブラリ dbm の rdoc 用コメントの見出しのマークアップの修正しています。

zzak:r42531 2013-08-12 12:59:50 +0900

拡張ライブラリ dbm の extconf.rb に :stopdoc: タグを追加して RDoc の対象から外すようにしています。

zzak:r42532 2013-08-12 13:29:49 +0900

標準添付ライブラリ yamlYAML::DBM のメソッドに call-seq を追記、修正しています。

zzak:r42533 2013-08-12 13:48:28 +0900

Process.clock_gettime の rdoc のマークアップ方法の修正など体裁の修正です。

ko1:r42534 2013-08-12 15:19:15 +0900

Module#prepend の時に元の Class/Module のメソッドテーブルの移植するために作成する IClass を shady オブジェクトに指定するようにしています。 IClass には追加で定義されたメソッドの参照が追加されるため Write Barrier が必要なのですがそれが難しいため shady にしているということかと思います。

nobu:r42535 2013-08-12 15:59:57 +0900

ヒアドキュメントの終端や __END__ を検出する parse.y の parser_whole_match_p() で CR('\r') が単独で存在しただけでも改行と扱っていたのを修正しています。 "\r\n" とペアの時だけ改行として扱うようにしています。