Regex performace tuning and ABI compatibility


#1

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

[ruby-talk:329388]e$B$Ge(B1.9e$B$Oe(B -KU e$B$r;XDj$9$k$He(B -KN
e$B$h$je(B6.5e$BG\CY$$e(B
e$B$H$$$&;XE&$,$"$j$^$7$?!#D4$Y$F$_$k$H!"e(Bmbclene$B$N7W;;$Ge(B
precise_mbclene$B$r7W;;$7$F$$$k$N$,860x$N$h$&$G$9!#e(Bbrokene$B$G$J$$e(B
e$B$3$H$,L@$i$+$J%1!<%9$G$Oe(B1.8e$B$N$h$&$K%F!<%V%k0z$-$G$o$+$k>l9ge(B
e$B$K$O$=$N$h$&$K$7$?J}$,EvA39bB.$K$J$j$^$9!#e(B

e$B$=$3$G$=$N$h$&$J2~B$$r;$7$F$_$?$N$G$9$,!"$=$N7k2L$H$7$Fe(B
OnigEncodingTypeSTe$B9=B$BN$NCf?H$,JQ2=$7$^$9!#$H$$$&$3$H$O!“e(B
encodinge$B$K4XO”$9$k$b$N$O$9$Y$F%3%s%Q%$%k$7D>$5$J$1$l$P$J$i$Je(B
e$B$$$H$$$&$3$H$G$9$,!"$=$l$Oe(B1.9.2e$B$G<u$1F~$l2DG=$G$7$g$&$+!)e(B
e$B!de(B yuguie$B$5$se(B

e$B2DG=$G$"$l$P%3%_%C%H$7$^$9$,!#e(B


#2

Yuguie$B$G$9!#e(B

On 3/3/09 6:22 PM, Yukihiro M. wrote:

e$B$=$l$Oe(B1.9.2e$B$G<u$1F~$l2DG=$G$7$g$&$+!)e(B e$B!de(B yuguie$B$5$se(B

1.9.xe$B$N$I$3$+$Ge(BABIe$B8_49@-$,Jx$l$k$N$O$d$`$rF@$J$$$H$$$&H=CG$r$7$^$7$?!#e(B
e$B$1$l$I$b!"e(B1.9.2e$B$H$$$&$N$O$+$J$jAa$$$G$9!#%Q%U%)!<%^%s%92~A1$H$$$&$&$l$7e(B
e$B$5$KBP$7$F!"Aa$/$b8_49@-$,Jx$l$k$H$$$&%3%9%H$,8+9g$o$J$$$H;W$$$^$9!#$7$Pe(B
e$B$i$/%3%_%C%H$rBT$C$F$$$?$@$1$^$9$+e(B?

e$B$R$g$C$H$7$F!“e(B1.9.1-ABIe$B8_49$N0BDjE3+H/HG%V%i%s%Ae(B(rubu_1_8e$BE$J$b$Ne(B)e$B$r@Ze(B
e$B$k;~4|$KMh$F$$$k$N$+$b$7$l$^$;$s!#$3$N5!2q$K!”!V8_49@-$OJx$l$k$1$l$I$be(B
1.9.xe$B$K$3$l$rF~$l$?$$!W$H$$$&5!G=$,B>$K$b$"$l$P3’$5$s$*J9$+$;$/$@$5$$!#e(B

  • MVMe$B$OG’<1$7$F$$$^$9!#e(B
  • Classboxe$B$N0F$C$F$I$&$J$C$F$k$s$G$7$g$&!#e(B
  • YASNP?

#3

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:38125] Request for plans to break
compatibility; Was: Re: regex performace tuning and ABI compatibility”
on Wed, 4 Mar 2009 01:14:25 +0900, “Yugui (Yuki S.)”
removed_email_address@domain.invalid writes:

|> e$B$=$l$Oe(B1.9.2e$B$G<u$1F~$l2DG=$G$7$g$&$+!)e(B e$B!de(B yuguie$B$5$se(B
|
|1.9.xe$B$N$I$3$+$Ge(BABIe$B8_49@-$,Jx$l$k$N$O$d$`$rF@$J$$$H$$$&H=CG$r$7$^$7$?!#e(B
|e$B$1$l$I$b!"e(B1.9.2e$B$H$$$&$N$O$+$J$jAa$$$G$9!#%Q%U%)!<%^%s%92~A1$H$$$&$&$l$7e(B
|e$B$5$KBP$7$F!"Aa$/$b8_49@-$,Jx$l$k$H$$$&%3%9%H$,8+9g$o$J$$$H;W$$$^$9!#$7$Pe(B
|e$B$i$/%3%_%C%H$rBT$C$F$$$?$@$1$^$9$+e(B?

e$BN;2r$G$9!#$=$NB>e(BABIe$B$,JQ$o$k$h$&$J$b$N$O<j85$G$?$a$F$*$-$^$9!#e(B

|* Classboxe$B$N0F$C$F$I$&$J$C$F$k$s$G$7$g$&!#e(B
|* YASNP?

e$B$3$l$i$Oe(B2.0e$B$,%?!<%2%C%H$G$9!#$^$@$^$@@h$NOC$G$9!#e(B


#4

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

At Tue, 3 Mar 2009 18:22:12 +0900,
Yukihiro M. wrote in [ruby-dev:38121]:

e$B$=$3$G$=$N$h$&$J2~B$$r;$7$F$_$?$N$G$9$,!"$=$N7k2L$H$7$Fe(B
OnigEncodingTypeSTe$B9=B$BN$NCf?H$,JQ2=$7$^$9!#$H$$$&$3$H$O!“e(B
encodinge$B$K4XO”$9$k$b$N$O$9$Y$F%3%s%Q%$%k$7D>$5$J$1$l$P$J$i$Je(B
e$B$$$H$$$&$3$H$G$9$,!"$=$l$Oe(B1.9.2e$B$G<u$1F~$l2DG=$G$7$g$&$+!)e(B e$B!de(B yuguie$B$5$se(B

e$B6qBNE*$K$O$I$NDxEY$NJQ2=$J$N$G$7$g$&$+!#C1$J$kDI2C$@$1$G$"$l$P8ee(B
e$BJ}8_49@-$OJ]$?$l$k$N$G$O$J$$$+$H;W$$$^$9$,!#e(B


#5

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

At Wed, 4 Mar 2009 01:14:25 +0900,
Yugui (Yuki S.) wrote in [ruby-dev:38125]:

e$B$R$g$C$H$7$F!“e(B1.9.1-ABIe$B8_49$N0BDjE3+H/HG%V%i%s%Ae(B(rubu_1_8e$BE$J$b$Ne(B)e$B$r@Ze(B
e$B$k;~4|$KMh$F$$$k$N$+$b$7$l$^$;$s!#$3$N5!2q$K!”!V8_49@-$OJx$l$k$1$l$I$be(B
1.9.xe$B$K$3$l$rF~$l$?$$!W$H$$$&5!G=$,B>$K$b$"$l$P3’$5$s$*J9$+$;$/$@$5$$!#e(B

e$B>$7$/$OCN$j$^$;$s$,!"e(B[ruby-dev:33663]e$BBP1~$N$?$a$Ke(Br15437e$B$GF~$C$?e(B
rb_num_coerce_{bin,cmp,relop}e$B$N=$@5$O$3$N$^$^$J$N$G$7$g$&$+!#$=e(B
e$B$N8ee(Brb_frame_this_func()e$B$N$[$&$,=$@5$5$l$?$?$a$KITMW$K$J$C$F$$$ke(B
e$B5$$,$9$k$N$G$9$,!#e(B

r15437e$B$,LdBj$K$J$k$N$O!“4{B8$N%$%s%?!<%U%’!<%9$,e(B1.8e$B$HJQ99$K$J$Ce(B
e$B$F$$$k$?$a$K!”%=!<%9%l%Y%k$G$N8_49@-$r$H$k$N$,Fq$7$$$+$i$G$9!#$be(B
e$B$7$3$l$O$=$N$^$^$K$9$k$H$$$&$3$H$G$"$l$P!"%$%s%?!<%U%’!<%9$r3NG’e(B
e$B$9$k$?$a$N%^%/%m$rDI2C$7$h$&$H;W$$$^$9!#e(B


#6

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:38129] Re: Request for plans to break
compatibility; Was: Re: regex performace tuning and ABI compatibility”
on Wed, 4 Mar 2009 10:08:37 +0900, Nobuyoshi N.
removed_email_address@domain.invalid writes:

|e$B>$7$/$OCN$j$^$;$s$,!"e(B[ruby-dev:33663]e$BBP1~$N$?$a$Ke(Br15437e$B$GF~$C$?e(B
|rb_num_coerce_{bin,cmp,relop}e$B$N=$@5$O$3$N$^$^$J$N$G$7$g$&$+!#$=e(B
|e$B$N8ee(Brb_frame_this_func()e$B$N$[$&$,=$@5$5$l$?$?$a$KITMW$K$J$C$F$$$ke(B
|e$B5$$,$9$k$N$G$9$,!#e(B

e$BK\Ev$KITMW$G$"$l$PLa$7$F$bNI$$$H$O;W$&$N$G$9$,!#e(B

|r15437e$B$,LdBj$K$J$k$N$O!“4{B8$N%$%s%?!<%U%’!<%9$,e(B1.8e$B$HJQ99$K$J$Ce(B
|e$B$F$$$k$?$a$K!”%=!<%9%l%Y%k$G$N8_49@-$r$H$k$N$,Fq$7$$$+$i$G$9!#$be(B
|e$B$7$3$l$O$=$N$^$^$K$9$k$H$$$&$3$H$G$"$l$P!"%$%s%?!<%U%’!<%9$r3NG’e(B
|e$B$9$k$?$a$N%^%/%m$rDI2C$7$h$&$H;W$$$^$9!#e(B

e$B$H$O$$$(!“e(B1.9.1e$B$O=P$F$7$^$C$F$$$k$N$G!”$I$3$+$KHs8_49@-$,H/e(B
e$B@8$9$k$N$OHr$1$i$l$^$;$s$M!#e(B


#7

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:38128] Re: regex performace tuning and ABI
compatibility”
on Wed, 4 Mar 2009 09:28:20 +0900, Nobuyoshi N.
removed_email_address@domain.invalid writes:

|e$B6qBNE*$K$O$I$NDxEY$NJQ2=$J$N$G$7$g$&$+!#C1$J$kDI2C$@$1$G$"$l$P8ee(B
|e$BJ}8_49@-$OJ]$?$l$k$N$G$O$J$$$+$H;W$$$^$9$,!#e(B

e$B2~$a$F9M$($F$_$^$7$?!#<B:]$KDI2C$5$l$?$N$O%^%k%A%P%$%HJ8;z@he(B
e$BF,#1%P%$%H$+$iJ8;zD9$r5a$a$k%F!<%V%k$X$N%]%$%s%?$G$9e(B(e$B@hF,#1%Pe(B
e$B%$%H$+$iD9$5$,5a$a$i$l$J$$>l9g$K$Oe(BNULLe$B!#$=$N>l9g$O=>Mh$NJ}K!e(B
e$B$G5a$a$ke(B)e$B!#$3$l$r9=B$BNKvHx$KDI2C$9$l$P!"e(Bencodinge$B9=B$BN$rDj5Ae(B
e$B$7$J$$3HD%%i%$%V%i%j$OF0:n$9$k$+$b$7$l$^$;$s$M!#e(B


#8

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

At Thu, 5 Mar 2009 00:24:16 +0900,
Yukihiro M. wrote in [ruby-dev:38137]:

e$B2~$a$F9M$($F$_$^$7$?!#<B:]$KDI2C$5$l$?$N$O%^%k%A%P%$%HJ8;z@he(B
e$BF,#1%P%$%H$+$iJ8;zD9$r5a$a$k%F!<%V%k$X$N%]%$%s%?$G$9e(B(e$B@hF,#1%Pe(B
e$B%$%H$+$iD9$5$,5a$a$i$l$J$$>l9g$K$Oe(BNULLe$B!#$=$N>l9g$O=>Mh$NJ}K!e(B
e$B$G5a$a$ke(B)e$B!#$3$l$r9=B$BNKvHx$KDI2C$9$l$P!"e(Bencodinge$B9=B$BN$rDj5Ae(B
e$B$7$J$$3HD%%i%$%V%i%j$OF0:n$9$k$+$b$7$l$^$;$s$M!#e(B

e$B$=$b$=$b!Ve(Bencodinge$B9=B$BN$rDj5A!W$9$k3HD%%i%$%V%i%j$O$J$$$O$:$G$9e(B
e$B$,!“e(Bonigurumae$B$GDs6!$5$l$F$$$k%^%/%m$G%”%/%;%9$7$F$$$k%a%s%P$b$“e(B
e$B$k$N$G!”$=$3$OF0$+$;$^$;$s$M!#e(B

e$BKvHx$K$Oe(Bruby_encoding_indexe$B$,$"$j$^$9$,!"$3$l$Oe(B
enc_initialized_p()e$B$de(BENC_TO_ENCINDEX()e$B$G%"%/%;%9$7$F$$$k$b$N$N!“e(B
e$B$3$NJU$Oe(Bencoding.ce$B$G$7$+;H$($J$$$b$N$J$N$G!”$b$H$b$He(Bincludee$B$N2<e(B
e$B$K$"$k$Y$-$G$O$J$$$H;W$$$^$9!#$H$$$&$3$H$G!"e(Bruby_encoding_index
e$B$ND>A0$,$$$$$N$G$O$J$$$+$H!#e(B


#9

At 09:46 09/03/05, Nobuyoshi N. wrote:

e$B$=$b$=$b!Ve(Bencodinge$B9=B$BN$rDj5A!W$9$k3HD%%i%$%V%i%j$O$J$$$O$:$G$9e(B
e$B$,!“e(Bonigurumae$B$GDs6!$5$l$F$$$k%^%/%m$G%”%/%;%9$7$F$$$k%a%s%P$b$“e(B
e$B$k$N$G!”$=$3$OF0$+$;$^$;$s$M!#e(B

e$BKvHx$K$Oe(Bruby_encoding_indexe$B$,$"$j$^$9$,!"$3$l$Oe(B
enc_initialized_p()e$B$de(BENC_TO_ENCINDEX()e$B$G%"%/%;%9$7$F$$$k$b$N$N!“e(B
e$B$3$NJU$Oe(Bencoding.ce$B$G$7$+;H$($J$$$b$N$J$N$G!”$b$H$b$He(Bincludee$B$N2<e(B
e$B$K$"$k$Y$-$G$O$J$$$H;W$$$^$9!#$H$$$&$3$H$G!"e(Bruby_encoding_index
e$B$ND>A0$,$$$$$N$G$O$J$$$+$H!#e(B

e$B9bB.2=$N4X78$G$3$l$+$i$b%a%s%P!<$,A}$($k2DG=@-$,$"$j$^$9$N$G!"e(B
e$B@'Hs@^$l$b8!F$$KF~$l$F7h$a$F$/$@$5$$!#e(B

e$B$h$m$7$/$*4j$$$7$^$9!#e(B Martin.

#-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University
#-#-# http://www.sw.it.aoyama.ac.jp mailto:removed_email_address@domain.invalid


#10

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:38138] Re: regex performace tuning and ABI
compatibility”
on Thu, 5 Mar 2009 09:46:55 +0900, Nobuyoshi N.
removed_email_address@domain.invalid writes:

|e$B$=$b$=$b!Ve(Bencodinge$B9=B$BN$rDj5A!W$9$k3HD%%i%$%V%i%j$O$J$$$O$:$G$9e(B
|e$B$,!“e(Bonigurumae$B$GDs6!$5$l$F$$$k%^%/%m$G%”%/%;%9$7$F$$$k%a%s%P$b$“e(B
|e$B$k$N$G!”$=$3$OF0$+$;$^$;$s$M!#e(B

e$B?7$?$Ke(Bencodinge$B$rDj5A$7$h$&$H;W$($PHs8_49$,H/@8$7$^$9$M!#$G$b!"e(B
e$B$3$l$O!V3HD%%i%$%V%i%j!W$G$O$J$$$G$9$M!#e(B

|e$BKvHx$K$Oe(Bruby_encoding_indexe$B$,$"$j$^$9$,!"$3$l$Oe(B
|enc_initialized_p()e$B$de(BENC_TO_ENCINDEX()e$B$G%"%/%;%9$7$F$$$k$b$N$N!“e(B
|e$B$3$NJU$Oe(Bencoding.ce$B$G$7$+;H$($J$$$b$N$J$N$G!”$b$H$b$He(Bincludee$B$N2<e(B
|e$B$K$"$k$Y$-$G$O$J$$$H;W$$$^$9!#$H$$$&$3$H$G!"e(Bruby_encoding_index
|e$B$ND>A0$,$$$$$N$G$O$J$$$+$H!#e(B

ENC_TO_ENCINDEX()e$B%^%/%m$J$I$G;2>H$7$F$^$9$+$i!"$3$l$N0LCV$rF0e(B
e$B$+$9$HLdBj$,=P$k%1!<%9$b$"$k$s$G$O$J$$$G$7$g$&$+!#%l%"%1!<%9e(B
e$B$@$H$O;W$&$1$I!#$H$j$"$($:<j85$G$OKvHx$KDI2C$7$F$_$^$7$?!#e(B


#11

e$B:XF#$H?=$7$^$9!#e(B
e$B%5%$%l%s%H%^%8%g%j%F%#$?$ke(B rb_num_coerce_*
e$B%f!<%6$N0l?M$G$9!#e(B

On Wed, 4 Mar 2009 10:08:37 +0900
Nobuyoshi N. removed_email_address@domain.invalid wrote:

r15437e$B$,LdBj$K$J$k$N$O!“4{B8$N%$%s%?!<%U%’!<%9$,e(B1.8e$B$HJQ99$K$J$Ce(B
e$B$F$$$k$?$a$K!”%=!<%9%l%Y%k$G$N8_49@-$r$H$k$N$,Fq$7$$$+$i$G$9!#$be(B
e$B$7$3$l$O$=$N$^$^$K$9$k$H$$$&$3$H$G$"$l$P!"%$%s%?!<%U%’!<%9$r3NG’e(B
e$B$9$k$?$a$N%^%/%m$rDI2C$7$h$&$H;W$$$^$9!#e(B

e$B$3$N%^%/%m$H$$$&$N$Oe(B

#define RB_NUM_COERCE_FUNCS_NEED_3ARGS 1

e$B$_$?$$$J$b$N$G$7$g$&$+e(B?

e$B$b$7e(B1.9.2e$B$Ge(BAPIe$B$rJQ$($k$N$G$"$l$P!"3HD%%i%$%V%i%jB&$G!"e(Bextconf.tbe$BCf$Ke(Btry_compile()e$B$H$7$F!"e(B
e$B<+A0$Ge(BAPIe$B%$%s%?!<%U%’!<%9$N%A%’%C%/$r=q$/$N$O9|$,@^$l$k$N$G!“F~$l$FD:$1$k$H$H$F$b$”$j$,$?$$e(B
e$B$G$9!#$3$l$G$^$:!"e(B1.9.1 <=>
1.9.xe$B4V$N3HD%%i%$%V%i%j$N8_49@-$N3NJ]$,>-Mh!"4JC1$K$J$j$^$9$M!#e(B

e$B$^$?CfED$5$s$O!Ve(B(r15437e$B$re(B)e$B$=$N$^$^$K$9$k$H$$$&$3$H$G$"$l$P!W$H$*$C$7$c$C$F$$$^$9$,!“e(B
e$B$=$N$^$^$K!V$7$J$/$F$b!W!Ve(B1.8/1.9e$BN>%V%i%s%A$K!W$<$RF~$l$F$b$i$$$?$$$G$9!#$H$$$&$N$O!”$b$&e(B
1.8.xe$B$He(B1.9.1e$B$N4V$Ge(Brb_num_coerce_*e$B$N%$%s%?!<%U%’!<%9$,0c$&$N$O$9$G$K3NDj$7$F$$$k>e!“e(B
1.8/1.9e$BN>BP1~$N3HD%%i%$%V%i%j$r:n$j$?$$?H$H$7$F$O!”$I$A$i$K$;$he(Btry_compile()e$B$,I,MW$He(B
e$B$J$k$+$i$G$9e(B(e$B$b$C$HNI$$<jCJ$,$"$C$?$i65$($F$/$@$5$$e(B)e$B!#e(B

1.8e$B$+$ie(B1.9e$B2aEO4|$N8=:_!“N>J}$KBP1~$7$?%i%$%V%i%j$r=q$-$?$$$H$$$&MW5a$O>.$5$/$J$$$H;W$$$^$9!#e(B
e$B$^$?2aEO4|$O!”$7$P$i$/B3$/$G$7$g$&!#e(B

e$B3HD%%i%$%V%i%j$+$ie(BAPIe$B$N0c$$$r4JC1$K%A%’%C%/$G$-$k<jCJ$r!“e(B1.9e$B$@$1$G$J$/e(B1.8e$B$r4^$$9$Y$F$Ne(B e$B%V%i%s%A$KF~$l$F$$$?$@$1$k$J$i$P!"e(B1.9.1p0e$B$,8E$/$J$C$?;~E@$G!"3HD%%i%$%V%i%j$r=q$/?M4V$Oe(B e$B%^%/%m$N%A%'%C%/$@$1$G:Q$$h$&$K$J$j$^$9!#e(B1.8e$B$+$ie(B1.9.1e$B$X$N0\9T$b$d$O$j4JC1$K$J$k!”$H$$$&e(B
e$B$o$1$G$9!#e(B

e$B$$$+$,$G$7$g$&$+!#e(B

On Wed, 4 Mar 2009 10:12:24 +0900
Yukihiro M. removed_email_address@domain.invalid wrote:

|r15437e$B$,LdBj$K$J$k$N$O!“4{B8$N%$%s%?!<%U%’!<%9$,e(B1.8e$B$HJQ99$K$J$Ce(B
|e$B$F$$$k$?$a$K!”%=!<%9%l%Y%k$G$N8_49@-$r$H$k$N$,Fq$7$$$+$i$G$9!#$be(B
|e$B$7$3$l$O$=$N$^$^$K$9$k$H$$$&$3$H$G$"$l$P!"%$%s%?!<%U%’!<%9$r3NG’e(B
|e$B$9$k$?$a$N%^%/%m$rDI2C$7$h$&$H;W$$$^$9!#e(B

e$B$H$O$$$(!“e(B1.9.1e$B$O=P$F$7$^$C$F$$$k$N$G!”$I$3$+$KHs8_49@-$,H/e(B
e$B@8$9$k$N$OHr$1$i$l$^$;$s$M!#e(B

e$B>e=R$N$H$$j!"$b$&e(B1.8.xe$B$He(B1.9.1e$B$GHs8_49$,H/@8$7$F$$$^$9!#$J$N$Ge(B1.9.1e$B$He(B1.9.xe$B$GHs8_49$,e(B
e$BH/@8$7$F$b!"$I$C$A$$A%A%’%C%/$r9T$&$N$G!"$"$s$^$j4X78$H$$$&$N$,8=Lre(B(?)e$B3HD%%i%$%V%i%je(B
e$B:n<T$N463P$G$9!#e(B
e$B$`$7$m$=$Ne(B1.9.xe$B$NHs8_49$,!“e(B1.8e$B$H$N8_49@-$r$H$kJ}8~$NJQ99$G$”$ke(B
(rb_num_coerce
e$B$Ne(B
e$B0z?t$,Fs$D$K$J$ke(B) e$B$N$J$i$P!"8D?ME*$K$O;?@.$G$9!#e(B

e$B$b$H$b$H!V5!G=$OA}$($J$$$N$K!“0z?t$H$7$FI,MW$J>pJs$@$1A}$($k!W$H$$$&!”$&$l$7$/$J$$e(B
e$BJ}8~$Ne(BAPIe$BJQ99$G$7$?$7!#e(B


#12

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

At Thu, 12 Mar 2009 01:30:52 +0900,
Tadashi S. wrote in [ruby-dev:38162]:

#define RB_NUM_COERCE_FUNCS_NEED_3ARGS 1

e$B$_$?$$$J$b$N$G$7$g$&$+e(B?

3ARGSe$B$h$j$be(BOPIDe$B$J$I$r9M$($F$$$^$9!#e(B

e$B$^$?CfED$5$s$O!Ve(B(r15437e$B$re(B)e$B$=$N$^$^$K$9$k$H$$$&$3$H$G$"$l$P!W$H$*$C$7$c$C$F$$$^$9$,!“e(B
e$B$=$N$^$^$K!V$7$J$/$F$b!W!Ve(B1.8/1.9e$BN>%V%i%s%A$K!W$<$RF~$l$F$b$i$$$?$$$G$9!#$H$$$&$N$O!”$b$&e(B
1.8.xe$B$He(B1.9.1e$B$N4V$Ge(Brb_num_coerce_*e$B$N%$%s%?!<%U%’!<%9$,0c$&$N$O$9$G$K3NDj$7$F$$$k>e!“e(B
1.8/1.9e$BN>BP1~$N3HD%%i%$%V%i%j$r:n$j$?$$?H$H$7$F$O!”$I$A$i$K$;$he(Btry_compile()e$B$,I,MW$He(B
e$B$J$k$+$i$G$9e(B(e$B$b$C$HNI$$<jCJ$,$"$C$?$i65$($F$/$@$5$$e(B)e$B!#e(B

e$BDj5A$NM-L5$G$9$+$ie(B1.8e$B$K$OF~$l$kI,MW$O$J$$$H;W$$$^$9!#e(B

e$B$b$H$b$H!V5!G=$OA}$($J$$$N$K!“0z?t$H$7$FI,MW$J>pJs$@$1A}$($k!W$H$$$&!”$&$l$7$/$J$$e(B
e$BJ}8~$Ne(BAPIe$BJQ99$G$7$?$7!#e(B

e$B5U$K!"!V8F$S=P$5$l$?%3%s%F%-%9%H$KG{$i$l$:$K8F$Y$k!W$H$$$&0UL#$Ge(B
e$B$O<+M3EY$,>e$,$C$?$H$$$&%a%j%C%H$,$"$k$+$b$7$l$^$;$s!#e(B


#13

e$B:XF#$G$9!#e(B

On Thu, 12 Mar 2009 04:21:28 +0900
Nobuyoshi N. removed_email_address@domain.invalid wrote:

At Thu, 12 Mar 2009 01:30:52 +0900,
Tadashi S. wrote in [ruby-dev:38162]:

#define RB_NUM_COERCE_FUNCS_NEED_3ARGS 1

e$B$_$?$$$J$b$N$G$7$g$&$+e(B?

3ARGSe$B$h$j$be(BOPIDe$B$J$I$r9M$($F$$$^$9!#e(B

e$B$J$k$[$I!#$<$R$*4j$$$7$^$9!#e(B

e$BDj5A$NM-L5$G$9$+$ie(B1.8e$B$K$OF~$l$kI,MW$O$J$$$H;W$$$^$9!#e(B

e$B$H$$$&$3$H$Oe(B

  • e$B%^%/%m$,Dj5A$5$l$F$$$l$Pe(B3e$B0z?te(B
  • e$BDj5A$5$l$F$$$J$1$l$Pe(B2e$B0z?te(B
    (* e$BNc30$Oe(B1.9.1p0e$B$G!"%^%/%m$,$J$/$Fe(B3e$B0z?te(B)

e$B$H$$$&$3$H$G$9$h$M!#e(B

e$B$b$H$b$H!V5!G=$OA}$($J$$$N$K!“0z?t$H$7$FI,MW$J>pJs$@$1A}$($k!W$H$$$&!”$&$l$7$/$J$$e(B
e$BJ}8~$Ne(BAPIe$BJQ99$G$7$?$7!#e(B

e$B5U$K!"!V8F$S=P$5$l$?%3%s%F%-%9%H$KG{$i$l$:$K8F$Y$k!W$H$$$&0UL#$Ge(B
e$B$O<+M3EY$,>e$,$C$?$H$$$&%a%j%C%H$,$"$k$+$b$7$l$^$;$s!#e(B

e$B$?$7$+$K$=$&$+$b$7$l$^$;$s$,!"$=$N<+M3EY$rMxMQ$9$k5!2q$,$"$^$j;W$$$D$-$^$;$s!#e(B
e$B$^$?$=$&$$$&!V3HD%!W$G$7$?$i!"e(BAPIe$BL>$bJQ$($k$N$,>oEe<jCJ$@$H;W$$$^$9!#e(B