今日は主にドキュメントの修正と VM 命令列のコンパイルエラー時のメモリリークの修正などがありました。
nobu: r57772 2017-03-04 23:21:57 +0900
compile.c の validate_label() でエラーメッセージに埋め込む label_name を ID ではなく Symbol から文字列化するようにしています。iseq_compile_each() で label_name という変数に ID ではなく Symbol を格納するようにしていますが、この変数の型は ID だから VALUE にしたほうがいいのではないかなぁ。
nobu: r57773 2017-03-04 23:37:22 +0900
compile.c で COMPILE_ERROR() でエラーを返す時に generated_iseq と line_info_table の解放を忘れないように BADINSN_ERROR というマクロを追加してこれを使うようにしています。一部で解放漏れがあったみたいです。
nobu: r57774 2017-03-04 23:44:05 +0900
compile.c で INSN(VM 命令)のオペランドの数を assert(3) でチェックしていたところがあったので、例外発生させるようにしています。これは ISeq をロードする処理なので入力によって不正な値が渡される可能性があるので assert はよくないってことみたいです。
stomar: r57775 2017-03-05 04:52:30 +0900
標準添付ライブラリ optparse の OptParse という OptionParser の別名に rdoc 用コメントを追加しています。 [ruby-core:79909] [Bug #13281]
svn: r57776 2017-03-05 04:52:31 +0900
version.h の日付更新。
stomar: r57777 2017-03-05 05:02:48 +0900
lib/unicode_normalize.rb で String クラスにメソッドを追加しているところがあるので、そこのコメントが rdoc のドキュメントになってしまわないように rdoc のタグ?を追加しています。
stomar: r57778 2017-03-05 05:08:04 +0900
String#== の rdoc 用コメントの体裁を修正しています。
nobu: r57779 2017-03-05 10:46:20 +0900
Math.log10 で底が10の2の対数を M_LN2/M_LN10 で計算していたところを log10(2) に変更しています。このほうがより正確とのこと。 [ruby-core:79907] [Bug #13279]
stomar: r57780 2017-03-05 21:36:09 +0900
IO#print の rdoc 用コメントの文章の修正。 [ruby-core:78291] [Bug #12975]
stomar: r57781 2017-03-06 04:43:10 +0900
IO#write, IO#read, IO#sync= の rdoc 用コメントの文法の修正やサンプルの追加など。
svn: r57782 2017-03-06 04:43:11 +0900
version.h の日付更新。