[#8468] require で SEGV — ruby <g96p0935@...>
西本です。
[#8469] [PATCH] -s command line option — nobu.nakada@...
なかだです。
[#8507] mode_t in file.c — Katsuyuki Komatsu <komatsu@...>
小松です。
[#8530] Enumerable and rand — Koretsugu Daigoro <tmmcross@...>
これつぐです。
まつもと ゆきひろです
これつぐです。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
ごとけんです
これつぐです。
[#8565] interface declaretion — "Dai.K." <MAP2303@...>
[#8581] Re: [ruby-list:19228] Ruby 1.4.3 — Katsuyuki Komatsu <komatsu@...>
小松です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
小松です。
まつもと ゆきひろです
小松です。
[#8622] Win32API (Re: Ruby 1.4.3 binaries for Cygwin and DJGPP) — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
有馬@FITECです。
よしだです
[#8623] [BUG?] core dump `ruby -r debug' — IWAMURO Motonori <iwa@...>
岩室@富士通です。
[#8635] slow gsub — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
[#8645] urllib and httplib — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
なひです.
高橋征義です。
なひです.
まつもと ゆきひろです
なひです.
青山です。
なひです.
高橋征義です。
まつもと ゆきひろです
高橋征義です。
なひです.
西@九大です。
なかだです。
あおきです。
[#8650] [PATCH] Ruby/Tk — Koji Arai <JCA02266@...>
新井です。
新井です。
新井です。
新井です。
永井@知能.九工大です.
新井です。
永井@知能.九工大です.
新井です。
新井です。
[#8665] [mswin32] STDERR does not work during `_function. — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです.
金子です。
金子です。
[#8667] make symlinks around libruby.so in instruby.rb — akira yamada / やまだあきら <akira@...>
[#8692] [win] dir name — KANEKO Naoshi <wbs01621@...>
金子です。
小田@QNES です。
えぐち@エスアンドイー です。
小田@QNES です。
えぐち@エスアンドイー です。
なかだです。
小田@QNES です。
えぐち@エスアンドイー です。
小田@QNES です。
[#8705] [mswin32] 100% CPU usage when use sleep — Katsuyuki Komatsu <komatsu@...>
小松です。
まつもと ゆきひろです
小松です。
[#8722] [mswin32] Win32API — KANEKO Naoshi <wbs01621@...>
金子です。
小松です。
まつもと ゆきひろです
[#8741] Re: [ruby-list:19945] Re: array + empty string — Wakou Aoyama <wakou@...>
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#8742] [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...>
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
西@九大です。
あおきです。議論も好き。
西@九大です。
あおきです。
まつもと ゆきひろです
有馬です。
knuです。
まつもと ゆきひろです
これつぐです。
knuです。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
In message "[ruby-dev:8792] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num)"
まつもと ゆきひろです
ごとけんです
ごとけんです
なかだです。
ごとけんです
[ruby-dev:8588] [BUG?] autoloading class (Re: [PATCH] Ruby/Tk and ...)
新井です。
自分で完全に忘れてたのですが、以下の件どう思いますか?
>>> 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)) {