ruby-trunk-changes r29832 - r29843

今日は Make:Tokyo Meeting や RailsDevCon などイベントがありましたが、体力を回復するべくゆっくり寝てました。おかげで風邪はだいぶよくなりました。そういえば今年は RubyKaigi2010 も急遽行けなくなったので、まったくカンファレンスやイベントに参加してないなー。

nobu:r29832 2010-11-19 20:26:54 +0900

optparse.rb (OptionParser) を使ってコマンドラインオプション解析を行なっているプログラムのオプションが bash でタブによる補完が効くようにしています。
追加されている misc/rb_optparse.bash を読み込んで rb_optparse に OptionParser を使っているコマンド名を引数として rb_optparse を呼ぶことで補完がきくようになります。~/.bashrc に設定を書いておきましょう。
どうなってるかというと、コマンドに --help=complete=<オプションの一部> というオプションを渡すと候補一覧が標準出力に1行ずつ出力されるようになっていて、それを利用しています。

nobu:r29833 2010-11-19 20:26:57 +0900

r29832 の ChangeLog への記載です。

nobu:r29834 2010-11-19 21:07:09 +0900

同じく OptionParser を利用しているコマンドの補完機能の zsh 版です。
今度は misc/rb_optparse.zsh をロードしてから

$ generate-complete-function/ruby/optparse COMMAND1

のように一度だけ実行しておけば後は補完が効きます(~/.zshrc で compinit を呼んでいる必要があるかもしれません)。zsh は補完候補の設定をファイルに記載して置いておくディレクトリがあるので、一度そこにファイルをインストールすれば起動ごとに rb_optparse.zsh を読み込む必要はありません。
というか、zsh の関数には "/" を含めることができるんですね、初めて知りました。

kou:r29835 2010-11-19 22:11:20 +0900

r29827 で REXML::Formatters::Pretty#wrap の再帰をループに変更してスタックオーバフローを回避した時のテストがメモリを大量に消費してしまうので、メモリが足りなくてパースすらできないような時は skip するようにしているそうです。

nobu:r29836 2010-11-19 22:43:14 +0900

ChangeLog の段組のインデント修正のみです。

nobu:r29837 2010-11-19 22:44:06 +0900

cygwin/GNUmakefile.in と win32/Makefile.sub で *.rc ファイルを distclean の時に削除していたのを clean で削除するように変更しています。

nobu:r29838 2010-11-19 22:58:13 +0900

r29836 で ChangeLog のインデント修正した時に行頭の文字が削れてしまっていたので修復。

nobu:r29839 2010-11-19 23:05:50 +0900

win32/Makefile.sub でダブルクオート内のバックスラッシュをエスケープのぶんを書いていたのを1つにしています。Windowsコマンドプロンプトではダブルクオート内のバックスラッシュはエスケープにはならないんですね、どうやら。

arton:r29840 2010-11-20 02:05:39 +0900

comple.o の依存ファイルに insns.inc を追加しています。

svn:r29841 2010-11-20 02:05:40 +0900

version.h の日付更新。

tenderlove:r29842 2010-11-20 07:47:20 +0900

mkmf.rb で生成する MakefileObjective-C, Objective-C++ による拡張ライブラリへの対応を追加しています。元々それっぽいコードはあったけどうまく動いていなかったみたいですね。Objective-C で CRuby の拡張ライブラリを書けるんですね!まあ C 互換性あるので GC をつけたりしなければできるか。

nobu:r29843 2010-11-20 12:04:59 +0900

現象確認する前に更新してしまったのでどんなことがおきてたのか確認していませんが、Random#rand で (-Float::Max..Float::Max) を渡すとオーバフローが発生して期待しない結果になっていたのを修正したようです。