From: Akinori MUSHA Date: 2006-11-26T19:20:06+09:00 Subject: [ruby-dev:29953] changing the definition of RUBY_VERSION_CODE  現在、 RUBY_VERSION_CODE は 185 のような三桁の値に定義されて いますが、今回の patchlevel の導入に呼応して以下のように定義を 変更したいです。いかがでしょうか。 #define RUBY_VERSION_CODE (10000UL * (100 * RUBY_VERSION_MAJOR + \ 10 * RUBY_VERSION_MINOR + RUBY_VERSION_TEENY) + \ RUBY_VERSION_PATCHLEVEL)  動機は、バージョンを示す一意なシリアル値があるのが望ましく、 RUBY_VERSION_CODE がそうであってほしいということです。(それぞれ 10の何乗倍するかは要検討)  互換性ですが、 Ruby レベルでは、この定数は露出していないので 問題ないと思います。これを機に Ruby にも見せたいです。  C レベルでは、「#if RUBY_VERSION_CODE >= 185」のような過去の 値との比較は問題ありませんが、「#if RUBY_VERSION_CODE < 190」の ような未来の値に関しては壊れてしまいます。これについては: - 1.9 を視野に入れているくらいなので変更に追従してください - そもそもCレベルで RUBY_VERSION_CODE などに頼らないでください (extconf.rb でいくらでも機能をチェックできるんだから) ということでどうでしょう。ちなみに手元で検索したところ、180より 大きな値と比較している例はほとんどありませんでした。(数例) -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "Different eyes see different things, Different hearts beat on different strings -- But there are times for you and me when all such things agree"