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

it works with jruby-1.6.3

···

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

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

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).

···

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

See bug splat with many arguments on ruby tracker.

···

On Tue, Apr 24, 2012 at 10:16:21PM +0900, 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).

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

--

The monitor needs another box of pixels.

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 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).

Thanks for the hint, it seems to be related to variable length argument list. it's postponed to ruby 2.0.

cheers
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: