Issue #9079 has been updated by ko1 (Koichi Sasada).

Target version set to next minor

Does it has huge impact?
It is easy to add an instruction (replace concatstrings to concatstrings_and_make_it_symbol) or add a method like that.
However, it has a bit problem about encoding.
Current implementation is easy and safe, because we can catch up encoding related change to String.
I want to remain this issue, if this does not have huge impact for performance.

----------------------------------------
Bug #9079: Interpolated Symbol creates unnecessary intermediate String on the heap
https://bugs.ruby-lang.org/issues/9079#change-43600

Author: wycats (Yehuda Katz)
Status: Open
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: 
Target version: next minor
ruby -v: ruby 2.0.0p343 (2013-10-31) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


This case:

  x = "world"
  y = :"hello#{world}!"

allocates one T_STRING according to ObjectSpace.count_objects. Since all of the concatenation happens as part of the symbol generation, it shouldn't be necessary to create a Ruby string.


-- 
http://bugs.ruby-lang.org/