[#47501] Hash の制約について( Ruby1.8) — 上田佳寛 <ueda@...>
皆様はじめまして
8 messages
2010/10/01
[#47528] Ruby1.9.1 p430へのRDE インストールについて — eiichi_maekawa@...
5 messages
2010/10/07
[#47529] ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — jugyo kohno <kkohno@...>
jugyo と申します
11 messages
2010/10/08
[#47562] Re: ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない
— "Y. NOBUOKA" <nobuoka@...>
2010/10/15
信岡です。
[#47563] SketchUpのRubyでwin32oleをrequireする方法について(質問)
— "yahata hisashi" <yahatah@...>
2010/10/16
Google SketchUpのRubyでwin32oleをrequireする方法について教えていただきたく
[#47564] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— Masaki Suketa <masaki.suketa@...>
2010/10/16
助田です。
[#47566] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— "yahata hisashi" <yahatah@...>
2010/10/16
助田 雅紀様
[#47567] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— Masaki Suketa <masaki.suketa@...>
2010/10/16
助田です。
[#47537] Excel用のxmlssファイルを作成するライブラリ exlap_c — "YOSHIIZUMI" <t-yoshiizumi@...>
吉泉といいます。
11 messages
2010/10/10
[#47575] Re: Excel用のxmlssファイルを作成するライブラリ exlap_c
— 染谷 康一 <kouichi_someya@...>
2010/10/18
吉泉さん
[#47547] 正規表現で困っています — 成田恭一[NWH] <ntnarita_prn@...>
Ruby初心者の成田と申します。
7 messages
2010/10/13
[#47578] Ruby1.9.2のRDocで定義が出力されないことがある — KANAI-Takashi <kanai@...>
こんにちは。
6 messages
2010/10/18
[ruby-list:47515] Re: Hash の制約について( Ruby1.8)
From:
"T.Watanabe" <wtnabe@...>
Date:
2010-10-02 15:14:55 UTC
List:
ruby-list #47515
wtnabeです。
削除の件は置いといて、ちょっと興味が湧いたので試してみました。
コードはこんな感じに書き換えてあります。
friends = Hash.new
i = 0
while i < 5000000
i_s = i.to_s
friends[i_s.intern] = i.to_s
i = i + 1
end
puts "size = #{friends.size}"
puts "friends[:0] = #{friends[0.to_s.intern]}"
puts "friends[:1] = #{friends[1.to_s.intern]}"
puts "friends[:2097152] = #{friends[2097152.to_s.intern]}"
puts "friends[:4999999] = #{friends[4999999.to_s.intern]}"
puts "friends[:5000000] = #{friends[5000000.to_s.intern]}"
puts "friends[:5000001] = #{friends[5000001.to_s.intern]}"
puts "i = #{i}"
これをいくつかの処理系で動かしてみました。環境は OSX 10.5 です。
info: rbx-1.0.1-20100603: rubinius 1.0.1 (1.8.7 release 2010-06-03 JI)
[i686-apple-darwin9.8.0]
size = 5000000
friends[:0] = 0
friends[:1] = 1
friends[:2097152] = 2097152
friends[:4999999] = 4999999
friends[:5000000] =
friends[:5000001] =
i = 5000000
info: ruby-1.8.7-p299: ruby 1.8.7 (2010-06-23 patchlevel 299)
[i686-darwin9.8.0]
size = 2097152
friends[:0] = 4194304
friends[:1] = 4194305
friends[:2097152] = 4194304
friends[:4999999] = 4999999
friends[:5000000] = 2902848
friends[:5000001] = 2902849
i = 5000000
info: ruby-1.9.2-head: ruby 1.9.2p14 (2010-10-02 revision 29393)
[i386-darwin9.8.0]
num_of_hash.rb:7:in `intern': symbol table overflow (symbol 2095603)
(RuntimeError)
from num_of_hash.rb:7:in `<main>'
こうして見ると Rubinius の結果が元質問の意図に沿ったものなんじゃないか
という感じがします。
で、1.9.2 が吐いてるように Symbol 周りで何か起きてるような印象です。
1.8.7 では書き込まれているはずのない値が返ってくるし、存在しないはずの
key が存在してるようです。
--
wtnabe