# Embedding struct RArray

**URL:** <https://www.ruby-forum.com/t/embedding-struct-rarray/149936>\
**Category:** Development\
**Created:** [October 1, 2008, 10:47am UTC](https://www.ruby-forum.com/t/embedding-struct-rarray/149936 "2008-10-01T10:47:32Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yugui\_SYuki\_S.S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/dec6dc/32.png) [@Yugui\_SYuki\_S.S](https://www.ruby-forum.com/u/Yugui_SYuki_S.S)\
**Post date:** [October 1, 2008, 10:47am UTC](https://www.ruby-forum.com/t/embedding-struct-rarray/149936/1 "2008-10-01T10:47:32Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

Yuguiã§ã™ã€‚

3è¦ç´ ä»¥ä¸‹ã®é…åˆ—ã‚’RVALUEã«åŸ‹ã‚è¾¼ã‚€ãƒ‘ãƒƒãƒã‚’æ›¸ãã¾ã—ãŸã€‚object, struct,  
string, hashã¨åˆã‚ã›ã¦ã€ã“ã‚Œã§ä¸€é€šã‚Šã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆåŸ‹ã‚è¾¼ã¿ãŒçµ‚ã‚ã‚‹ã¨èªè­˜  
ã—ã¾ã™ã€‚

1.9.0-5ãƒªãƒªãƒ¼ã‚¹å¾Œã€ABIãƒ•ãƒªãƒ¼ã‚ºã®å‰ã«å–ã‚Šè¾¼ã¿ãŸã„ã¨æ€ã„ã¾ã™ãŒã€ã„ã‹ãŒã§  
ã—ã‚‡ã†ã‹ã€‚

* * *

Yugui [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> **[世界線航跡蔵](https://blog.yugui.jp/)**
>
> 世界線航跡蔵

ç§ã¯ç§ã‚’Dumpã™ã‚‹  
-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v1.4.9 (Darwin)  
Comment: Using GnuPG with Mozilla - [http://enigmail.mozdev.org](http://enigmail.mozdev.org)

iEYEARECAAYFAkjjOQsACgkQOXzH5JLb/AVUHwCfZo+CpQFILqEImqTTaAbxUR2c  
yMUAnA0YiRcenkdK5HhVN20v7GMTN1oH  
=7Iwi  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

**Author:** ![Yugui\_SYuki\_S.S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/dec6dc/32.png) [@Yugui\_SYuki\_S.S](https://www.ruby-forum.com/u/Yugui_SYuki_S.S)\
**Post date:** [October 2, 2008, 6:38am UTC](https://www.ruby-forum.com/t/embedding-struct-rarray/149936/2 "2008-10-02T06:38:25Z")

</div>

default\_internal e$B$N4X78$G%9%1%8%e!\<%k$,CY$/$J$k$H$$$&5DO@$,e(B  
e$B?'!9$"$j$^$7$?$,!"8=:\_$Oe(B 9e$B7n$N%j%j!\<%9$,CY$/$J$C$?4X78$Ge(B  
e$B5U$Ke(B default\_internal  
e$B$N:n6H$b?J$^$J$$$h$&$J5$$,$7$F$-$^$7$?!#e(B

At 17:46 08/10/01, Yugui (Yuki S.) wrote:

> e$B$7$g$&$+!#e(B  
> Ruby e$BFbIt$N@lLg2H$G$O$“$j$^$;$s$,!”$$$$$N$G$O$J$$$G$7$g$&$+!#e(B  
> e$B$H$j$"$($:Aa$a$Ke(B 1.9.0-5  
> e$B$N%j%j!\<%9$r=P$7$F$$$?$@$-$?$$$G$9!#e(B  
> e$B@'Hs$I$3$,%M%C%/$K$J$C$F$$$k$+65$($F$/$@$5$$!#e(B

e$B59$7$/$\*4j$$$7$^$9!#e(B Martin.

#-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University  
#-#-# [http://www.sw.it.aoyama.ac.jp](http://www.sw.it.aoyama.ac.jp)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![Yugui\_SYuki\_S.S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/dec6dc/32.png) [@Yugui\_SYuki\_S.S](https://www.ruby-forum.com/u/Yugui_SYuki_S.S)\
**Post date:** [October 2, 2008, 8:17am UTC](https://www.ruby-forum.com/t/embedding-struct-rarray/149936/3 "2008-10-02T08:17:16Z")

</div>

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

e$B%j%j!\<%9$N%9%1%8%e!\<%k$K$D$$$F$OB\>$G$b8@$o$l$^$7$F!"8!F$Cf$G$9!#e(B

Martin D. e$B$5$s$O=q$-$^$7$?e(B:

> e$B$H$j$"$($:Aa$a$Ke(B 1.9.0-5 e$B$N%j%j!\<%9$r=P$7$F$$$?$@$-$?$$$G$9!#e(B

e$B$5$7$"$?$C$F!"e(B  
TestM17NCombe$B$He(BTC\_JSONUnicodee$B$,%F%9%H$K\<:GT$7$^$9!#2\<5-$Oe(BMacOS  
Xe$B$G$N\<B9Te(B  
e$BNc$G$9$,!"e(BDebian  
etche$B$G%F%9%H$K\<:GT$9$k$&$A$O%j%j!\<%9$O=P$7$^$;$s!#e(B

## test\_chars(TC\_JSONUnicode) [/Users/yugui/src/ruby/mri/test/fileutils/fileasserts.rb:8:in `_wrap_assertion' /Users/yugui/src/ruby/mri/test/fileutils/fileasserts.rb:8:in`\_wrap\_assertion’ /Users/yugui/src/ruby/mri/test/json/test\_json\_unicode.rb:53:in `test_chars']: <JSON::GeneratorError> exception expected but was Class: <ArgumentError> Message: <"broken UTF-8 string"> ---Backtrace--- /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:43:in`gsub’ /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:43:in `utf8_to_json' /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:341:in`to\_json’/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:300:in `block in json_transform' /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:299:in`map’ /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:299:in `json_transform' /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:270:in`block in to\_json’ /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:284:in `json_check_circular' /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:270:in`to\_json’ /Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/common.rb:183:in `generate' /Users/yugui/src/ruby/mri/test/json/test_json_unicode.rb:54:in`block in test\_chars’ /Users/yugui/src/ruby/mri/test/fileutils/fileasserts.rb:8:in `_wrap_assertion' /Users/yugui/src/ruby/mri/test/fileutils/fileasserts.rb:8:in`\_wrap\_assertion’ /Users/yugui/src/ruby/mri/test/json/test\_json\_unicode.rb:53:in `test\_chars’

1. Error:  
test\_unicode(TC\_JSONUnicode):  
ArgumentError: incompatible encoding regexp match (ASCII-8BIT regexp  
with UTF-8 string)

/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:44:in  
`gsub!’

/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:44:in  
`utf8\_to\_json’

/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:341:in  
`to\_json’

/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:300:in  
`block in json\_transform’

/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:299:in  
`map’

/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:299:in  
`json\_transform’

/Users/yugui/src/ruby/mri/tmp/master/.ext/common/json/pure/generator.rb:272:in  
`to_json' /Users/yugui/src/ruby/mri/test/json/test_json_unicode.rb:19:in`test\_unicode’

1. Failure:  
test\_str\_eq\_transitive(TestM17NComb)  
[/Users/yugui/src/ruby/mri/test/fileutils/fileasserts.rb:8:in  
`_wrap_assertion' /Users/yugui/src/ruby/mri/test/fileutils/fileasserts.rb:8:in`\_wrap\_assertion’  
/Users/yugui/src/ruby/mri/test/ruby/test\_m17n\_comb.rb:312:in `block in test_str_eq_transitive' /Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:82:in`block in  
each’  
/Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:75:in `block in each_index' /Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:45:in`block in  
make\_large\_block’  
/Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:26:in `block (2 levels) in make_basic_block' /Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:21:in`times’  
/Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:21:in `block in make_basic_block' /Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:20:in`times’  
/Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:20:in  
`make_basic_block' /Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:45:in`make\_large\_block’  
/Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:71:in `each_index' /Users/yugui/src/ruby/mri/test/ruby/allpairs.rb:82:in`each’  
/Users/yugui/src/ruby/mri/test/ruby/test\_m17n\_comb.rb:117:in  
`combination' /Users/yugui/src/ruby/mri/test/ruby/test_m17n_comb.rb:310:in`test\_str\_eq\_transitive’]:  
transitive: “\xA1\xA1”.force\_encoding(“Shift\_JIS”) ==  
“\xA1\xA1”.force\_encoding(“ASCII-8BIT”) ==  
“\xA1\xA1”.force\_encoding(“EUC-JP”).  
 is not true.

---

<div class="post-metadata">

**Author:** ![Yugui\_SYuki\_S.S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/dec6dc/32.png) [@Yugui\_SYuki\_S.S](https://www.ruby-forum.com/u/Yugui_SYuki_S.S)\
**Post date:** [October 7, 2008, 4:01pm UTC](https://www.ruby-forum.com/t/embedding-struct-rarray/149936/4 "2008-10-07T16:01:45Z")

</div>

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

In message “Re: [ruby-dev:36676] Re: Embedding struct RArray”  
on Tue, 7 Oct 2008 22:55:50 +0900, “Yugui (Yuki S.)”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B\>/$7=$@5$7$?%Q%C%Ae(B(e$BE:IUe(B)e$B$rE,MQ$7$F%Y%s%A%^!\<%/e(B(e$BE:IUe(B)e$B$r\<h$C$F$_$^$7$?!#e(B  
|e$BG[Ns$r@8@.$7$F\>.$5$J=$@5$r;$9!“$H$$$&$h$/$”$k%1!\<%9$K$D$$$F7k9=8z$$$F$$e(B  
|e$B$k$h$&$K;W$($^$9!#e(B  
|e$B$3$N%Q%C%A$N\<h$j9~$_$N7o!"$$$+$,$G$7$g$&$+e(B?

e$B$H$j$"$($:e(Btest-alle$B$J$I$G%(%i!\<$,A}$($J$1$l$P$$$$$s$8$c$J$$$Ge(B  
e$B$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![Yugui\_SYuki\_S.S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/dec6dc/32.png) [@Yugui\_SYuki\_S.S](https://www.ruby-forum.com/u/Yugui_SYuki_S.S)\
**Post date:** [October 7, 2008, 3:59pm UTC](https://www.ruby-forum.com/t/embedding-struct-rarray/149936/5 "2008-10-07T15:59:22Z")

</div>

Yuguiã§ã™ã€‚

å°‘ã—ä¿®æ­£ã—ãŸãƒ‘ãƒƒãƒ(æ·»ä»˜)ã‚’é©ç”¨ã—ã¦ãƒ™ãƒ³ãƒãƒžãƒ¼ã‚¯(æ·»ä»˜)ã‚’å–ã£ã¦ã¿ã¾ã—ãŸã€‚  
é…åˆ—ã‚’ç”Ÿæˆã—ã¦å°ã•ãªä¿®æ­£ã‚’æ–½ã™ã€ã¨ã„ã†ã‚ˆãã‚ã‚‹ã‚±ãƒ¼ã‚¹ã«ã¤ã„ã¦çµæ§‹åŠ¹ã„ã¦ã„  
ã‚‹ã‚ˆã†ã«æ€ãˆã¾ã™ã€‚  
ã“ã®ãƒ‘ãƒƒãƒã®å–ã‚Šè¾¼ã¿ã®ä»¶ã€ã„ã‹ãŒã§ã—ã‚‡ã†ã‹?

## % ruby benchmark/driver.rb -e “tmp/master/ruby-trunk; tmp/array/ruby-trunk” -d benchmark -p “vm1\_array” “1.8.7”

benchmark results:  
name ruby 1.9.0 (2008-10-07 revision 0) [i386-darwin9.5.0] ruby  
1.9.0 (2008-10-07 Array embedding 0) [i386-darwin9.5.0]  
loop\_whileloop 2.290 2.230  
vm1\_array00\* 56.080 34.768  
vm1\_array01\* 59.314 32.824  
vm1\_array02\* 58.405 37.891  
vm1\_array03\* 61.440 41.745  
vm1\_array04\* 67.146 60.404  
vm1\_array05\* 67.111 59.538  
vm1\_array06\* 70.136 63.797  
vm1\_array07\* 73.448 68.127  
vm1\_array08\* 78.289 72.425  
vm1\_array09\* 81.875 74.695  
vm1\_array10\* 80.650 83.679  
vm1\_array15\* 104.824 102.354  
vm1\_array20\* 136.173 132.310  
vm1\_array30\* 167.625 167.287  
vm1\_array40\* 209.358 221.168  
vm1\_array50\* 269.420 256.223
