ruby-trunk-changes r34236 - r34249

今日は GC の変更の追随や Integer#chr と文字エンコーディングの関係の修正などがありました。

naruse:r34236 2012-01-09 05:42:45 +0900

Integer#chr で整数から対応する文字コードの文字列に変換する時にエンコーディングにとって不正な数値だった時に例外を発生させるようにしています。また String#concat に整数が渡された時に文字列が US-ASCII で整数が 127以上だったら自動的に ASCII-8BIT に変換するようにしています。また euc_jp と shift_jis のコードポイント判定のエラーコードをエラー時の例外メッセージを変更できるように修正しています。 [ruby-core:41949] [Feature #5855] [ruby-core:41972] [Bug #5863] [ruby-core:41973] [Bug #5864]

svn:r34237 2012-01-09 05:42:50 +0900

version.h の日付更新。

naruse:r34238 2012-01-09 06:02:08 +0900

xmalloc() で確保したメモリを xfree() で解放するようにしたり、逆に malloc() で確保したメモリを free() で解放するようにしたり、鬼車や readline のためのメモリ領域を malloc() で確保するようにしたりといった整理です。
readline.c の修正では rb_mem_error() という関数のようなものを呼んでいるのですがこれの定義がみつからないんですよね。 rb_memerror() の typo らしい。けどコンパイルした readline の拡張ライブラリはロードできるんですよね。もしかして PIE でコンパイルするようにしたので関数呼び出しが GOT テーブル経由になったことでリンクエラーが遅延されるようにんなったんでしょうか。 あと readline.c の rb_raise(rb_eNoMemError, "%s") が引数が足りていないですね。

naruse:r34239 2012-01-09 07:50:59 +0900

i686-linuxposix_memalign を利用するためには #define _XOPEN_SOURCE 600 しておかないといけないそうです。

akr:r34240 2012-01-09 13:02:08 +0900

拡張ライブラリ dbm の rdoc の ndbm についての説明を修正しています。

akr:r34241 2012-01-09 14:09:57 +0900

dbm の rdoc もう少し更新。

nari:r34242 2012-01-09 15:02:01 +0900

GC の free slot を管理するリストを双方向リストから単方向リストに変更しています。

usa:r34243 2012-01-09 19:42:18 +0900

Zlib::GzipWriter.wrap のテストで渡す Tempfile を binmode でバイナリモードに設定しておくようにしています。

akr:r34244 2012-01-09 20:11:24 +0900

Addrinfo#connect_from や connect_to に Addrinfo オブジェクトを渡して動作できるように修正しています。 [ruby-dev:45095] [Bug #5845]

akr:r34245 2012-01-09 20:18:00 +0900

r34244 で Addrinfo を引数として渡した時にプロトコルファミリーとソケット種類とプロトコルが一致することをチェックするようにしていたのですが、プロトコルの一致は要求しないようにしています。

akr:r34246 2012-01-09 20:28:00 +0900

Pathname#entries の rdoc に "." と ".." が含まれることを明記して Pathname#children とう代替を示すようにしています。 [ruby-core:41959] [Bug #5859]

nari:r34247 2012-01-09 20:58:12 +0900

GC の bitmap marking の変更で heap_slot の構造体に実際の slot の配列を連続して確保するように変更していたのですが、このヘッダ部分の free_next が書き換えらるので copy-on-write の影響で slot の部分も複製されてしまうのでやっぱり別途メモリ領域を確保するようにしています。

nagachika:r34248 2012-01-09 23:38:52 +0900

readline.c の rb_mem_error -> rb_memerror の修正と rb_raise(rb_eNoMemError) のメッセージの引数修正。