From: Makoto Kishimoto Date: 2010-10-03T16:05:42+09:00 Subject: [ruby-dev:42328] [Ruby 1.9-Bug#3899][Open] 32 ビットマシンにおいて、symbol table overflow (RuntimeError) が 2Mi 個のシンボルで起きる Bug #3899: 32 ビットマシンにおいて、symbol table overflow (RuntimeError) が 2Mi 個のシンボルで起きる http://redmine.ruby-lang.org/issues/show/3899 起票者: Makoto Kishimoto ステータス: Open, 優先度: Low カテゴリ: core, Target version: 1.9.x ruby -v: ruby 1.9.3dev (2010-08-31 trunk 29154) [i686-linux] 32 ビットマシンにおいて、 gc.c の rb_obj_id のコメントには、 * symbol ssssssssssssssssssssssss00001110 * symbol 000SSSSSSSSSSSSSSSSSSSSSSSSSSS0 S...S % A = 4 (S...S = s...s * A + 4) とあり、symbol のための id = hash のための空間は 24bit すなわち 16Mi 個ぶんあるはずなのに、2Mi 個超のシンボルを作ろうとすると、symbol table overflow (RuntimeError) が起きる。 ---------------------------------------- http://redmine.ruby-lang.org