[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

けいじゅ@いしつかです.

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30668] Re: ロード済み拡張ライブラリの判別

From: "Nobuyoshi Nakada" <nobu@...>
Date: 2007-03-22 08:25:28 UTC
List: ruby-dev #30668
なかだです。

At Wed, 21 Mar 2007 17:44:19 +0900,
arton wrote in [ruby-dev:30657]:
> Exerbのコアに1.8.6を利用しようとして気づいたのですが、拡張ライブラリがロー
> ド済みかどうか、Cプログラムから判断するための関数が1.8.6ではなくなってい
> るように思います(他の方法があるのかも知れないので断定できないです)。
> 代わりとなるexternな関数はないでしょうか?

[ruby-dev:30434]で
> (2) rb_provided()は拡張ライブラリについてはあきらめる
>
> rb_provided()はautoload関連でしか使われていないので、とりあえず
> は(2)でいいのではないかと思います。
と書いたとおり、exerbについては考えていませんでした。

> 以前は、Exerbからロードした拡張ライブラリをrb_preloadでRuby側に登録して、
> 登録済みかどうかをrb_preloadedで判断していました。

rb_provide()とrb_provided()ですよね?

rb_provide("extension.so") のあとに、rb_provided("extension.so")
と拡張ライブラリであることを明示してもfalseが返るということであ
れば、バグだと思います。


Index: eval.c
===================================================================
--- eval.c	(revision 12122)
+++ eval.c	(working copy)
@@ -7018,5 +7018,6 @@ rb_provided(feature)
 	}
 	else if (IS_SOEXT(ext) || IS_DLEXT(ext)) {
-	    return Qfalse;	/* may be overriden by .rb file */
+	    if (rb_feature_p(feature, ext, Qfalse)) return Qtrue;
+	    return Qfalse;
 	}
     }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread