From: SASADA Koichi Date: 2012-09-19T19:38:16+09:00 Subject: [ruby-core:47592] Re: [ruby-trunk - Feature #6668] Multiple assignment should not return an Array object (2012/09/19 0:08), headius (Charles Nutter) wrote: > This is an artifact of MRI's implementation, since multiple assignment was traditionally implemented by taking the array node on the right-hand side, standing it up as a full Ruby Array, and then peeling elements off for assignment on the left-hand side. It is also a performance issue, since it requires constructing the RHS array even when it is never used (unless you are able to do various compiler tricks). I propose removing it. FYI, from 1.9 the Array for RHS is not generated if it is not needed. # not generated a, b = c, d a, b, c = d, e # generated a = b, c a = b, c, d I remain the spec because of compatibility. #=> go to matz issue. As you say the case which need to generate an array are not major case, it is not performance problem in my opinion. Thanks, Koichi -- // SASADA Koichi at atdot dot net