Problem with SystemStackError

Hi!
I got the following problem:

?> a = (0…size).to_a

b =
[(0…size).to_a,a.map(&:to_s)].transpose.values_at(*((0…120).to_a))
=> [[0, “0”], [1, “1”], [2, “2”], [3, “3”], [4, “4”], [5, “5”], [6,
“6”], [7, “7”], [8, “8”], [9, “9”], [10,
“10”], [11, “11”], [12, “12”], [13, “13”], [14, “14”], [15, “15”], [16,
“16”], [17, “17”], [18, “18”], [19,
“19”], [20, “20”], [21, “21”], [22, “22”], [23, “23”], [24, “24”], [25,
“25”], [26, “26”], [27, “27”], [28,
“28”], [29, “29”], [30, “30”], [31, “31”], [32, “32”], [33, “33”], [34,
“34”], [35, “35”], [36, “36”], [37,
“37”], [38, “38”], [39, “39”], [40, “40”], [41, “41”], [42, “42”], [43,
“43”], [44, “44”], [45, “45”], [46,
“46”], [47, “47”], [48, “48”], [49, “49”], [50, “50”], [51, “51”], [52,
“52”], [53, “53”], [54, “54”], [55,
“55”], [56, “56”], [57, “57”], [58, “58”], [59, “59”], [60, “60”], [61,
“61”], [62, “62”], [63, “63”], [64,
“64”], [65, “65”], [66, “66”], [67, “67”], [68, “68”], [69, “69”], [70,
“70”], [71, “71”], [72, “72”], [73,
“73”], [74, “74”], [75, “75”], [76, “76”], [77, “77”], [78, “78”], [79,
“79”], [80, “80”], [81, “81”], [82,
“82”], [83, “83”], [84, “84”], [85, “85”], [86, “86”], [87, “87”], [88,
“88”], [89, “89”], [90, “90”], [91,
“91”], [92, “92”], [93, “93”], [94, “94”], [95, “95”], [96, “96”], [97,
“97”], [98, “98”], [99, “99”], [100,
“100”], [101, “101”], [102, “102”], [103, “103”], [104, “104”], [105,
“105”], [106, “106”], [107, “107”],
[108, “108”], [109, “109”], [110, “110”], [111, “111”], [112, “112”],
[113, “113”], [114, “114”], [115,
“115”], [116, “116”], [117, “117”], [118, “118”], [119, “119”]]

b =
[(0…size).to_a,a.map(&:to_s)].transpose.values_at(*((0…a.size).to_a))
SystemStackError: stack level too deep
from /usr/lib/ruby/1.9.1/irb/workspace.rb:80
Maybe IRB bug!

size
=> 162000

[ram@thingol:~/src/git/extcsv/extcsv/trunk]ruby-v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

Is this really a bug or do I misuse something?

thanks
ralf

On 04/24/2012 02:07 PM, Ralf M. wrote:

“46”], [47, “47”], [48, “48”], [49, “49”], [50, “50”], [51, “51”], [52, “52”],
[53, “53”], [54, “54”], [55,
from /usr/lib/ruby/1.9.1/irb/workspace.rb:80
ralf

it works with jruby-1.6.3

Hi,

It seems to be a memory limitation of IRB. When I replace a.size (i. e.
162_000) with a smaller number like 130_000, it does work.

Anyway, I have no idea what you are trying to do. IRB certainly isn’t
meant for displaying a gigantic number of arrays (and your code is
rather inefficient, because you’re are creating lots of unneccessary
temporary arrays).

See bug splat with many arguments on ruby tracker.
On Tue, Apr 24, 2012 at 10:16:21PM +0900, Jan E. wrote:


Posted via http://www.ruby-forum.com/.

The monitor needs another box of pixels.

On 04/24/2012 03:16 PM, Jan E. wrote:

Hi,

It seems to be a memory limitation of IRB. When I replace a.size (i. e.
162_000) with a smaller number like 130_000, it does work.

Anyway, I have no idea what you are trying to do. IRB certainly isn’t
meant for displaying a gigantic number of arrays (and your code is
rather inefficient, because you’re are creating lots of unneccessary
temporary arrays).

I extracted it from scripts, which shows this error. there is no
difference between irb and ruby concerning
this error.
btw - representing results can be suppressed by setting
conf.return_format=’’

regards
ralf

On 04/24/2012 10:13 PM, Ondřej Bílka wrote:

See bug splat with many arguments on ruby tracker.
On Tue, Apr 24, 2012 at 10:16:21PM +0900, Jan E. wrote:
Thanks for the hint, it seems to be related to variable length argument
list. it’s postponed to ruby 2.0.

cheers
ralf