ruby-trunk-changes r34682 - r34695

今日も dbm のヘッダとライブラリのチェックの強化などがありました。

akr:r34682 2012-02-19 00:31:09 +0900

拡張ライブラリ dbm のヘッダとライブラリのチェックの修正です。 ヘッダに _GDB_H_ マクロの宣言があったら libgdbm ではなくて libgdbm_compat を選択したいので gdbm の時はチェックを弾くようにしています。

svn:r34683 2012-02-19 00:31:13 +0900

version.h の日付更新。

nobu:r34684 2012-02-19 00:41:59 +0900

regcomp.c の未使用の static 関数のコメントアウトと regexec.c の条件コンパイルの条件によって未使用になる変数の宣言位置の移動などコンパイラの警告除去をしています。

akr:r34685 2012-02-19 01:06:52 +0900

拡張ライブラリ dbm のヘッダのチェックです。 gdbm 1.8.3 までの dbm_clearerror() というマクロは実体が空だったのでこれを用いて ndbm.h のバージョンを検出して、r34682 で gdbm_compat を優先させるために弾くのは gdbm が新しいバージョンの時だけにするようにしています。

akr:r34686 2012-02-19 03:01:02 +0900

r34673 で追加した dbm の作るファイルの拡張子をチェックするテストで、先に DBM#close でファイルを閉じてバッファを書き出しておいて、ファイルの先頭部分の magic number までチェックするようにしています。

akr:r34687 2012-02-19 03:05:24 +0900

r34686 の整数の書き方を少し変更しているだけです。

nobu:r34688 2012-02-19 10:51:05 +0900

regparse.c の未使用変数の削除と変数の型の修正などコンパイラの警告除去です。

nari:r34689 2012-02-19 12:07:59 +0900

gc_clear_mark_on_sweep_slots() で GC の mark 用の bitmap をクリアするだけでなく解放処理までする slot_sweep() を呼んでしまうようにしています。 [ruby-core:42672] での Nokogiri での不正な解放の対策として入れられたようですが、これは後に revert されています。こうすると LazySweep ではなくなってしまうってことですよね。

nari:r34691 2012-02-19 13:11:19 +0900

r34689 で不要になった変数の宣言を削除しています。これも後で一緒に revert されてます。

nobu:r34692 2012-02-19 15:36:45 +0900

enc/mktable.c の ENC_INFO という構造体のメンバの型を char * から const char * に変更しています。コンパイラの警告除去のため。

akr:r34693 2012-02-19 17:08:37 +0900

dbm のファイルの拡張子&ファイルの内容のマジックナンバーなどのチェックをしているテストで 4.3BSD ndbm の時に .pag ファイルと .dir ファイルが空っぽであることをチェックしています。えっ、空っぽ?

akr:r34694 2012-02-19 17:33:01 +0900

同じく dbm のテストで他の条件の時にファイルが空でないことをチェックする assertion を追加しています。

nari:r34695 2012-02-19 19:18:16 +0900

r34689 と r34691 を revert しています。 どうやらこれを入れると SEGV などしていたようです。