Ruby 1.8.6 preview2 has been released


#1

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

 1.8.5リリース以降見つかった数多くのバグの修正とライブラリの更新、
一部のパフォーマンスの改善を含みます。

 ソースファイルは以下のURLで取得できます。

ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-preview2.tar.gz

チェックサム:
MD5 (ruby-1.8.6-preview2.tar.gz) = 64504fe5807b9e1779a8a322bba49f63
SHA1 (ruby-1.8.6-preview2.tar.gz) =
177615211c3b4e44b49f0bd257aae740113bfcbb
SHA256 (ruby-1.8.6-preview2.tar.gz) =
62d5c55c0cc157a08bfd3cd94037a44f6e8b689d4386cfdaaa1a68789ef2e136
SHA384 (ruby-1.8.6-preview2.tar.gz) =
a72c127976361389f35c45d02db166a08664198255a39e621f084dadbc8968ff28b787d0c7717d2e2fffb5e4fef26f33
SHA512 (ruby-1.8.6-preview2.tar.gz) =
22bf52382a88d6388973a45abb7d1d9a9073989506f1274da1963b9bf9da0e135cacd1743d685afa764b928a57de8f12a19aed9c520a7dbd0d58e4d4c56a7c3c
RMD160 (ruby-1.8.6-preview2.tar.gz) =
51f7be3198798c8675637fb8a24f4ed8502fffc4
Tiger (ruby-1.8.6-preview2.tar.gz) =
c01ad7e5112677720ce40c78db59b56bf82e75aad047d7e2
Whirlpool (ruby-1.8.6-preview2.tar.gz) =
5f9660b95c3c3d7692807b9058f67b47e36b20e1021edc2fc09e9ec541cc7c1abd3f2104fa66048534aafd0759327208681296702afe84dc6814b7467561762c
SIZE (ruby/ruby-1.8.6-preview2.tar.gz) = 4535884

ã€€ãƒ†ã‚¹ãƒˆã—ã¦ã¿ã¦å•é¡Œã‚’ç™ºè¦‹ã•ã‚ŒãŸã‚‰ã€ãŠæ—©ã‚ã«ã”å ±å‘Šãã ã•ã„ã€‚

 最終リリースは一週間後を予定しています。

 よろしくお願いします。


/
/__ __ 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”


#2

e$B$H$_$?$G$9!#e(B

On Sun, 25 Feb 2007 00:28:34 +0900
“Akinori MUSHA” removed_email_address@domain.invalid wrote:

e$B!!e(BRuby 1.8.6 preview2 e$B$r%j%j!<%9$7$^$7$?!#e(B
e$B!A!Ae(B
e$B!!%F%9%H$7$F$_$FLdBj$rH/8+$5$l$?$i!"$*Aa$a$K$4Js9p$/$@$5$$!#e(B

[ruby-dev:30400] e$B$r$*4j$$$7$^$9!#e(B


#3

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: “Akinori MUSHA” removed_email_address@domain.invalid
Subject: [ruby-dev:30408] Ruby 1.8.6 preview2 has been released
Date: Sun, 25 Feb 2007 00:28:34 +0900
Message-ID: removed_email_address@domain.invalid

e$B!!e(BRuby 1.8.6 preview2 e$B$r%j%j!<%9$7$^$7$?!#e(B
(snip)
e$B!!%F%9%H$7$F$_$FLdBj$rH/8+$5$l$?$i!"$*Aa$a$K$4Js9p$/$@$5$$!#e(B

$SAFE==0 e$B$J$I$Ge(B autoload e$B$,E,@Z$K@_Dj$5$l$F$$$k>l9g!$e(B
$SAFE e$B$NCM$KL54X78$K$-$A$s$He(B load e$B$5$l$k$Y$-$H;W$$$^$9$7!$e(B
e$B;v<B!$$3$l$^$G$O$=$N$h$&$KF/$$$F$$$?$N$G$9$,!$e(B
20070219 e$B$Ne(B commit
e$B$N7k2L!$$&$^$/5!G=$7$J$$$h$&$K$J$C$F$$$^$9!%e(B

e$BNc$($Pe(B $SAFE==0 e$B$Ge(B require ‘tk’
(e$BF1;~$K3F%&%#%8%’%C%H%/%i%9$K$D$$$F$Oe(B
autoload e$B$,@_Dj$5$l$^$9e(B) e$B$7$?8e!$e(B$SAFE==4
e$B$G$$$:$l$+$N%&%#%8%’%C%H$re(B
e$B;HMQ$7$h$&$H$7$Fe(B autoload e$B$,F/$/$He(B SecurityError
e$B$K$J$j$^$9!%e(B
e$B$3$N$^$^e(B Ruby 1.8.6 e$B$H$7$F%j%j!<%9$5$l$F$7$^$&$H!$e(B
e$BI,MW$J%&%#%8%’%C%H%/%i%9$@$1$re(B load
e$B$9$k$?$a$K%U%!%$%k$rJ,3d$7$F$$$ke(B
Ruby/Tk e$B$K$H$C$F$O!$6K$a$F:$$C$?;EMMJQ99$H$J$C$F$7$^$$$^$9!%e(B

e$B<h$j5^$.$NJs9p$N$$G$9$$^$;$s$,!$$h$m$7$/$*4j$$$7$^$9!%e(B


#4

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

e$BJdB->pJs$G$9!%e(B

From: Hidetoshi NAGAI removed_email_address@domain.invalid
Subject: [ruby-dev:30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6
preview2 has been released)
Date: Sun, 25 Feb 2007 18:41:16 +0900
Message-ID: removed_email_address@domain.invalid

e$BNc$($Pe(B $SAFE==0 e$B$Ge(B require ‘tk’ (e$BF1;~$K3F%&%#%8%’%C%H%/%i%9$K$D$$$F$Oe(B
autoload e$B$,@_Dj$5$l$^$9e(B) e$B$7$?8e!$e(B$SAFE==4 e$B$G$$$:$l$+$N%&%#%8%’%C%H$re(B
e$B;HMQ$7$h$&$H$7$Fe(B autoload e$B$,F/$/$He(B SecurityError e$B$K$J$j$^$9!%e(B

$ ruby -r tk -e ‘Thread.new{$SAFE=4; TkButton.new}.value’
e$B$GMF0W$K:F8=$G$-$k$H;W$$$^$9!%e(B

rb_autoload_load() e$B$Ne(B if e$B@a$N>r7oH=CGIt$Ge(B rb_provided()
e$B$re(B
e$B8F$s$G$$$^$9$,!$$3$N;~E@$G$Oe(B $SAFE=4 e$B$N$^$^$G$9!%e(B
rb_provided() e$B$NJQ99$Ge(B search_required()
e$B$r8F$V$h$&$K$J$C$?7k2L!$e(B
$SAFE=4 e$B$Ge(B search_required() e$B$r8F$s$G$7$^$&$?$a!$e(B
SecurityError e$B$GMn$A$k$H$$$&$3$H$N$h$&$G$9$M!%e(B

e$B$G$9$N$G!$e(Brb_autoload_load() e$B$NLdBjItJ,$re(B

if (!load || !(file = load->nd_lit)) {
  int saved_safe = ruby_safe_level;
  int st;
  ruby_safe_level = load->nd_nth;
  st = rb_provided(RSTRING(file)->ptr);
  ruby_safe_level = saved_safe;
  if (st) return Qfalse;
}

#5

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: Nobuyoshi N. removed_email_address@domain.invalid
Subject: [ruby-dev:30418] Re: fail to autoload at $SAFE==4 (Re: Ruby
1.8.6 preview2 has been released)
Date: Mon, 26 Feb 2007 00:35:52 +0900
Message-ID:
removed_email_address@domain.invalid

At Sun, 25 Feb 2007 18:41:16 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30414]:

$SAFE==0 e$B$J$I$Ge(B autoload e$B$,E,@Z$K@_Dj$5$l$F$$$k>l9g!$e(B
$SAFE e$B$NCM$KL54X78$K$-$A$s$He(B load e$B$5$l$k$Y$-$H;W$$$^$9$7!$e(B
e$B;v<B!$$3$l$^$G$O$=$N$h$&$KF/$$$F$$$?$N$G$9$,!$e(B
20070219 e$B$Ne(B commit e$B$N7k2L!$$&$^$/5!G=$7$J$$$h$&$K$J$C$F$$$^$9!%e(B

e$B$9$$$^$;$s!#$3$l$G$I$&$G$7$g$&!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!%F0$/$h$&$K$J$j$^$7$?!%e(B
ruby_1_8 e$B$*$h$Se(B ruby_1_8_6 e$B$X$Ne(B commit
e$B$r$h$m$7$/$*4j$$$$$?$7$^$9!%e(B


#6

e$B$J$+$@$G$9!#e(B

At Sun, 25 Feb 2007 18:41:16 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30414]:

$SAFE==0 e$B$J$I$Ge(B autoload e$B$,E,@Z$K@_Dj$5$l$F$$$k>l9g!$e(B
$SAFE e$B$NCM$KL54X78$K$-$A$s$He(B load e$B$5$l$k$Y$-$H;W$$$^$9$7!$e(B
e$B;v<B!$$3$l$^$G$O$=$N$h$&$KF/$$$F$$$?$N$G$9$,!$e(B
20070219 e$B$Ne(B commit e$B$N7k2L!$$&$^$/5!G=$7$J$$$h$&$K$J$C$F$$$^$9!%e(B

e$B$9$$$^$;$s!#$3$l$G$I$&$G$7$g$&!#e(B

Index: eval.c

— eval.c (revision 11791)
+++ eval.c (working copy)
@@ -6938,4 +6938,7 @@ static const char *const loadable_ext[]
};

+static int rb_feature_p _((const char *, const char *, int));
+static int search_required _((VALUE, VALUE *, VALUE *));
+
static int
rb_feature_p(feature, ext, rb)
@@ -6974,5 +6977,5 @@ rb_feature_p(feature, ext, rb)
if (loading_tbl) {
if (st_lookup(loading_tbl, (st_data_t)feature, 0)) {

  •  if (ext) return 'u';
    
  •  if (!ext) return 'u';
     return strcmp(ext, ".rb") ? 's' : 'r';
    
    }
    @@ -6994,6 +6997,4 @@ rb_feature_p(feature, ext, rb)
    }

-static int search_required(VALUE, VALUE *, VALUE *);

int
rb_provided(feature)
@@ -7004,9 +7005,4 @@ rb_provided(feature)
if (rb_feature_p(feature, 0, Qfalse))
return Qtrue;

  • if (search_required(rb_str_new2(feature), &fname, &path) != 0) {
  • feature = RSTRING_PTR(fname);
  • if (rb_feature_p(feature, strrchr(feature, ‘.’), Qfalse))
  •  return Qtrue;
    
  • }
    return Qfalse;
    }

#7

At Mon, 26 Feb 2007 00:35:52 +0900,
Nobuyoshi N. wrote:

At Sun, 25 Feb 2007 18:41:16 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30414]:

$SAFE==0 e$B$J$I$Ge(B autoload e$B$,E,@Z$K@_Dj$5$l$F$$$k>l9g!$e(B
$SAFE e$B$NCM$KL54X78$K$-$A$s$He(B load e$B$5$l$k$Y$-$H;W$$$^$9$7!$e(B
e$B;v<B!$$3$l$^$G$O$=$N$h$&$KF/$$$F$$$?$N$G$9$,!$e(B
20070219 e$B$Ne(B commit e$B$N7k2L!$$&$^$/5!G=$7$J$$$h$&$K$J$C$F$$$^$9!%e(B

e$B$9$$$^$;$s!#$3$l$G$I$&$G$7$g$&!#e(B

e$B!!$"$j$,$H$&$4$6$$$^$9!#e(Bruby_1_8
e$B$K%3%_%C%H$7$F$$$?$@$1$^$9$+!#e(B


/
/__ __ 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”


#8

At Sun, 25 Feb 2007 11:08:31 +0900,
e$B$H$_$?$^$5$R$me(B wrote:

[ruby-dev:30400] e$B$r$*4j$$$7$^$9!#e(B

e$B!!<h$j$3$$7$9$_$^$;$s!#e(Bruby_1_8 e$B$KE,MQ$7$^$7$?!#e(B

e$B!!8e$[$Ie(B ruby_1_8_6 e$B$K$bF~$l$^$9!#e(B


/
/__ __ 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”


#9

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: Nobuyoshi N. removed_email_address@domain.invalid
Subject: [ruby-dev:30434] Re: fail to autoload at $SAFE==4
Date: Tue, 27 Feb 2007 11:00:40 +0900
Message-ID:
removed_email_address@domain.invalid

e$B$H$$$&$3$H$G9M$($?$N$,!“0J2<$NFs$D$N0F$G$9!#e(B
(1) safe_levele$B$r;XDj$7$FC5$7$F$/$l$ke(Brb_provided()e$B$rDI2C$9$ke(B
(2) rb_provided()e$B$O3HD%%i%$%V%i%j$K$D$$$F$O$”$-$i$a$ke(B

rb_provided()e$B$Oe(Bautoloade$B4XO"$G$7$+;H$o$l$F$$$J$$$N$G!"$H$j$"$($:e(B
e$B$Oe(B(2)e$B$G$$$$$N$G$O$J$$$+$H;W$$$^$9!#3HD%%i%$%V%i%j$@$1%m!<%I$5$le(B
e$B$?;~E@$G$OL$Dj5A$NDj?t$,e(Bdefined?e$B$de(Bautoload?e$B$G??$rJV$9$h$&$K$J$je(B
e$B$^$9$,!"<B:]$K;2>H$5$l$l$Pe(Bconst_missinge$B$K$J$k$N$G!"5vMFHO0O$G$Oe(B
e$B$J$+$m$&$+$H!#e(B

e$B!Ve(B(1) e$B$G$"$l$Pe(B autoload e$BDj5A;~$Ne(B $SAFE
e$B$G8F$Y$k$N$GM}A[E*$G$O$"$k$,!$e(B
e$B<BAu$N8z2L$H<j4V$H$r9M$($k$H!%!%!%!W$H$$$&M}2r$G$$$$$G$7$g$&$+!)e(B
e$B$h$/J,$+$C$F$J$$$N$G$9$,!$e(B(2)
e$B$N;EMM$G!V%.%c%C!W$H$$$&%1!<%9$Oe(B
e$B$J$$$N$G$7$g$&$+!)e(B

e$B;d$,8=:_D>LL$7$F$$$k%1!<%9$G$OLdBj$J$$$h$&$G$9$7!$e(B

e$B;d<+?H$Oe(B (2) e$B$G$+$^$o$J$$$N$G$9$,!%!%!%e(B


#10

e$B$J$+$@$G$9!#e(B

At Mon, 26 Feb 2007 00:50:48 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30419]:

$SAFE==0 e$B$J$I$Ge(B autoload e$B$,E,@Z$K@_Dj$5$l$F$$$k>l9g!$e(B
$SAFE e$B$NCM$KL54X78$K$-$A$s$He(B load e$B$5$l$k$Y$-$H;W$$$^$9$7!$e(B
e$B;v<B!$$3$l$^$G$O$=$N$h$&$KF/$$$F$$$?$N$G$9$,!$e(B
20070219 e$B$Ne(B commit e$B$N7k2L!$$&$^$/5!G=$7$J$$$h$&$K$J$C$F$$$^$9!%e(B

e$B$9$$$^$;$s!#$3$l$G$I$&$G$7$g$&!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!%F0$/$h$&$K$J$j$^$7$?!%e(B
ruby_1_8 e$B$*$h$Se(B ruby_1_8_6 e$B$X$Ne(B commit e$B$r$h$m$7$/$*4j$$$$$?$7$^$9!%e(B

e$B8=:_$N%3!<%I$,e(Bsearch_required()e$B$r8F$V$h$&$K$J$C$F$$$kM}M3$O!“e(B
requiree$B$O3HD%;R$,;XDj$5$l$F$$$J$1$l$Pe(B.rb,
.soe$B$J$I$rC5$9$H$$$&;Ee(B
e$BMM$@$+$i$G$9!#$D$^$j!”$b$7$9$G$K3HD%%i%$%V%i%j$,%m!<%I$5$l$F$$e(B
e$B$?$H$7$F$b!“e(B$LOAD_PATHe$BCf$K$*$J$8e(Bfeaturee$BL>$Ne(B.
rbe$B%U%!%$%k$,$”$le(B
e$B$P!"$=$A$i$,M%@h$5$l$k$?$a$Ke(Brb_provided()e$B$Oe(Bfalsee$B$rJV$5$J$1$l$Pe(B
e$B$J$j$^$;$s$,!“A02s$N%Q%C%A$G$O3HD%%i%$%V%i%j$H%9%/%j%W%H%i%$%Ve(B
e$B%i%j$NN>J}$,$”$k>l9g$K$OBP1~$G$-$^$;$s!#e(B

e$B$H$$$&$3$H$G9M$($?$N$,!“0J2<$NFs$D$N0F$G$9!#e(B
(1) safe_levele$B$r;XDj$7$FC5$7$F$/$l$ke(Brb_provided()e$B$rDI2C$9$ke(B
(2) rb_provided()e$B$O3HD%%i%$%V%i%j$K$D$$$F$O$”$-$i$a$ke(B

rb_provided()e$B$Oe(Bautoloade$B4XO"$G$7$+;H$o$l$F$$$J$$$N$G!"$H$j$"$($:e(B
e$B$Oe(B(2)e$B$G$$$$$N$G$O$J$$$+$H;W$$$^$9!#3HD%%i%$%V%i%j$@$1%m!<%I$5$le(B
e$B$?;~E@$G$OL$Dj5A$NDj?t$,e(Bdefined?e$B$de(Bautoload?e$B$G??$rJV$9$h$&$K$J$je(B
e$B$^$9$,!"<B:]$K;2>H$5$l$l$Pe(Bconst_missinge$B$K$J$k$N$G!"5vMFHO0O$G$Oe(B
e$B$J$+$m$&$+$H!#e(B

Index: eval.c

— eval.c (revision 11898)
+++ eval.c (working copy)
@@ -6938,4 +6938,7 @@ static const char *const loadable_ext[]
};

+static int rb_feature_p _((const char *, const char *, int));
+static int search_required _((VALUE, VALUE *, VALUE *));
+
static int
rb_feature_p(feature, ext, rb)
@@ -6974,5 +6977,5 @@ rb_feature_p(feature, ext, rb)
if (loading_tbl) {
if (st_lookup(loading_tbl, (st_data_t)feature, 0)) {

  •  if (ext) return 'u';
    
  •  if (!ext) return 'u';
     return strcmp(ext, ".rb") ? 's' : 'r';
    
    }
    @@ -6994,19 +6997,22 @@ rb_feature_p(feature, ext, rb)
    }

-static int search_required(VALUE, VALUE *, VALUE *);

int
rb_provided(feature)
const char *feature;
{

  • VALUE fname, path;
  • const char *ext = strrchr(feature, ‘.’);
  • if (rb_feature_p(feature, 0, Qfalse))
  • return Qtrue;
  • if (search_required(rb_str_new2(feature), &fname, &path) != 0) {
  • feature = RSTRING_PTR(fname);
  • if (rb_feature_p(feature, strrchr(feature, ‘.’), Qfalse))
  •  return Qtrue;
    
  • if (ext && !strchr(ext, ‘/’)) {
  • if (strcmp(".rb", ext) == 0) {
  •  if (rb_feature_p(feature, ext, Qtrue)) return Qtrue;
    
  •  return Qfalse;
    
  • }
  • else if (IS_SOEXT(ext) || IS_DLEXT(ext)) {
  •  return Qfalse;  /* may be overriden by .rb file */
    
  • }
    }
  • if (rb_feature_p(feature, 0, Qfalse) == ‘r’)
  • return Qtrue;
  • return Qfalse;
    }

#11

e$B$J$+$@$G$9!#e(B

At Tue, 27 Feb 2007 11:45:40 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30435]:

e$B$H$$$&$3$H$G9M$($?$N$,!“0J2<$NFs$D$N0F$G$9!#e(B
(1) safe_levele$B$r;XDj$7$FC5$7$F$/$l$ke(Brb_provided()e$B$rDI2C$9$ke(B
(2) rb_provided()e$B$O3HD%%i%$%V%i%j$K$D$$$F$O$”$-$i$a$ke(B

e$B$b$&0l$D9M$($^$7$?!#e(B

(3) autoloade$B$r;XDj$7$?$H$-$K<B:]$K%m!<%I$5$l$k$O$:$N%i%$%V%i%j$re(B
e$BC5$7!"e(B.rbe$B$+e(B.soe$B$+3NDj$7$F$7$^$&e(B

rb_provided()e$B$Oe(Bautoloade$B4XO"$G$7$+;H$o$l$F$$$J$$$N$G!"$H$j$"$($:e(B
e$B$Oe(B(2)e$B$G$$$$$N$G$O$J$$$+$H;W$$$^$9!#3HD%%i%$%V%i%j$@$1%m!<%I$5$le(B
e$B$?;~E@$G$OL$Dj5A$NDj?t$,e(Bdefined?e$B$de(Bautoload?e$B$G??$rJV$9$h$&$K$J$je(B
e$B$^$9$,!"<B:]$K;2>H$5$l$l$Pe(Bconst_missinge$B$K$J$k$N$G!"5vMFHO0O$G$Oe(B
e$B$J$+$m$&$+$H!#e(B

e$B!Ve(B(1) e$B$G$"$l$Pe(B autoload e$BDj5A;~$Ne(B $SAFE e$B$G8F$Y$k$N$GM}A[E*$G$O$"$k$,!$e(B
e$B<BAu$N8z2L$H<j4V$H$r9M$($k$H!%!%!%!W$H$$$&M}2r$G$$$$$G$7$g$&$+!)e(B
e$B$h$/J,$+$C$F$J$$$N$G$9$,!$e(B(2) e$B$N;EMM$G!V%.%c%C!W$H$$$&%1!<%9$Oe(B
e$B$J$$$N$G$7$g$&$+!)e(B

e$B$?$H$($P!“e(Bfoo.rbe$B$O$J$$$,e(BFooe$B$@$1$rDj5A$9$k3HD%%i%$%V%i%je(Bfoo.soe$B$Oe(B
e$B$”$k$H$9$k$H!"0J2<$N%3!<%I$Oe(BNameErrore$B$K$J$j$^$9!#e(B

autoload :Bar, “foo”
require “foo”
Bar if defined?(Bar)

e$BK\Mh$J$i!"$b$&e(B"foo"e$B$H$7$F%m!<%I$G$-$k$b$N$,$J$$$N$@$+$i!":G8e$Ne(B
defined?(Bar)e$B$Oe(Bnile$B$K$J$k$O$:$G$9!#$b$C$H$b!“e(Bdefined?e$B$He(BBare$B$N;2>He(B
e$B$N4V$Ke(Bfoo.rbe$B$,:n$i$l$J$$$H$$$&J]>Z$O$J$$!”$H9M$($l$P@5$7$$F0:n$+e(B
e$B$b$7$l$^$;$s$,!#e(B

e$B:#5$$E$-$^$7$?$,!“F0E*$K%9%/%j%W%H$re(B$LOAD_PATHe$B$K:n$k$H$$$&2DG=@-e(B
e$B$r9M$($k$J$i!”%m!<%I:Q$_$Ne(B.soe$B$NM-L5$r%m!<%ICf$Ne(B.rbe$B$NM-L5$h$j$bM%e(B
e$B@h$5$;$F$O$^$:$$$N$G!":G8e$Ne(Bife$BJ8$O$3$&$G$9$M!#e(B

if (rb_feature_p(feature, feature + strlen(feature), Qtrue))

#12

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: “Nobuyoshi N.” removed_email_address@domain.invalid
Subject: [ruby-dev:30437] Re: fail to autoload at $SAFE==4
Date: Tue, 27 Feb 2007 15:02:33 +0900
Message-ID:
removed_email_address@domain.invalid

At Tue, 27 Feb 2007 11:45:40 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30435]:

e$B$H$$$&$3$H$G9M$($?$N$,!“0J2<$NFs$D$N0F$G$9!#e(B
(1) safe_levele$B$r;XDj$7$FC5$7$F$/$l$ke(Brb_provided()e$B$rDI2C$9$ke(B
(2) rb_provided()e$B$O3HD%%i%$%V%i%j$K$D$$$F$O$”$-$i$a$ke(B

e$B$b$&0l$D9M$($^$7$?!#e(B

(3) autoloade$B$r;XDj$7$?$H$-$K<B:]$K%m!<%I$5$l$k$O$:$N%i%$%V%i%j$re(B
e$BC5$7!"e(B.rbe$B$+e(B.soe$B$+3NDj$7$F$7$^$&e(B
^^^^^^^^^^^^^^e$B%U%k%Q%9$G!)e(B

autoload e$B$rDj5A$9$k;~E@$G!$$-$C$H$I$N%U%!%$%k$+$Oe(B
e$BA[Dj$7$F$$$k$H;W$($k$N$G!$8D?ME*$K$O$3$l$G$b==J,$J5$$O$7$^$9!%e(B
e$B$G$9$,!$3N$+$KF0E*$JJQ99e(B ($LOAD_PATH e$BJQ99$r4^$`e(B) e$B$re(B
e$BA[Dj$7$F$$$k2DG=@-$be(B 0 e$B$G$O$J$$$G$9$h$M!%e(B(^_^;

autoload e$B$N;EMM$H$7$F!$e(B

  • autoload e$B8F$S=P$7;~$K%m!<%I$5$l$k%U%!%$%k$r3NDj$5$;$k!%e(B
  • e$B<B:]$K%m!<%I$9$k;~E@$G%U%!%$%k$N%?%$%`%9%?%s%W$,JQ2=$7$F$$$?$ie(B
    e$BNc30e(B (SecurityError ?) e$B$H$9$k!%e(B
    e$B$H$$$&$N$O!V$"$j!W$G$7$g$&$+!)e(B

e$B!V$"$j!W$@$H$7$F$b!$e(B1.8 e$B$G$NJQ99$O%@%a$G$9$M!%e(B

e$B$=$l$O$=$l$H$7$F!$:n6H%3%9%H$H8_49@-$H$r9M$($k$H!$e(B
1.8 e$B$G$O$d$O$je(B (2) e$B$rA*Br$9$k$N$,BEEv$H$J$k$N$G$7$g$&$+!)e(B


#13

At Wed, 28 Feb 2007 06:28:30 +0900,
Hidetoshi NAGAI wrote:

e$B$3$NLdBj$rJ|CV$7$?$^$^$Ke(B 1.8.6 e$B$r%j%j!<%9$H$$$&$o$1$K$Oe(B
e$B$$$+$J$$$G$7$g$&$7!$8=;~E@$G$NMn$7$I$3$m$H$7$F$Oe(B
e$BE,@Z$J$N$+$b$7$l$^$;$s!%e(B

e$BFC$KH?BP$,$J$1$l$P!$e(Bruby_1_8, ruby_1_8_6 e$B$K$Oe(B
(2) e$B$rE,MQ$7$F$7$^$&$H$$$&$3$H$G$$$+$,$G$7$g$&$+!)e(B

e$B!!e(Bruby_1_8 e$B$X$NE,MQ$r$*4j$$$7$^$9!#e(B


/
/__ __ 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”


#14

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: Nobuyoshi N. removed_email_address@domain.invalid
Subject: [ruby-dev:30442] Re: fail to autoload at $SAFE==4
Date: Wed, 28 Feb 2007 00:12:02 +0900
Message-ID:
removed_email_address@domain.invalid

At Tue, 27 Feb 2007 16:28:51 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30438]:

(3) autoloade$B$r;XDj$7$?$H$-$K<B:]$K%m!<%I$5$l$k$O$:$N%i%$%V%i%j$re(B
e$BC5$7!"e(B.rbe$B$+e(B.soe$B$+3NDj$7$F$7$^$&e(B
^^^^^^^^^^^^^^e$B%U%k%Q%9$G!)e(B

e$B:G=i$O$I$A$i$r;H$&$+$@$1$r9M$($F$$$^$7$?$,!"<B:]$N%U%!%$%k$rC5e(B
e$B$7$K9T$/0J>e!"%U%k%Q%9$G$J$$$H0UL#$,$J$$$G$7$g$&$M!#e(B

e$B8f0U!%e(B

autoload e$B$N;EMM$H$7$F!$e(B

  • autoload e$B8F$S=P$7;~$K%m!<%I$5$l$k%U%!%$%k$r3NDj$5$;$k!%e(B
  • e$B<B:]$K%m!<%I$9$k;~E@$G%U%!%$%k$N%?%$%`%9%?%s%W$,JQ2=$7$F$$$?$ie(B
    e$BNc30e(B (SecurityError ?) e$B$H$9$k!%e(B
    e$B$H$$$&$N$O!V$"$j!W$G$7$g$&$+!)e(B

e$B!V$"$j!W$+$b$7$l$^$;$s$,!"$=$3$^$GI,MW$J$N$+$H$+%?%$%`%9%?%s%We(B
e$B$@$1$G$$$$$N$+$H$+!"$b$&$A$g$C$H5DO@$OI,MW$G$7$g$&!#e(B

e$B8F$S=P$7BP>]$H$7$F3NDj$5$;$?$O$:$N%U%!%$%k$,JQ99$5$l$F$$$k$H$$$&$N$Oe(B
e$BHs>o$K4m81$J9a$j$,$9$k$N$G!$%A%’%C%/$,I,MW$+$J$H;W$C$?$^$G$G$9!%e(B

e$B0U?^$7$FJQ99$7$?$J$i!$$=$N;~E@$Ge(B autoload

e$B$r8F$SD>$;$P$$$$$o$1$G$9$7!%e(B

e$B$G!$%U%!%$%kFbMF$N@:::$J$I$O$d$C$F$$$i$l$J$$$N$G!$e(B
e$B$G$-$k$N$Oe(B stat e$B%A%’%C%/$/$i$$$+$J$H!%e(B

e$B$=$l$O$=$l$H$7$F!$:n6H%3%9%H$H8_49@-$H$r9M$($k$H!$e(B
1.8 e$B$G$O$d$O$je(B (2) e$B$rA*Br$9$k$N$,BEEv$H$J$k$N$G$7$g$&$+!)e(B

e$B:n6H%3%9%H$OLdBj$8$c$"$j$^$;$s$,!";~4|E*$K$A$g$C$HBg$-$JJQ99$+e(B
e$B$H!#e(B

e$B$=$&$G$9$M!%e(B
e$B$3$NLdBj$rJ|CV$7$?$^$^$Ke(B 1.8.6 e$B$r%j%j!<%9$H$$$&$o$1$K$Oe(B
e$B$$$+$J$$$G$7$g$&$7!$8=;~E@$G$NMn$7$I$3$m$H$7$F$Oe(B
e$BE,@Z$J$N$+$b$7$l$^$;$s!%e(B

e$BFC$KH?BP$,$J$1$l$P!$e(Bruby_1_8, ruby_1_8_6 e$B$K$Oe(B
(2) e$B$rE,MQ$7$F$7$^$&$H$$$&$3$H$G$$$+$,$G$7$g$&$+!)e(B


#15

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: “Nobuyoshi N.” removed_email_address@domain.invalid
Subject: [ruby-dev:30437] Re: fail to autoload at $SAFE==4
Date: Tue, 27 Feb 2007 15:02:33 +0900
Message-ID:
removed_email_address@domain.invalid

e$B:#5$$E$-$^$7$?$,!“F0E*$K%9%/%j%W%H$re(B$LOAD_PATHe$B$K:n$k$H$$$&2DG=@-e(B
e$B$r9M$($k$J$i!”%m!<%I:Q$_$Ne(B.soe$B$NM-L5$r%m!<%ICf$Ne(B.rbe$B$NM-L5$h$j$bM%e(B
e$B@h$5$;$F$O$^$:$$$N$G!":G8e$Ne(Bife$BJ8$O$3$&$G$9$M!#e(B

if (rb_feature_p(feature, feature + strlen(feature), Qtrue))

e$B$9$$^$;$s!%$-$A$s$H%A%’%C%/$7$F$$$^$;$s$G$7$?!%e(B
e$B$3$Ne(B if e$BJ8$N7A$Ge(B commit e$B$5$l$F$7$^$$$^$7$?$,!$e(B
e$B$3$l$@$H99$K$^$:$$$
$?$$$G!$e(B

ruby -r tk -e ‘TkButton.new’
/usr/local/lib/ruby/1.8/tk/label.rb:6: uninitialized constant TkLabel
(NameError)
from /usr/local/lib/ruby/1.8/tk/button.rb:5:in `require’
from /usr/local/lib/ruby/1.8/tk/button.rb:5
from -e:1

e$B$J$s$F$3$H$K$J$C$F$7$^$$$^$9!%e(B

TkButton e$B$KBP$9$ke(B autoload e$B$Ge(B tk/button.rb e$B$re(B load
e$B$7$?:]$Ke(B
“require ‘tk/label’” e$B$,<B9T$5$l!$e(Btk/label.rb e$B$N>e$Ne(B
“class TkLabel<TkWindow” e$B$Ge(B NameError e$BH/@8!$$H$$$&N.$l$G$9!%e(B

e$B>e5-$Ne(B if e$BJ8$NItJ,$,e(B “if (rb_feature_p(feature, 0, Qfalse)
== ‘r’)”
e$B$G$"$l$P!$$3$N$h$&$K$O$J$j$^$;$s!%e(B


#16

At Thu, 1 Mar 2007 00:57:53 +0900,
Hidetoshi NAGAI wrote:

すみません.きちんとチェックしていませんでした.
なんてことになってしまいます.

TkButton に対する autoload で tk/button.rb を load した際に
“require ‘tk/label’” が実行され,tk/label.rb の上の
“class TkLabel<TkWindow” で NameError 発生,という流れです.

上記の if 文の部分が “if (rb_feature_p(feature, 0, Qfalse) == ‘r’)”
であれば,このようにはなりません.

 この件はどうしましょうか。


/
/__ __ 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”


#17

e$B$J$+$@$G$9!#e(B

At Tue, 27 Feb 2007 16:28:51 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30438]:

(3) autoloade$B$r;XDj$7$?$H$-$K<B:]$K%m!<%I$5$l$k$O$:$N%i%$%V%i%j$re(B
e$BC5$7!"e(B.rbe$B$+e(B.soe$B$+3NDj$7$F$7$^$&e(B
^^^^^^^^^^^^^^e$B%U%k%Q%9$G!)e(B

e$B:G=i$O$I$A$i$r;H$&$+$@$1$r9M$($F$$$^$7$?$,!"<B:]$N%U%!%$%k$rC5e(B
e$B$7$K9T$/0J>e!"%U%k%Q%9$G$J$$$H0UL#$,$J$$$G$7$g$&$M!#e(B

autoload e$B$rDj5A$9$k;~E@$G!$$-$C$H$I$N%U%!%$%k$+$Oe(B
e$BA[Dj$7$F$$$k$H;W$($k$N$G!$8D?ME*$K$O$3$l$G$b==J,$J5$$O$7$^$9!%e(B
e$B$G$9$,!$3N$+$KF0E*$JJQ99e(B ($LOAD_PATH e$BJQ99$r4^$`e(B) e$B$re(B
e$BA[Dj$7$F$$$k2DG=@-$be(B 0 e$B$G$O$J$$$G$9$h$M!%e(B(^_^;

e$B$"$k$$$O>C$5$l$F$$$?$j$H$+!#e(B

autoload e$B$N;EMM$H$7$F!$e(B

  • autoload e$B8F$S=P$7;~$K%m!<%I$5$l$k%U%!%$%k$r3NDj$5$;$k!%e(B
  • e$B<B:]$K%m!<%I$9$k;~E@$G%U%!%$%k$N%?%$%`%9%?%s%W$,JQ2=$7$F$$$?$ie(B
    e$BNc30e(B (SecurityError ?) e$B$H$9$k!%e(B
    e$B$H$$$&$N$O!V$"$j!W$G$7$g$&$+!)e(B

e$B!V$"$j!W$+$b$7$l$^$;$s$,!"$=$3$^$GI,MW$J$N$+$H$+%?%$%`%9%?%s%We(B
e$B$@$1$G$$$$$N$+$H$+!"$b$&$A$g$C$H5DO@$OI,MW$G$7$g$&!#e(B

e$B$=$l$O$=$l$H$7$F!$:n6H%3%9%H$H8_49@-$H$r9M$($k$H!$e(B
1.8 e$B$G$O$d$O$je(B (2) e$B$rA*Br$9$k$N$,BEEv$H$J$k$N$G$7$g$&$+!)e(B

e$B:n6H%3%9%H$OLdBj$8$c$"$j$^$;$s$,!";~4|E*$K$A$g$C$HBg$-$JJQ99$+e(B
e$B$H!#e(B


#18

At Sat, 3 Mar 2007 15:32:09 +0900,
I wrote:

if (rb_feature_p(feature, feature + strlen(feature), Qtrue))
    from -e:1

 この件はどうしましょうか。
 その後の中田さんのコミットで修正されたようです。
ruby_1_8_6 にも入れました。


/
/__ __ 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”