ruby-trunk-changes r49390 - r49398

今日はネストした rescue 節での break の不具合修正やライブラリロード時に通常ファイル以外を読もうとしてしまう不具合修正などがありました。

nobu: r49390 2015-01-23 23:57:08 +0900

ブロック内のネストした begin..rescue..end の rescue 節で break すると LocalJumpError になっていたのを修正しています。 vm_throw_start() で cfp を1回しか辿っていなかったのを修正しています。 https://github.com/ruby/ruby/pull/820 [ruby-core:67765] [Bug #10775]

nobu: r49391 2015-01-24 19:56:28 +0900

dln_find_1() で require で $LOAD_PATH からライブラリを検索する時にディレクトリは除外するようにしています。 [ruby-core:67766] [Bug #10776]

svn: r49392 2015-01-24 19:56:41 +0900

version.h の日付更新。

nobu: r49393 2015-01-24 19:57:35 +0900

r49391 の修正でディレクトリのみ除外していたのを S_ISREG() で通常ファイルのみ対象にするように再修正しています。 これ symbolic link だとどうなるのかと思いましたが、lstat(2) ではなく stat(2) を使っているのでリンク先を検査してくれるはずですね。 [ruby-core:67766] [Bug #10776]

nobu: r49394 2015-01-24 21:24:27 +0900

r49391 および 49393 のさらに再修正。 file.c の rb_readlink() の static 宣言をはずして Linux では /proc/self/exe の link 先を呼んで自分自身のファイルパスを得るようにしています。 [ruby-core:67766] [Bug #10776]

nobu: r49395 2015-01-24 22:06:58 +0900

r49394 で追加した dladdr_path() を dladdr(3) が定義されている時だけ定義するように条件を追加しています。

nobu: r49396 2015-01-24 23:59:13 +0900

r49393 の修正のために dln_find.c で S_ISREG() が未定義だったら独自にマクロ定義するようにしています。

nobu: r49397 2015-01-25 00:42:27 +0900

拡張ライブラリfiddle に添付されている libffi を mswin 版でビルドする為の Makefile のテンプレートでアセンブラがサブディレクトリのソースを受け付けないそうなので、ディレクトリ移動してから実行するように修正しています。 [ruby-core:67792] [ruby-core:67789] [Bug #10780]

svn: r49398 2015-01-25 00:42:39 +0900

version.h の日付更新。