ruby-trunk-changes r48497 - r48513

今日もビルドプロセス回りの変更/修正と、標準添付ライブラリ matrix の機能追加、拡張ライブラリ ripper のパースエラー検出強化などがありました。

nobu: r48497 2014-11-20 00:06:04 +0900

r48494 で tool/downloader.rb の RubyGems パッケージダウンロード時にファイルが既に存在したら再取得しないようにしたのを、RubyGems 用のクラス特有のコードではなくて共通の部分で、ims 引数が nil の時の挙動として移動して、common.mk で RubyGems 用のファイルダウンロード時にこの引数に明示的に nil を渡すようにリファクタリングしています。 あとメッセージは $VERBOSE モードの時だけ出力するようにしています。

svn: r48498 2014-11-20 00:06:21 +0900

version.h の日付更新。

nobu: r48499 2014-11-20 00:19:33 +0900

r48493 および r48495 で common.mk の ripper のソースコード生成時の VPATH 指定を PWD にしたのを "../.." 固定にしています。 このルールの実行時は ext/ripper/ に居るから VPATH は常に "../.." ってことらしい…、いやよくわかりません。ビルドプロセス難しい。

nobu: r48500 2014-11-20 00:26:41 +0900

parse.y でヒアドキュメントのパース時に中間オブジェクトを生成せずに直接 parser->delayed に追加するようにしています。

akr: r48501 2014-11-20 00:57:31 +0900

ruby.c に残っていた extern 宣言を internal.h に移動しています。

nobu: r48502 2014-11-20 01:01:02 +0900

parse.y の reg_named_capture_assign_gen() で正規表現コンパイルに失敗した時に例外オブジェクトからメッセージを取り出したり設定したりする時の ID を rb_intern() を使っていたのを組込みの idMesg を利用するようにしています。

nobu: r48503 2014-11-20 02:09:38 +0900

parse.y で左辺値のノードに NODE_LASGN を使ってたのを NODE_CDECL を利用して、ノードに値を持てるようにしています。ふむ?

nobu: r48504 2014-11-20 02:10:35 +0900

r48503 の続き ripper_new_yylval() で lval 用ノードに値を持てるようになったのを利用して、正規表現リテラルのパースエラーを検出できるようにしています。なるほど、ここで利用するためでしたか。 [ruby-dev:48714] [Bug #10437]

marcandre: r48505 2014-11-20 02:32:58 +0900

標準添付ライブラリ matrix に Vector#angle_with メソッドを追加しています。2 つの(次元の同じ) Vector オブジェクトのなす角をラジアン単位で返すようです。 [ruby-core:65947] [Feature #10442]

marcandre: r48506 2014-11-20 02:44:46 +0900

標準添付ライブラリ matrix に Vector.independent? および Vector#independent? メソッドを追加しています。複数の Vector オブジェクトが互いに直行している(ある Vector を他の Vector の線形結合で表現できない)かどうかを判定してくれるメソッドです。便利メソッドですね。 [ruby-core:65999] [Feature #10451]

nobu: r48507 2014-11-20 03:11:14 +0900

r48504 の ChangeLog エントリに ML とチケットの番号を追記しています。 [ruby-dev:48714] [Bug #10437]

nobu: r48508 2014-11-20 08:54:59 +0900

parse.y の構造体 struct parser_params でメンバの順番を入れ替えたり、不要なメンバを削除したりしてサイズを削減しています。

nobu: r48509 2014-11-20 08:57:56 +0900

r48506 で追加した Vector.independent? のテストで例外クラスの名前の間違いを修正しています。 [ruby-core:65999] [Feature #10451]

naruse: r48510 2014-11-20 15:52:16 +0900

ext/nkf/depend に nkf.o から nkf.c への依存関係を追加しています。 bsdmake だと明記されていないと(共通ルールがあるのに) nkf-utf8/nkf.c からコンパイルしようとしてしまうそうです。

usa: r48511 2014-11-20 16:56:08 +0900

test/ripper/test_files.rb の ripper のテストでリポジトリ内の *.rb のファイルを片っぱしからパースする時にファイル名も渡すようにしています。エラー時にどのファイルがエラーになったのかわかるようにするためでしょうか。

usa: r48512 2014-11-20 17:04:29 +0900

拡張ライブラリ psych のテストで正規表現リテラル内の "]" をバックスラッシュでエスケープするようにしています。 どうやら Ripper で parse した時の警告避けみたいです。

kazu: r48513 2014-11-20 22:45:51 +0900

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