Project

General

Profile

Bug #3899

32 ビットマシンにおいて、symbol table overflow (RuntimeError) が 2Mi 個のシンボルで起きる

Added by metanest (Makoto Kishimoto) about 10 years ago. Updated over 9 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
ruby -v:
ruby 1.9.3dev (2010-08-31 trunk 29154) [i686-linux]
Backport:

Description

=begin
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) が起きる。
=end

Also available in: Atom PDF