ruby-trunk-changes r31921 - r31926

date のリファクタリングと tk のコンパイルオプション追加、それからタイマースレッドの動作の変更がありました。

tadf:r31921 2011-06-05 06:25:11 +0900

date (Date/DateTime) の変更について NEWS に追記しています。けっこうたくさんありますね。昨日の変更のぶんだけではなさそう。
で、全然気がついていませんでしたが昨日の変更で Marshal.dump の形式の変更があったので trunk で dump したものは古い ruby で load できなくなっていますね。逆はサポートしているそうですが。

svn:r31922 2011-06-05 06:25:20 +0900

version.h の日付更新。

tadf:r31923 2011-06-05 10:13:19 +0900

拡張ライブラリ date の変更です。 struct tmx で日付情報を保持していたのを削除して、常に関数経由でデコードして取得するように変更しています。

nagai:r31924 2011-06-05 17:23:43 +0900

ext/tk/config_list.in に項目を追加して tk のコンパイルオプションに --enable-(tcl|tk)-h-ver-check や --with-(tcl|tk)-build-dir を追加しているみたいです。

tadf:r31925 2011-06-05 17:53:56 +0900

拡張ライブラリ date の修正です。 cwyear を VALUE で返す m_real_cwyear() というのを m_cwyear() を利用して実装して struct tmx をデコードする時に利用するようにしています。また tmx のデコードが関数になったからでしょうけど、結果を一時変数に格納して使い回すような修正をあちこちでしています。

kosaki:r31926 2011-06-05 21:48:23 +0900

タイマースレッドの処理で native_cond_timedwait() から 0 でかえってきた時にタイマースレッドを停止しないようにしています。 native_stop_timer_thread() で native_cond_signal() で起こした時にすぐに止まらなくなるような気がしますが、ちょっと(最大10ms)待てば結局抜けてくるからそれでいいやということでしょうか。
[追記]と思ったけど native_cond_signal() する時には break しなくても while(system_working > 0) の条件が偽になった時なのですぐに抜けてました。[/追記]