ruby-trunk-changes r51041 - r51046

今日は Net::FTP の socket リークの修正がありました。昨日の st_table の ccan/list 利用のリベンジもあったのですが、またビルド失敗で revert されました。

normal: r51041 2015-06-27 03:59:59 +0900

r51034 で st_table のリスト管理に ccan の list 実装を利用したらビルドエラーが発生したのが common.mk の更新不足にあったのではないかということで、まず st.c に #include "ccan/list/list.h" を追加して様子を見ています。

svn: r51042 2015-06-27 04:01:47 +0900

version.h の日付更新。

normal: r51043 2015-06-27 05:19:15 +0900

r51034 のリベンジの続き common.mk に st.c の依存関係に ccan のヘッダ群を追加しています。 多分 tool/update-deps を使ってるんでしょうね。このためにまず r51041 で #include を追加したのかな。

normal: r51044 2015-06-27 07:32:06 +0900

r51034 の st_table の linked list 実装の ccan/list を利用した変更のリベンジ。ところが… [ruby-core:69726] [misc #10278]

normal: r51045 2015-06-27 07:52:26 +0900

r51044 を revert しています。やはり CI でのビルド(多分 Windows 版)に失敗してしまったそうです。ふーむ。
しかしヘッダと依存関係の追加は残ったままですね。

eregon: r51046 2015-06-27 19:10:54 +0900

標準添付ライブラリ net/ftp で Net::FTP#makeport で TCPServer を開いて PORT/EPRT コマンドで @sock に書きこみを行なっているところで例外が発生すると開いた TCPServer のソケットが leak していたのを修正しています。 makeport で sendport は呼ばず呼び元で begin ... ensure で保護されてる場所で呼ぶようにしています。