ruby-trunk-changes r31216 - r31223

今日も引き続き定数の探索と class_eval/module_eval の関係の修正がありました。それに伴なってテストの書き換えもあったので、今の挙動に依存しているライブラリなどがないかちょっと不安ですね。Rails とか大丈夫でしょうか。

nobu:r31216 2011-03-30 22:48:32 +0900

date 拡張ライブラリの timev.h はソースツリーのトップレベルに存在するヘッダファイルを include するようにして ext/date の下のファイルは削除しています。

nobu:r31217 2011-03-30 22:54:26 +0900

misc/ruby-mode.el の修正です。elisp はさっぱりわかりませんが勘によると ruby-beginning-of-block で後方のブロックを検索してジャンプした時にブロックの開始記号の前に移動するようにしているようです。
ところで ruby-move-to-block 内の orig という変数は setq されているだけで特に利用されていないように見えるのですが消し忘れとかでしょうか? (setq eol orig) するところで使っていたようです。

nobu:r31218 2011-03-30 22:55:50 +0900

ruby-mode.el に ruby-toggle-block という関数を追加しています。キーバインドは "C-c{"。これはブロックの do ... end 記法と { ... } 記法を切り替えるものみたいです。

shugo:r31219 2011-03-31 14:54:34 +0900

Module.constants で現在のスコープの定数リストを取得する際に class_eval/module_eval の cref(NODE_FL_CREF_PUSHED_BY_EVAL ビットフラグが付いているもの)を無視するようにしています。

svn:r31220 2011-03-31 14:54:37 +0900

version.h の日付更新。

shugo:r31221 2011-03-31 16:52:40 +0900

定数を探索する vm_get_ev_const() で cref の探索(静的スコープからの探索)で見付からなかった時に self.class の継承関係を辿って探索する時の起点にする root_cref 変数の初期化を最初にするようにしています。

shugo:r31222 2011-03-31 18:07:42 +0900

そして r31221 の修正だと途中に現われた NODE_FL_CREF_PUSHED_BY_EVAL ビットフラグ付きの cref をスキップする処理まで一緒に消されてしまったので、それだけ戻しています。

akr:r31223 2011-03-31 20:42:23 +0900

ext/strscan/strscan.c の関数マクロの引数にかっこをつける修正です。