ruby-trunk-changes r51798 - r51815

今日は ruby に did_you_mean.gem が組み込まれて自動的にロードされ、変数名やメソッド名、定数名を typo した時の NameError のメッセージで似た名前の候補を提示するようになりました。また Thread#kill された時などに popen で開いた pipe を閉じるのに子プロセスの終了を待たなくなる変更などがありました。

nobu: r51798 2015-09-08 23:09:30 +0900

popen で開いた pipe を閉じる時に、カレントスレッドが kill されている場合は waitpid に WNOHANG フラグを追加して子プロセスの終了を待たないようにしています。 [ruby-core:70671] [Bug #11510]
うーん、これはそういうものなんですかねぇ。なんとなくはやく止めたいなら止めたいで signal などで子プロセスを終了させるなどするほうがいいような気もしますが(signal は移植性に欠けるというのはありそうですが)。

nagachika: r51799 2015-09-08 23:25:56 +0900

r51797 のテストメソッド名の typo 修正。

yuki: r51800 2015-09-08 23:32:00 +0900

r51795 のリベンジで did_you_mean-1.0.0.beta2 を gems/bundled_gems に追加しています。

hsbt: r51801 2015-09-09 07:46:43 +0900

rubygems を最新版に更新しています。 gem パッケージのライセンスのチェックなどの機能追加の他、ドキュメントの追記や不具合修正などが行われているようです。詳細は rubygemsHistory.txt を参照してください。 https://github.com/rubygems/rubygems/blob/master/History.txt

svn: r51802 2015-09-09 07:47:16 +0900

version.h の日付更新。

svn: r51803 2015-09-09 07:47:16 +0900

r51801 の新規追加ファイルの svn property を設定。

hsbt: r51804 2015-09-09 10:05:47 +0900

rubygems のテストで Windows 環境で実行形式ファイルの拡張子により失敗していたものを修正しています。

usa: r51805 2015-09-09 11:10:46 +0900

.travis.yml に make after-update を追加して、bundled gems のダウンロードなどの更新処理を行うようにしています。

zzak: r51806 2015-09-09 11:12:52 +0900

標準添付ライブラリ delegate で例外発生時のバックトレースから delegate.rb 自身のスタックを削除する処理をやめています。ベンチマークがあるので速度面が動機だったみたいですけど、利便性という意味でもこういうバックトレースを弄るのって混乱を招くのであんまり良くないと思うんですよね。 [Bug #11461]

usa: r51807 2015-09-09 11:20:42 +0900

r51805 の .travis.yml の変更に BASERUBY の指定を追加しています。

usa: r51808 2015-09-09 11:34:39 +0900

r51805 と r51807 の追加修正で make update-gems は $(RUNRUBY) ではなく $(BASERUBY) を利用するようにしています。

nobu: r51809 2015-09-09 11:40:02 +0900

r51798 の変更のための対応だと思いますが io.c で WNOHANG のために #include を追加しています。 BSD で必要だったそうです。

usa: r51810 2015-09-09 11:52:27 +0900

r51798 で追加した popen のテストでオプションに pgroup: true を使っていましたが、これは Windows では利用できないので削るようにしています。

usa: r51811 2015-09-09 11:57:58 +0900

r51798 と r51810 の続きで popen のテストでオプションに Windows 環境ではかわりに new_pgroup: true を使うようにしています。 Windows 版には :new_pgroup というオプションがあるのか〜。これ統合したら…と思ってドキュメントをみてみると :pgroup には pgid の数値を渡すことができるという微妙な違いがあるみたいでした。まあこのあたりはプラットフォーム依存でしかたないですよね。

nobu: r51812 2015-09-09 13:38:58 +0900

tool/extlibs.rb で現状 fiddle のためのライブラリを取得してきてパッチを当てるために使われているツールで patch コマンドを実行するのに -d と -i オプションを使ってカレントディレクトリとパッチファイルを指定するようにして、Process.spawn のオプションで chdir と標準入力からのパッチ入力するのをやめています。

usa: r51813 2015-09-09 16:57:31 +0900

r51800 で bundled gem としてパッケージに含まれることになった did_you_mean.gem ですが require しないと読み込まれなかったので、gem_prelude.rb で起動時に require "did_you_mean" して自動的に読み込まれるようにしています。またこの起動時の自動ロードを抑制する --disable-did_you_mean オプションも追加されています。

usa: r51814 2015-09-09 18:18:47 +0900

r51813 の did_you_mean の自動ロードで $. の行番号のテストが失敗していたので、rubygems で require 時の $. をバックアップ/リストアするようにしています。 did_you_mean が $. を操作しているんでしょうか?

usa: r51815 2015-09-09 19:07:08 +0900

r51813 の ChangeLog エントリのオプション名の typo 修正。