ruby-trunk-changes r55579 - r55602

今日は Net::FTP, Net::HTTP などで不正改行コードを含むパラメータをエラーにする修正や ISO-8859-{14,15,16} の casemap 処理の実装などがありました。

shugo: r55579 2016-07-06 07:14:18 +0900

標準添付ライブラリ net/ftp の Net::FTP#putline でコマンドを送信する時に途中に改行コード(CR, LF)が含まれていたら別のコマンド行になってしまうので ArgumentError を返すようにしています。 [ruby-core:76274] [Bug #12556]

svn: r55580 2016-07-06 07:14:18 +0900

version.h の日付更新。

shugo: r55581 2016-07-06 09:01:20 +0900

標準添付ライブラリ net/http の Net::HTTP#write_header で request line (GET/POST などのメソッドとパスなどが含まれるリクエストの先頭の行)の部分に改行コード(CR, LF)が含まれていたら ArgumentError を発生させるようにしています。 [ruby-core:76275] [Bug #12557]

shugo: r55582 2016-07-06 09:16:17 +0900

r55581 のテストに assertion (LF の場合)を追加しています。 [ruby-core:76275] [Bug #12557]

nobu: r55583 2016-07-06 14:01:43 +0900

r55576 で拡張ライブラリ json の ext/json/parser/prereq.mk が削除されてしまっていたので復旧しています。

nobu: r55584 2016-07-06 14:03:14 +0900

tool/gen_dummy_probes.rb で不要な preprocessor の #pragma directive を消していたところで #include, #if, #endif なども削除するようにしています。
また common.mk と ext/ripper/depend で不要になった vm_opts.h への依存関係を削除しています。

nobu: r55585 2016-07-06 14:37:13 +0900

tool/update-deps で preprocessor が出力した *.i ファイルが clang の場合カレントディレクトリが出力されないこともあるそうでその場合は read_single_cc_deps から yield して適切なパスをブロックから返すようにしています。詳細追ってませんが enc/ の下のファイルの時は特別扱いしていますね。おそらく #include するほうで "enc/xxx" と enc から含んだ書きかたをするからではないかと。

nobu: r55586 2016-07-06 14:37:14 +0900

tool/update-deps で make の依存関係調節のための timestamp ファイルは対象から外すようにしています。

nobu: r55587 2016-07-06 14:44:35 +0900

.gitignore に依存関係抽出用にコンパイラに --save-temps=obj を指定して中間ファイルを残した時に生成されるファイル群を無視させるように拡張子指定を追加しています。

nobu: r55588 2016-07-06 14:44:58 +0900

mkmf.rb で $headers の内容を LOCAL_HDRS という Makefile の変数に展開するようにして、拡張ライブラリ digest の各種 depend で LOCAL_HDRS を依存関係に追加するようにしています。そして ext/digest/digest_conf.rb で $headers に各 digest の必要なヘッダファイルを追加するようにしています。
digest_conf.rb -> mkmf.rb/extmk.rb -> depend と経由してようやく追加したいヘッダが追加できるので実に迂遠ですね。

nobu: r55589 2016-07-06 14:48:13 +0900

common.mk と各種拡張ライブラリの depend ファイルの依存関係を更新しています。 tool/update-deps を実行したのだと思います。一部拡張ライブラリはそもそも depend ファイルがなかったところにもファイル追加されていますね。

duerst: r55590 2016-07-06 18:34:23 +0900

Unicode 以外の casemap 実装シリーズです。 ISO-8859-16 の大文字小文字変換が実装されています。

duerst: r55591 2016-07-06 18:59:23 +0900

ISO-8859-15 の大文字小文字変換が実装されています。

svn: r55592 2016-07-06 18:59:24 +0900

r55591 の行末の空白除去。

duerst: r55593 2016-07-06 19:24:50 +0900

enc/iso_8859_1.c, enc/iso_8859_15.c, enc/iso_8859_16.c の case_map() のインデント調整。

svn: r55594 2016-07-06 19:24:51 +0900

r55593 の行末の空白除去。

duerst: r55595 2016-07-06 19:54:24 +0900

ISO-8859-14 の大文字小文字変換が実装されています。

svn: r55596 2016-07-06 19:54:25 +0900

r55595 の行末の空白除去。

ngoto: r55597 2016-07-06 22:26:53 +0900

r55595 で enc/iso_8859_14.c に // によるコメントが追加されていたため Solaris 上の Fujitsu C Compiler でビルドエラーになるためコメントの文法を変更しています。 [ruby-dev:49719] [Bug #12559]

usa: r55600 2016-07-07 01:05:57 +0900

tool/redmine-backporter.rb のコマンドは省略記法も使えたみたいで省略記法から正式な名前を取り出す順番が間違っていて正しく動かなかった不具合を修正しています。

svn: r55601 2016-07-07 01:05:58 +0900

version.h の日付更新。

naruse: r55602 2016-07-07 03:17:36 +0900

テストの test/stringio/test_stringio.rb および test/-ext-/string/test_modify_expand.rb に require "rbconfig/sizeof" を追加しています。他のところで require されてるので通ってしまってましたが並列テストしたりするとおちる可能性がありました。