Issue #5053 has been reported by Makoto Kishimoto. ---------------------------------------- Feature #5053: ruby コマンドと libruby の食い違いチェック http://redmine.ruby-lang.org/issues/5053 Author: Makoto Kishimoto Status: Open Priority: Low Assignee: Category: core Target version: 1.9.x ビルドした ruby を、インストールせずに、ビルドディレクトリで ./ruby のように実行すると、実行する ruby コマンドと、ロードされる libruby でバージョンが食い違うことがありますが、その警告というのは(バイナリライブラリに互換性がないバージョンだったりしなければ)特に出たりしません たまにはまることがあるので、main.c 中で RUBY_DESCRIPTION マクロと、グローバル変数 ruby_description で一致するかどうかを調べて、違うようならウォーニングを出す、というパッチです (※基本的なアイディアはえぐちさんによるものです)
on 2011-07-19 07:20
on 2011-07-19 12:00
> ビルドした ruby を、インストールせずに、ビルドディレクトリで ./ruby のように実行すると、実行する ruby コマンドと、ロードされる libruby でバージョンが食い違うことがありますが、その警告というのは(バイナリライブラリに互換性がないバージョンだったりしなければ)特に出たりしません > たまにはまることがあるので、main.c 中で RUBY_DESCRIPTION マクロと、グローバル変数 ruby_description で一致するかどうかを調べて、違うようならウォーニングを出す、というパッチです > (※基本的なアイディアはえぐちさんによるものです) ./configure --program-suffix=hogehoge とかしても librubyは上書きされて消えてしまうので、 以前すごくイライラした記憶があるんですけど、そもそもlibrubyにバージョン番号か、 program suffixをつけるべきな気がしてるんですよね。 衝突を検知するよりも、衝突しない方向に頑張る方が前向きな気がするんですよ。はずしてるかなぁ
on 2011-07-19 14:04
$B$-$7$b$H$G$9(B > ./configure --program-suffix=hogehoge $B$H$+$7$F$b(B libruby$B$O>e=q$-$5$l$F>C$($F$7$^$&$N$G!"(B > $B0JA0$9$4$/%$%i%$%i$7$?5-21$,$"$k$s$G$9$1$I!"$=$b$=$b(Blibruby$B$K%P!<%8%g%sHV9f$+!"(B > program suffix$B$r$D$1$k$Y$-$J5$$,$7$F$k$s$G$9$h$M!#(B > > $B>WFM$r8!CN$9$k$h$j$b!">WFM$7$J$$J}8~$K4hD%$kJ}$,A08~$-$J5$$,$9$k$s$G$9$h!#$O$:$7$F$k$+$J$!(B FreeBSD $B$@$H(B ruby18 $B$H(B ruby19 $B$H$$$&(B ports $B$K$J$C$F$^$9$,!"(B1.8.? $B$G$O(B "libruby18.so" $B!"(B1.9.? $B$G$O(B "libruby.so" $B$H$$$&L>A0$K$J$k$N$G(B $B$?$^$?$^(B /usr/local/lib $B$K6&B8$G$-$F$?$j$7$F$^$9!#(B r23368 $B$h$jA0$G$O!"(Bconfigure.in $B$G(B RUBY_SO_NAME='$(RUBY_INSTALL_NAME)' $B$H$J$C$F$$$k$N$G!"(Bprogram suffix$B$,1F6A$9$k$o$1$G$9$M!#(Br23368 $B$NJQ99$O(B [ruby-dev:38241] $B$+$i$N5DO@$N7k2L$K$h$k$b$N$N$h$&$G$9!#(B
on 2011-07-20 03:15
Issue #5053 has been updated by Usaku NAKAMURA. パッチがこれでいいかどうかは確認してませんが、このチェックを入れることには 賛成します。 # 個人的には警告でなくエラーでいいと思う。 回避の努力自体はもうそれなりに入ってるので、それはそれ、これはこれ、 ということで。 ---------------------------------------- Feature #5053: ruby コマンドと libruby の食い違いチェック http://redmine.ruby-lang.org/issues/5053 Author: Makoto Kishimoto Status: Open Priority: Low Assignee: Category: core Target version: 1.9.x ビルドした ruby を、インストールせずに、ビルドディレクトリで ./ruby のように実行すると、実行する ruby コマンドと、ロードされる libruby でバージョンが食い違うことがありますが、その警告というのは(バイナリライブラリに互換性がないバージョンだったりしなければ)特に出たりしません たまにはまることがあるので、main.c 中で RUBY_DESCRIPTION マクロと、グローバル変数 ruby_description で一致するかどうかを調べて、違うようならウォーニングを出す、というパッチです (※基本的なアイディアはえぐちさんによるものです)
on 2011-07-20 06:48
Issue #5053 has been updated by Makoto Kishimoto. コンパイルした時刻のunix timeを埋め込んで、とかいうのも考えましたが、 そうするとちょっとオーバーキルかな、と思いました ---------------------------------------- Feature #5053: ruby コマンドと libruby の食い違いチェック http://redmine.ruby-lang.org/issues/5053 Author: Makoto Kishimoto Status: Open Priority: Low Assignee: Category: core Target version: 1.9.x ビルドした ruby を、インストールせずに、ビルドディレクトリで ./ruby のように実行すると、実行する ruby コマンドと、ロードされる libruby でバージョンが食い違うことがありますが、その警告というのは(バイナリライブラリに互換性がないバージョンだったりしなければ)特に出たりしません たまにはまることがあるので、main.c 中で RUBY_DESCRIPTION マクロと、グローバル変数 ruby_description で一致するかどうかを調べて、違うようならウォーニングを出す、というパッチです (※基本的なアイディアはえぐちさんによるものです)
on 2011-07-20 07:06
In message <redmine.journal-19373.20110720134723@ruby-lang.org> on Wed, 20 Jul 2011 13:47:24 +0900, Makoto Kishimoto <redmine@ruby-lang.org> wrote: > Issue #5053 has been updated by Makoto Kishimoto. > > > $B%3%s%Q%$%k$7$?;~9o$N(Bunix time$B$rKd$a9~$s$G!"$H$+$$$&$N$b9M$($^$7$?$,!"(B > $B$=$&$9$k$H$A$g$C$H%*!<%P!<%-%k$+$J!"$H;W$$$^$7$?(B $BF1$8%=!<%9%3!<%I$+$i:n@.$5$l$k8B$j!"%3%s%Q%$%k$7$?F|;~$K4X$o$i$:F1$8(B $B<B9T%U%!%$%k$H$J$C$?J}$,4r$7$$$H;W$$$^$9!#(B
on 2011-07-20 08:42
Issue #5053 has been updated by Makoto Kishimoto. 同じソースでも違うバイナリになることも問題かと思いますが、一種の個体追跡 (CPUの個体IDのような)のようなことに使えるのも問題かなと思いました。 ソースコードのとバイナリの同一性を重視するのであれば、指定したファイルの ハッシュ値とかになるでしょうかね? ---------------------------------------- Feature #5053: ruby コマンドと libruby の食い違いチェック http://redmine.ruby-lang.org/issues/5053 Author: Makoto Kishimoto Status: Open Priority: Low Assignee: Category: core Target version: 1.9.x ビルドした ruby を、インストールせずに、ビルドディレクトリで ./ruby のように実行すると、実行する ruby コマンドと、ロードされる libruby でバージョンが食い違うことがありますが、その警告というのは(バイナリライブラリに互換性がないバージョンだったりしなければ)特に出たりしません たまにはまることがあるので、main.c 中で RUBY_DESCRIPTION マクロと、グローバル変数 ruby_description で一致するかどうかを調べて、違うようならウォーニングを出す、というパッチです (※基本的なアイディアはえぐちさんによるものです)
on 2012-02-07 07:37
Issue #5053 has been updated by Kenta Murata. 同じソースでもコンパイルオプションを変えれば異なるバイナリが生成される可能性は十分ありますから、ソースの同一性だけでは判定できない気がします。 ---------------------------------------- Feature #5053: ruby コマンドと libruby の食い違いチェック https://bugs.ruby-lang.org/issues/5053 Author: Makoto Kishimoto Status: Open Priority: Low Assignee: Category: core Target version: 2.0.0 ビルドした ruby を、インストールせずに、ビルドディレクトリで ./ruby のように実行すると、実行する ruby コマンドと、ロードされる libruby でバージョンが食い違うことがありますが、その警告というのは(バイナリライブラリに互換性がないバージョンだったりしなければ)特に出たりしません たまにはまることがあるので、main.c 中で RUBY_DESCRIPTION マクロと、グローバル変数 ruby_description で一致するかどうかを調べて、違うようならウォーニングを出す、というパッチです (※基本的なアイディアはえぐちさんによるものです)
on 2012-03-25 10:16
Issue #5053 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to tarui (Masaya Tarui) ---------------------------------------- Feature #5053: ruby コマンドと libruby の食い違いチェック https://bugs.ruby-lang.org/issues/5053#change-25155 Author: metanest (Makoto Kishimoto) Status: Assigned Priority: Low Assignee: tarui (Masaya Tarui) Category: core Target version: 2.0.0 ビルドした ruby を、インストールせずに、ビルドディレクトリで ./ruby のように実行すると、実行する ruby コマンドと、ロードされる libruby でバージョンが食い違うことがありますが、その警告というのは(バイナリライブラリに互換性がないバージョンだったりしなければ)特に出たりしません たまにはまることがあるので、main.c 中で RUBY_DESCRIPTION マクロと、グローバル変数 ruby_description で一致するかどうかを調べて、違うようならウォーニングを出す、というパッチです (※基本的なアイディアはえぐちさんによるものです)
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.