今日もたくさんのコミットがありました。json の最新版が取り込まれたり、拡張ライブラリ作者は必見の新しい API が追加されていたりといった変更がありました。
さて、昨日の最後が r29998 で今日は r30001 から、きりのいい r30000 がみあたりませんが、 ruby_1_8 のブランチへのコミットで svn さんがゲットされています。svn さんはほぼ毎日、version.h ヘッダの日付更新をまるでロボットのように正確に休みなく務めてくれているコミッタさんです。今日はみんなで svn さんに感謝しましょう。
naruse:r30001 2010-12-02 00:07:35 +0900
Net:HTTP の rdoc の修正。結局 Net::HTTPS のドキュメントも net/http.rb にまとめて書くようにされています。[ruby-core:33469]
svn:r30002 2010-12-02 00:07:36 +0900
version.h の日付更新。
svn さんいつもありがとう!!
naruse:r30004 2010-12-02 01:26:15 +0900
json/common.rb で文字エンコーディング変換のために iconv を使うのをやめて Ruby の String#encode を使うようにしています。これで警告メッセージが出なくなって快適です。
naruse:r30005 2010-12-02 01:40:16 +0900
Net::HTTP のドキュメントの改善もうひとつ。URI.parse() じゃなく URI() の使用例を書くようにしています。#2579
drbrain:r30006 2010-12-02 02:31:20 +0900
Net::HTTP のドキュメントもうひとつ。文章の位置を組み替えたために "following" など前後の指示語の関係がおかしくなっていたので位置を修正。
nobu:r30007 2010-12-02 07:08:41 +0900
tcsetattr(3) が EINTR でかえってくる可能性があるのに対応しています。 [ruby-dev:42666]
nobu:r30008 2010-12-02 07:15:15 +0900
minitest の修正。テストが SIGINT などで割り込まれても途中の結果は表示するように。
なんか、このような修正をだいぶ前にも入れているのを見たような記憶がかすかにありますねー。
nobu:r30009 2010-12-02 07:20:23 +0900
minitest 修正。 --gc-stress オプションをつけると GC.stress = true にしてテストを実行するようになるらしい。
naruse:r30010 2010-12-02 10:03:55 +0900
extmk.rb に $makeflags.defined? の定義を追加。どのリビジョンからかわかりませんが拡張ライブラリのコンパイルがエラーになっていたのでそれを修正しています。
naruse:r30011 2010-12-02 10:12:41 +0900
拡張ライブラリ json のコンパイルで最適化オプションの -O3 をつけているのをやめています。"-O3" オプションが常に利用できるわけじゃないよってことで。必要なら全体を optflags=-O3 とかで configure しましょう。
usa:r30012 2010-12-02 10:20:36 +0900
win32/Makefile.sub で $(RC) コマンドに -nologo オプションを渡しています。$(RC)は定義されている場所がみつからなかったので nmake とかが自動で定義する「リソースコンパイラ」というやつなのでしょう。余計なメッセージの表示を抑制しているようです。
naruse:r30013 2010-12-02 10:46:42 +0900
ext/extmk.rb から $makeflags.defined? を削除しています。$mflags を使うのが正解だったとのこと。
naruse:r30014 2010-12-02 10:46:45 +0900
Net::HTTP#set_form_data で application/x-www-form-urlencoded の body をエンコードするのに独自に実装していたのを URI の実装を利用するようにリファクタリング。
naruse:r30015 2010-12-02 13:33:56 +0900
URI.encode_www_form に渡した Hash (あるいは 2要素の配列の配列などでも OK)の値のほうが to_ary で配列に変換できるオブジェクトだったら、変換して複数のペアに分解する。
つまりこんな感じですね。
URI.encode_www_form({ :key => [0, 1] }) #=> "hoge=0&hoge=1"
naruse:r30016 2010-12-02 13:36:54 +0900
json のテスト(test/json/test_json_rails.rb) で Symbol#to_json を定義しています。
Symbol#to_json は require "json" で定義済みだと思いますが、なぜだろう。消してもテストは動くようですし(@ Ubuntu)。
usa:r30017 2010-12-02 13:42:29 +0900
Windows のコマンドプロンプトからの読み込みのバグへの対処、1バイトずつ読むようにする一時的な対処をしていたのが別の(?) irb での不具合になっていたので修正されています。これが最終版というわけでもないっぽいです。[ruby-core:33511]
usa:r30018 2010-12-02 13:49:28 +0900
r30017 の修正漏れ。
usa:r30019 2010-12-02 15:32:01 +0900
もうひとつ修正漏れ [ruby-core:33513]
akr:r30021 2010-12-02 17:01:24 +0900
bignum.c の関数マクロの引数利用時にかっこでくくられていないところを修正。
天泣記 にマクロ定義を抽出するスクリプトが貼られてたのできっとこれからも1ファイルずつ修正されていくのでしょう。
shyouhei:r30050 2010-12-02 20:06:32 +0900
Ruby の VM に ruby_vm_at_exit という API を追加しています。
これは拡張ライブラリから呼び出して、VM が終了する時にリソースを解放する処理を登録するためのものです。将来的にマルチVMがサポートされるようになれば、VM の終了が必ずしもプロセスの終了を意味しなくなりますから、拡張ライブラリで利用しているリソースを解放しないといけなくなります。そのためのコールバック関数を登録するための API です。 ruby_vm_t * 型の引数を受け取る関数を渡すと RubyVM に登録されて、VM の終了時に呼び出されます。
shyouhei さんのコミットログはいつも詳細で、意図を書いていてくれるので観察者としては助かります。
naruse:r30052 2010-12-02 21:28:42 +0900
enc_alias_internal でエンコーディング名のエイリアスを登録する時にすでにその名前が登録済みだった場合にメモリリークしていたので修正。また最初に登録した時だけ set_encoding_const で定数を定義するようにしています。
naruse:r30053 2010-12-02 21:28:45 +0900
json の json/add/rails.rb ファイルを削除しています。明示的に require しなければロードされないファイルだったみたいですね。