ruby-trunk-changes r38813 - r38827

今日は rb_vm_t::gvl のメンバの初期化漏れで稀に dead lock が発生する不具合の修正のほか、おもに document の追加がありました。

keiju:r38813 2013-01-14 23:17:18 +0900

irbirb/ext/save-history.rb を使って history ファイルを保存するようにした時に保存先のファイルの権限を 0600 に変更して実行ユーザのみが読み書きできるようにしています。 [ruby-core:51426] [Bug #7694]
が権限のチェックに不具合があり r38834 で再修正されています。

drbrain:r38814 2013-01-15 07:43:21 +0900

RDoc がページ名をファイル名から生成する時に拡張子っぽいものを全て除去するためREADME.ja のようなファイル名のものも README という名称になってしまっていたので、.rb, .rdoc, .txt, .md などのいくつかの拡張子のみ省略するようにしています。 [ruby-core:51310] [Bug #7673]

svn:r38815 2013-01-15 07:43:28 +0900

version.h の日付更新。

drbrain:r38816 2013-01-15 08:56:47 +0900

doc/syntax/calling_methods.rdoc というメソッド呼び出しの構文についてのドキュメントを追加しています。

drbrain:r38817 2013-01-15 09:11:46 +0900

doc/syntax/methods.rdoc のキーワード引数の項目を移動して、 "*" や "**" だけの仮引数を指定しないメソッド定義の方法についても追記しています。

drbrain:r38818 2013-01-15 09:29:56 +0900

doc/syntax/calling_methods.rdoc でメソッド呼び出しに "." だけでなく "::" でレシーバとメソッド名を区切る記法についても追記しています。 古の Rubyist はたまにこの記法を(特に singleton method 呼び出し時に)使いますね。あまりおすすめはできませんが。またサンプルコードの文法エラーを修正しています。

kosaki:r38819 2013-01-15 09:32:23 +0900

rb_vm_t::vm.wait_yield が初期化されておらず fork したプロセスで deadlock を引き起こすことがあった不具合を修正しています。 [ruby-core:51424] [Bug #7693]

nobu:r38820 2013-01-15 09:59:16 +0900

make btest で bootstraptest の最後の結果の表示に(可能なら)色付けを行うようにしています。ファイル毎の結果の表示は既に色付けされてましたが、全体で最後に出力されるメッセージの PASS or FAIL のところを色をつけています。

nobu:r38821 2013-01-15 09:59:19 +0900

bootstraptest/runner.rb に --tty オプションを指定して標準出力が端末かどうかをオプションで指定できるようにしています。 cygwin 上で mingw版 or mswin版の ruby を実行した時? のためだそうです。 IO#tty? が動作しないからでしょうか。

marcandre:r38822 2013-01-15 10:40:29 +0900

Enumerator::Lazy#map と flat_map はブロックを指定しないとエラーになるのでその確認をするテストを追加しています。

drbrain:r38823 2013-01-15 11:48:49 +0900

doc/syntax/calling_methods.rdoc の引数の説明に "Positional Argument" (通常の引数に加えて省略可能引数と rest 引数も含めたもののようです)、"Keyword Argument" を追記したり、ブロックパラメータ(ブロックに渡す引数)の仮引数の記述でブロックローカルパラメータを定義できることなどを追記しています。
こうしてみると Ruby の引数の仕様はずいぶん複雑ですね。

drbrain:r38824 2013-01-15 11:49:54 +0900

doc/syntax/methods.rdoc にさらに Block Argument (& つきで proc や lambda を渡すものですね)の項目を追記しています。

drbrain:r38825 2013-01-15 13:33:28 +0900

doc/syntax/methods.rdoc にメソッド名に使える文字の説明や演算子っぽいメソッド名についての説明を追記しています。 また doc/syntax/precedence.rdoc というファイルを追加して演算子の優先順位について記述しています。
and/or が最低(ブロックの {} は別として)と記憶していたんですけど後置の if などのほうが優先順位低いんですね。

drbrain:r38827 2013-01-15 15:55:43 +0900

doc/syntax/control_expressions.rdoc というファイルを追加して if, unless, case, while, until, for, break, next, redo などの制御構文の説明を記述しています。