proc.c: method body GC guard

* proc.c (rb_mod_define_method): guard method body to prevent its
  method entry from GC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2014-10-13

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
symbol.c: rename rb_str_dynamic_intern

* internal.h (rb_str_dynamic_intern): remove.

* iseq.c, marshal.c, string.c: use rb_str_intern instead of
  rb_str_dynamic_intern.

* symbol.c (rb_str_intern): rename rb_str_dynamic_intern.
symbol.c: immortal IDs

* symbol.c (global_symbols): make IDs immortal always, instead
  of treating dynamic symbols as IDs.
symbol.c: ids array

* symbol.c (global_symbols): make ids two-dimensional array of
  strings and symbols, for write-barrier.