[Feature #3065] [TypedData] $B$H$$$&L>A0$K$D$$$F(B

Feature #3065: [TypedData] e$B$H$$$&L>A0$K$D$$$Fe(B
http://redmine.ruby-lang.org/issues/show/3065

e$B5/I<<Te(B: Tadashi S.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal

e$B:XF#$H?=$7$^$9!#e(B

1.9.2e$B$K<h$j9~$^$l$J$$$G$"$m$&$3$H$OI4Fs==$/$i$$>5CN$G!"e(BTypedDatae$B$Ke(B
e$BIU$$$F$N5?LdE@$r$$$/$D$+=q$+$;$F$$$?$@$-$^$9!#e(B

trunke$B$K$O!"e(BRDatae$B$NBe$o$j$Ke(B(e$B$J$j$=$&$Je(B)RTypedDatae$B$,F3F~$5$l$^$7$?$,!"e(B
e$B$3$l$ONI$/$J$$L>A0$G$O$J$$$G$7$g$&$+!#e(B

e$B$^$:!“?7$7$$9=B$BN$K$O!Ve(BTypee$B!W$H$$$&C18l$,DI2C$5$l$?$o$1$G$9$,!”$3$l$Oe(B
struct
RTypedDatae$B$N%a%s%P!<$G$"$ke(Btypee$B$+$i;!$9$k$K!“e(Brb_data_type_te$B$Ne(B
e$B;v$r;X$7!”$=$l$K$h$C$F7?$r$^$H$a$F%A%'%C%/$G$-$ke(B(rb_typeddata_is_kind_of)
e$B$H$$$&0UL#$K$J$k$H;W$$$^$9!#e(B

e$B$7$+$7$5$5$@$5$s$H@hF|e(BTwittere$B>e$GOC$7$?$H$3$m!“$3$l$r:n$C$?<g$JF05!$Oe(B
e$B%a%b%j;HMQ>u67$N@53N$JGD0.$K$”$k!“$D$^$je(Brb_data_type_te$B$H$7$FDI2C$Ge(B
dsizee$B4X?t$,$G$-$?$3$H$K$”$k$h$&$G$7$?!#e(B(e$B4V0c$C$F$$$?$i$9$_$^$;$se(B)

e$B$D$^$j!V<+J,$G%a%b%j;HMQNL$rCN$C$F$$$ke(BRDatae$B!W$r:n$j$?$+$C$?$N$K!“e(B
e$BL>A0$+$iEA$o$k0u>]$O$=$l$H0[$J$j!”!V7?$NGD0.$,4JC1$Je(BRDatae$B!W$K$J$C$Fe(B
e$B$7$^$C$F$$$^$9!#e(B

e$B!Ve(BTypede$B!W$K$b$7!V<+J,$N;q8;>CHqNL$rCN$C$F$$$k!W$H$$$&0UL#$,$"$l$P!"e(B

e$BLdBj$J$$$H;W$$$^$9!#$=$N>l9g!"C1$K<+J,$NCN<1ITB-$N$G!"e(BClosee$B$7$Fe(B

e$B$/$@$5$$!#$4$a$s$J$5$$!#e(B

e$B<+J,$N:#$^$G$N%3%s%T%e!<%?$NCN<1$G$O!“!V7?!W$H$$$&8@MU$K$O!”$=$Ne(B
e$B%*%V%8%'%/%H$,8=<B$N%3%s%T%e!<%?$G$I$l$[$I;q8;$r?)$C$F$$$k$+!"$H$$$&e(B
e$B0UL#$G$O;H$o$l$J$$$H;W$$$^$9!#$b$7$=$&$J$i$P!"L>$,BN$rI=$7$F$$$J$$$Ne(B
e$B$G!"NI$/$J$$L>A0$@$H;W$$$^$9!#e(B

e$B%a%b%j%5%$%:$,B,$l$k$H$$$&$3$H$rEA$($k$N$J$i$P!"%7%s%W%k$K!Ve(BRSizedDatae$B!We(B
e$B$H$+$NJ}$,!"J,$+$j$d$9$/$FNI$$$H;W$$$^$9!#e(B

e$B$H$$$&!“e(BAPIe$BJQ99$NDs0F$G$7$?!#8m2r$,$?$/$5$s$”$k$+$b$7$l$^$;$s$,!"$I$&$>e(B
e$B$h$m$7$/$*4j$$$7$^$9!#e(B

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

2010e$BG/e(B4e$B7ne(B1e$BF|e(B0:30 Tadashi S.
[email protected]:

e$BL>A0$+$iEA$o$k0u>]$O$=$l$H0[$J$j!"!V7?$NGD0.$,4JC1$Je(BRDatae$B!W$K$J$C$Fe(B
e$B$7$^$C$F$$$^$9!#e(B

twitter e$B>e$N5DO@$OFI$s$G$$$^$;$s$,!“:G=i$NF05!$,$J$s$G$”$m$&$H!"e(B
rb_data_type_t e$B$r!Ve(BData
e$B$N7?>pJs!W$H9M$($k$N$OIT<+A3$G$O$J$$$He(B
e$B;W$$$^$7$?!#e(B
e$B=>Mh$Oe(B dfree e$B$N%]%$%s%?$rHf3S$9$k$H$$$&e(B dirty hack
e$B$G7?%A%'%C%/e(B
e$B$7$F$$$?$H$3$m$,!"e(Brb_data_type_t e$B$NHf3S$K$J$C$?$N$Oe(B
TypedData e$B$Ne(B
e$B=EMW$J8y@S$@$H;W$$$^$9!#e(B

e$B$^$?!"e(Brb_data_type_t
e$B$O>-MhE*$K3HD%$G$-$k$h$&$K$b$J$C$F$$$k$?$a!"e(B
RSizedData e$B$_$?$$$J8BDj$O$7$J$$J}$,$$$$$H;W$$$^$9!#e(B

e$B:XF#$G$9!#$5$5$@$5$s$NEj9F$rBT$?$:$K=q$$$A$c$C$F?=$7Lu$J$$$G$9$,!"e(B

On Thu, 1 Apr 2010 01:09:55 +0900
Yusuke ENDOH [email protected] wrote:

e$B$D$^$j!V<+J,$G%a%b%j;HMQNL$rCN$C$F$$$ke(BRDatae$B!W$r:n$j$?$+$C$?$N$K!“e(B
e$BL>A0$+$iEA$o$k0u>]$O$=$l$H0[$J$j!”!V7?$NGD0.$,4JC1$Je(BRDatae$B!W$K$J$C$Fe(B
e$B$7$^$C$F$$$^$9!#e(B

(snip)

e$B=>Mh$Oe(B dfree e$B$N%]%$%s%?$rHf3S$9$k$H$$$&e(B dirty hack e$B$G7?%A%'%C%/e(B
e$B$7$F$$$?$H$3$m$,!"e(Brb_data_type_t e$B$NHf3S$K$J$C$?$N$Oe(B TypedData e$B$Ne(B
e$B=EMW$J8y@S$@$H;W$$$^$9!#e(B

e$B$3$l$OF10U$7$^$9!#$7$+$7!“$=$l$r<g4c$K?7$7$$9=B$BN$de(BAPIe$B$r:n$C$?$H$O!”<+J,$Oe(B
e$B;W$($J$+$C$?$N$G$9!#$D$^$j!“NI$$I{:nMQ$,$”$k$H$O;W$$$^$9$,!“$=$NI{:nMQ<+?H$re(B
e$BL>A0$K$9$k$Y$-$G$O$J$$$H;W$$$^$9!#$”$/$^$GL>A0$O!":n$C$?L\E*$K9g$o$;$FIU$1$?e(B
e$BJ}$,NI$$$G$7$g$&!#e(B

e$B$H$3$m$G<+J,$N3HD%%i%$%V%i%j$G$O!"e(BCLASS_OF(obj) ==

cMyClasse$B$Ge(B

e$B8+$A$c$C$F$$$^$9$,!“$3$l$@$H2?$+$^$:$$!”$s$G$9$h$M$'!#M}2r$,B-$j$J$/$Fe(B

e$B?=$7Lu$J$$$G$9!#e(B

e$B$^$?!"e(Brb_data_type_t e$B$O>-MhE*$K3HD%$G$-$k$h$&$K$b$J$C$F$$$k$?$a!"e(B
RSizedData e$B$_$?$$$J8BDj$O$7$J$$J}$,$$$$$H;W$$$^$9!#e(B

e$B$?$7$+$K!“e(Breserved[3]e$B$,$”$j$^$9$M!#$G$O!“$I$N$h$&$J3HD%$,$J$5$l$kM=Dj$J$Ne(B
e$B$G$7$g$&$+e(B?
e$B3HD%$,$5$l$k$J$i$P!”$J$*$5$i$=$NM=Dj$rF’$^$($FL>A0$r$D$1$k$Y$-$G$9e(B
e$B$h$M!#3HD%$K$h$C$F!“!Ve(BTypede$B!W$,$h$jFCD’IU$1$i$l$kJ}8~$G$”$k$H$O!"<+J,$K$Oe(B
e$BFI$a$^$;$s$G$7$?!#e(B

e$B$b$72r@O$G$-$kItJ,$rA}$d$9$N$,<g4c$J$i$P!"e(BTracedDatae$B$H$+!"e(BMeasuredDatae$B$H$+!"e(B
AnalyzedDatae$B$,$$$$$+$b$7$l$^$;$s!#e(B(-ede$B$8$c$J$/$Fe(B-ablee$B$,$$$$$+$b$7$l$^$;$se(B)

e$B$=$&$$$&;v$,<g4c$G$J$/!“$=$NB>$NLn?4E*$JL\I8$,$”$k$J$i!"B>$NL>A0$,$$$$$G$7$g$&!#e(B
e$BCj>]E*$K!“e(BSmartDatae$B$H$+!#$?$@!”$=$3$^$GCj>]E*$JL>A0$7$+IU$1$i$l$J$$$[$I!“L\E*$,e(B
e$BITL@NF$G$O$J$$$O$:$@!”$H4|BT$7$F$$$^$9!#e(B

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

At Thu, 1 Apr 2010 02:16:19 +0900,
Tadashi S. wrote in [ruby-dev:40891]:

e$B$H$3$m$G<+J,$N3HD%%i%$%V%i%j$G$O!"e(BCLASS_OF(obj) == cMyClasse$B$Ge(B

e$B8+$A$c$C$F$$$^$9$,!"$3$l$@$H2?$+$^$:$$!"$s$G$9$h$M$’!#M}2r$,B-$j$J$/$Fe(B

e$B?=$7Lu$J$$$G$9!#e(B

e$B0l@Z%5%V%/%i%9$r5v$5$J$$$J$i$=$l$b%"%j$+$b$7$l$^$;$s!#e(B

e$B!!$5$5$@$G$9!%e(B

(2010/04/01 2:16), Tadashi S. wrote::

e$B;W$($J$+$C$?$N$G$9!#$D$^$j!“NI$$I{:nMQ$,$”$k$H$O;W$$$^$9$,!"$=$NI{:nMQ<+?H$re(B
e$BL>A0$K$9$k$Y$-$G$O$J$$$H;W$$$^$9!#$"$/$^$GL>A0$O!":n$C$?L\E*$K9g$o$;$FIU$1$?e(B
e$BJ}$,NI$$$G$7$g$&!#e(B

e$B!!;DG0$J$,$i!$$=$l$,<g4c$G$9!%e(B

e$B!!%a%b%j4X78$,I{:nMQ$G$9!%e(B