From: Bharanee Rathna Date: 2011-12-07T12:27:57+09:00 Subject: [ruby-core:41516] [ruby-trunk - Bug #5719] Hash::[] can't handle 100000+ args Issue #5719 has been updated by Bharanee Rathna. i shall give you four hints: stack, heap, push, pop ruby's behavior is expected. you can pass Hash::[] an array instead i think. Hash[[[:a, 1], [:b, 2]]] #=> {:a=>1, :b=>2} ---------------------------------------- Bug #5719: Hash::[] can't handle 100000+ args http://redmine.ruby-lang.org/issues/5719 Author: Nick Quaranto Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: - I couldn't pin down an exact size for when/how this occurs, but I have code that was creating hashes just fine with Hash::[] with 300k+ arguments. irb(main):056:0> (0...140000).map { |n| [:a, n] }.tap { |a| Hash[*a] }.size SystemStackError: stack level too deep from /Users/qrush/.rbenv/versions/1.9.3-p0/lib/ruby/1.9.1/irb/workspace.rb:80 Maybe IRB bug! irb(main):057:0> (0...130000).map { |n| [:a, n] }.tap { |a| Hash[*a] }.size => 130000 -- http://redmine.ruby-lang.org