Hatena::ブログ(Diary)

PB memo このページをアンテナに追加 RSSフィード

2015-08-31 ruby-trunk-changes r51728 - r51729

[][]ruby-trunk-changes r51728 - r51729

今日は Module#prepend と Refinements を使っていた時の Write Barrier 追加の修正がありました。

ko1: r51728 2015-08-31 17:07:59 +0900

Module#prepend した時に Refinements で再定義されたメソッドの method entry の Class を移動する時に、対象の Class に対して世代GC 用の Write Barrier が漏れていたのを修正しています。 [Bug #11497]

svn: r51729 2015-08-31 17:08:19 +0900

version.h の日付更新。

2015-08-30 ruby-trunk-changes r51722 - r51727

[][]ruby-trunk-changes r51722 - r51727

今日は拡張ライブラリ opensslOpenSSL の SSLv3 サポートをチェックするようにする変更などがありました。

tenderlove: r51722 2015-08-30 02:45:14 +0900

拡張ライブラリ openssl の extconf.rb でリンクする OpenSSL の SSLv3 サポートをチェックして、存在しない時はメソッドを定義しないようにしています。 OpenBSDlibressl が SSLv3 を削除しているそうです。 [ruby-core:70045] [Bug #11376]

svn: r51723 2015-08-30 02:45:30 +0900

version.h の日付更新。

nobu: r51724 2015-08-30 11:34:40 +0900

r51722 の ChangeLog エントリの typo 修正。

nobu: r51725 2015-08-30 15:46:16 +0900

Win32OLE のテストで ExecNotificationQueryAsync() を呼び出すところで administrator 権限がないとエラーになるので、その時はテストを skip するようにしています。

nobu: r51726 2015-08-30 16:15:52 +0900

r51725 の追加修正。 skip にメッセージを追加しています。

nobu: r51727 2015-08-30 17:32:37 +0900

encoding.c の rb_enc_unicode_p() のコメントを修正。 真の時に 1 を返すと書かれていましたが、1以外の非ゼロの値を返すことがあるのでそのようにコメントも修正しています。

2015-08-29 ruby-trunk-changes r51719 - r51721

[][]ruby-trunk-changes r51719 - r51721

今日も File.symlink の Windows 版対応に関連してテストの修正がありました。

nobu: r51719 2015-08-29 10:25:07 +0900

標準添付ライブラリ fileutils のテストと拡張ライブラリ pathname のテストで File.symlink が使えるかどうかのチェックに引数nil を渡して呼び出して NotImplementedError が発生するかどうかをみるという方法が取られていたので、空文字列を渡すように修正しています。 nil だと ArgumentError が発生する(と書いてありますが、後の修正をみると TypeError かも)のですが、これは Windows 版で必要な administration 権限があるかどうかのチェックの前に発生してしまうので、チェックが不十分になってしまうようです。

svn: r51720 2015-08-29 10:25:38 +0900

version.h の日付更新。

nobu: r51721 2015-08-29 14:19:49 +0900

r51719 の続き。 pathname のテストで File.symlink に空文字列を渡すようにしたので TypeError のかわりに Errno::ENOENT を rescue するように変更しています。

2015-08-28 ruby-trunk-changes r51710 - r51718

[][]ruby-trunk-changes r51710 - r51718

今日は TracePoint の :return イベントが重複する場合がある不具合の修正の他、引き続き Windows 版の File.symlink の対応に追随するテスト修正などがありました。

nobu: r51710 2015-08-28 04:49:45 +0900

鬼雲の OnigEncodingType のメンバである関数ポインタの property_name_to_ctype の引数の型に const 修飾子を付加して、対応する各所の関数の型も追随させています。

nobu: r51711 2015-08-28 04:50:23 +0900

enc/unicode.c からもう不要になっていたので #include "ruby/st.h" を削除しています。

svn: r51712 2015-08-28 04:50:33 +0900

version.h の日付更新。

ko1: r51713 2015-08-28 10:20:32 +0900

TracePoint で define_method のブロック渡しで定義されたメソッドを呼び出した時に :return イベントが2回重複して呼ばれる不具合を修正しています。 vm_exec() のループを抜けて C 実装に戻る時に :return イベントが呼ばれるため、hook_before_rewind() に引数を追加して、呼び元によって EXEC_EVENT_HOOK_AND_POP_FRAME() を呼ぶかどうかを分岐するようにしています。 [Bug #11492]

nobu: r51714 2015-08-28 10:24:36 +0900

テストで File.symlink を使っているところで rescue する例外に Errno::EACCES を追加しています。 Windows 版での File.symlink の対応で、 Administrator権限がないと symbolic link が作れないからだそうです。

hsbt: r51715 2015-08-28 16:05:17 +0900

標準添付ライブラリ rdoc の最新版のマージ。Javascript の文法修正と、ファイルパスの扱いのちょっとした例外処理の追加だけですね。 https://github.com/rdoc/rdoc/pull/337 https://github.com/rdoc/rdoc/pull/367

nobu: r51716 2015-08-28 20:34:53 +0900

win32/win32.c の wrename() の oldatts と newatts の変数の型を修正して警告除去しています。

nobu: r51717 2015-08-28 20:35:09 +0900

win32/win32.c の fchmod() で警告除去のため構造体メンバの初期化子の書きかたを修正しています。

nobu: r51718 2015-08-28 20:48:45 +0900

r51701 の追加修正。file.c のファイル操作失敗時の sys_fail2(_in) を errno を引数で渡す syserr_fail2() に変更して、sys_fail2() は syserr_fail2() に委譲する関数マクロとして定義しなおしています。

2015-08-27 ruby-trunk-changes r51699 - r51709

[][]ruby-trunk-changes r51699 - r51709

今日は Queue#close メソッドの追加、Windows での symlink 実装の追加対応などがありました。

ko1: r51699 2015-08-27 07:59:32 +0900

r51660 で組み込みクラスになった Queue に Queue#close メソッドを追加して、Queue を閉じることができるようにしています。閉じた Queue が空になると Queue#deq は nil を返すか、引数に true を渡すとかわりに例外 ClosedQueueError を発生させるようになっています。 [ruby-core:66843] [Feature #10600]

例外を使うかどうかが Queue#close の引数で決まるのはちょっと妙な気がしますね。 Queue#deq/pop にキーワード引数を追加したほうが良いような…。あとライブラリとしても容易に実装できると思いますが、close を N回で本当に閉じるという機能があると producer-consumer モデルで複数の producer の終了を検出するのが楽になりますね。っていうのをチケットに書けってことですね、書きました。

svn: r51700 2015-08-27 08:00:15 +0900

r51699 のコメントの行末の空白除去。

nobu: r51701 2015-08-27 10:03:55 +0900

ファイル操作のエラー時の SystemError 例外を発生させる file.c の sys_fail2() で RUBY_FUNCTIONAL_NAME_STRING が定義されている時に関数名をメッセージに含めることができるように関数マクロ定義を追加しています。これ RUBY_FUNCTIONAL_NAME_STRING が未定義の時に sys_fail2() が未定義にならないですかね?(マクロ定義のところが逆?)

nobu: r51702 2015-08-27 12:57:56 +0900

win32/win32.c に CreateFileW() の wrapper 関数の open_special() を追加して各所で同じフラグを指定して CreateFileW() を呼び出していたのをこの関数を利用するようにリファクタリングしています。

nobu: r51703 2015-08-27 12:58:10 +0900

Windows 版の rename() の実装で移動前後で同じディスクか判定するために VSN (変更前の関数名からみるに Volume Serial Number の略?)の取得時に open_special() に FILE_FLAG_OPEN_REPARSE_POINT フラグを渡すようにしています。

nobu: r51704 2015-08-27 13:01:37 +0900

Windows 版の File.chmod の実装が追加されています。 SetFileInformationByHandle() を用いて FileAttributes の read only のフラグ(FILE_ATTRIBUTE_READONLY)を操作することができるようです。

naruse: r51705 2015-08-27 14:50:36 +0900

.travis.yml の before_install から sudo を用いるコマンドをコメントアウトして、Travis CI のコンテナ上の実行をサポートするようにしているようです。

naruse: r51706 2015-08-27 15:18:44 +0900

r51705 に続いて .travis.yml に sudo: false を追加してコンテナで動くようにしています。

ko1: r51707 2015-08-27 15:25:53 +0900

compile.c の iseq_set_sequence() の短い変数名をより意味のわかりやすい名前の改名するリファクタリング

naruse: r51708 2015-08-27 16:07:18 +0900

r51705, r51706 の .travis.yml のコンテナ対応を revert しています。うまくいかなかったみたいですね。

hsbt: r51709 2015-08-27 18:05:48 +0900

標準添付ライブラリ webrick で "/dev/null" が固定で書かれていたところがあったので IO::NULL を使うようにしています。こちらは Windows にも対応しています。