[#8530] Enumerable and rand — Koretsugu Daigoro <tmmcross@...>

これつぐです。

21 messages 1999/12/05
[#8534] Re: Enumerable and rand — matz@... (Yukihiro Matsumoto) 1999/12/06

まつもと ゆきひろです

[#8581] Re: [ruby-list:19228] Ruby 1.4.3 — Katsuyuki Komatsu <komatsu@...>

小松です。

19 messages 1999/12/07
[#8592] Re: [ruby-list:19228] Ruby 1.4.3 — matz@... (Yukihiro Matsumoto) 1999/12/07

まつもと ゆきひろです

[#8645] urllib and httplib — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

47 messages 1999/12/14
[#8646] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/14

なひです.

[#8653] Re: urllib and httplib — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#8656] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/15

なひです.

[#8659] Re: urllib and httplib — Wakou Aoyama <wakou@...> 1999/12/15

青山です。

[#8685] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/21

なひです.

[#8687] Re: urllib and httplib — TAKAHASHI Masayoshi <maki@...> 1999/12/21

高橋征義です。

[#8690] Re: urllib and httplib — matz@... (Yukihiro Matsumoto) 1999/12/21

まつもと ゆきひろです

[#8717] Re: urllib and httplib — TAKAHASHI Masayoshi <maki@...> 1999/12/24

高橋征義です。

[#8963] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/01/19

なひです.

[#8650] [PATCH] Ruby/Tk — Koji Arai <JCA02266@...>

新井です。

20 messages 1999/12/14
[#8651] Re: [PATCH] Ruby/Tk — Koji Arai <JCA02266@...> 1999/12/14

新井です。

[#8692] [win] dir name — KANEKO Naoshi <wbs01621@...>

金子です。

22 messages 1999/12/21
[#8695] Re: [win] dir name — Koji Oda <oda@...1.qnes.nec.co.jp> 1999/12/22

小田@QNES です。

[#8741] Re: [ruby-list:19945] Re: array + empty string — Wakou Aoyama <wakou@...>

青山です。

18 messages 1999/12/27
[#8743] Re: [ruby-list:19945] Re: array + empty string — matz@... (Yukihiro Matsumoto) 1999/12/28

まつもと ゆきひろです

[#8742] [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...>

西@九大です。

64 messages 1999/12/27
[#8744] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/28

まつもと ゆきひろです

[#8748] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...> 1999/12/28

西@九大です。

[#8751] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/28

まつもと ゆきひろです

[#8767] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...> 1999/12/29

西@九大です。

[#8777] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/30

まつもと ゆきひろです

[#8791] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Minero Aoki <aamine@...> 1999/12/31

あおきです。

[#8792] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/31

まつもと ゆきひろです

[#8793] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — ARIMA Yasuhiro <fit0298@...> 1999/12/31

有馬です。

[#8795] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Akinori MUSHA aka knu <knu@...> 1999/12/31

 knuです。

[#8798] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 2000/01/01

まつもと ゆきひろです

[#8811] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Akinori MUSHA aka knu <knu@...> 2000/01/03

 knuです。

[ruby-dev:8588] [BUG?] autoloading class (Re: [PATCH] Ruby/Tk and ...)

From: Koji Arai <JCA02266@...>
Date: 1999-12-07 16:14:07 UTC
List: ruby-dev #8588
新井です。

自分で完全に忘れてたのですが、以下の件どう思いますか?

>>> From: Koji Arai <JCA02266@nifty.ne.jp>
>>> Date: 30 Nov 1999 00:52:54 +0900
>>> Subject: [ruby-dev:8445] [PATCH] Ruby/Tk and ...

> 新井です。

> で、ちょっと質問です。上記バグを確認しようと思っていろいろやっ
> てたらよくわからない点がでてきたので。
> 
> $ head -999 hoge*
> ==> hoge.rb <==
> autoload :Hoge, "hoge2.rb"
> require "hoge2.rb"
> 
> class Hoge
>   def hoge
>   end
> end
> p Hoge.instance_methods
> 
> ==> hoge2.rb <==
> class Hoge
>   def hoge2
>   end
> end
> 
> 上記スクリプト(hoge.rbの方)を実行すると
> 
> $ ruby -v hoge.rb 
> ruby 1.4.3 (1999-11-24) [i586-linux]
> hoge.rb:7: warning: already initialized constant Hoge
> ["hoge"]
> 
> となります。["hoge", "hoge2"]を期待してたわけですが・・・

実例を出した方がわかりやすいと思うので、例えばautoload 対象
のクラスにメソッドを追加したい場合に

require "tk"

class TkAfter
  def inspect
    @id
  end
end

p TkAfter.instance_methods

などとやるとメソッド追加ではなくクラス定義になります。これは
直感に反しますよね。ライブラリ利用者にとってautoload なクラ
スかどうかなんて関係ないはずですから。

とりあえず添付のパッチで回避できたのですが、今度は

require "tk"
require "tkafter"

などとするとエラーになります(なるほどパッチで削った箇所はそ
ういうチェックだったのか)。

/usr/local/lib/ruby/1.5/tkafter.rb:296: uninitialized constant TkAfter (NameError)

ちょっと簡単に回避する方法を思いつかなかったので、今日はここ
まで。


--- eval.c.org	Tue Dec  7 23:33:41 1999
+++ eval.c	Tue Dec  7 23:49:52 1999
@@ -2799,8 +2799,7 @@
 	    }
 
 	    klass = 0;
-	    if (rb_shvar_defined_at(ruby_class, node->nd_cname) &&
-		(ruby_class != rb_cObject || !rb_autoload_defined(node->nd_cname))) {
+	    if (rb_shvar_defined_at(ruby_class, node->nd_cname)) {
 		klass = rb_shvar_get(ruby_class, node->nd_cname);
 	    }
 	    if (ruby_wrapper && rb_shvar_defined_at(rb_cObject, node->nd_cname)) {
@@ -2852,9 +2851,7 @@
 		rb_raise(rb_eTypeError, "no outer class/module");
 	    }
 	    module = 0;
-	    if (rb_shvar_defined_at(ruby_class, node->nd_cname) &&
-		(ruby_class != rb_cObject ||
-		 !rb_autoload_defined(node->nd_cname))) {
+	    if (rb_shvar_defined_at(ruby_class, node->nd_cname)) {
 		module = rb_shvar_get(ruby_class, node->nd_cname);
 	    }
 	    if (ruby_wrapper && rb_shvar_defined_at(rb_cObject, node->nd_cname)) {

In This Thread