* method.h(rb_method_definition_struct): remove a comma after the last element
  of enum.  fix for r37198.

git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2012-10-17

git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (vm_getivar, vm_setivar): support index inline cache
  with rb_call_info_t to speedup `attr' getter and setter.
  Cached index is stored in rb_call_info_t::aux::index.
  `index' == 0 means not cached. `index' > 0 means cached and cached
  index is `index - 1'.
* insns.def ((get|set)instancevariable): use new wrapper functions
  vm_(get|set)instancevariable() defined in vm_insnhelper.c.
* vm_core.h (rb_call_info_t::aux): introduce new union data because
  opt_pc can share with index.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (vm_invoke_block): vm_caller_setup_args() can skip
  when splat flag is not set.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/bm_vm1_yield.rb: add a benchmark to measure `yield'
  (invoke empty block) performance.
* benchmark/bm_vm2_method_with_block.rb: add a benchmark to measure
  method invocation with empty block.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (vm_call_iseq_setup_2): separate tailcall and normal
  method frame setup functions.
  Add checking interrupts at the tailcall setup function.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c (initialize_copy): copy the underlying st_table on dup,
  rather than copying the hash key by key. [ruby-core:48009]

* test/ruby/test_hash.rb: relevant tests for initialize_copy

git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (vm_call_method): fix to return value immediately.
  Remove CHECK_INTS() after that method dispatch.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c (rb_threadptr_interrupt_mask): fix to check interrupt
  after interrupt_mask changed.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c (compile_dstr_fragments): use `putobject' instead of
  `putstring' for all of strings used by NODE_DSTR because
  ruby users can not grab this string.
  For example, the string object of "baz" in "foo#{bar}baz"
  is located by `putobject' (users can not touch "baz" object
  directly). This change reduces GC pressure.
  This improvement is suggested by Aaron Patterson.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/bm_vm2_dstr.rb: add a benchmark to measure
  performance of dynamic generated string ("foo#{bar}baz").



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (vm_search_method): fix a build error that occurs
          when OPT_INLINE_METHOD_CACHE is 0.

git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_hash.rb (TestHash#test_dup_equality): added a new test
  to show the problem of r37232.


git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: use tab for indentation.

git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/net/imap.rb: fix Net::IMAP::ResponseParser to accept
  message/delivery-status ([ruby-core:47920] [Bug #7146]),
  message/rfc822 attachments ([ruby-core:47921] [Bug #7147]), and
  (BODY ("MIXED")) ([ruby-core:47951] [Bug #7153]).

* test/net/imap/test_imap_response_parser.rb: related test.

git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: add credit.

git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
configure.in: multiple opt-dir

* configure.in (opt-dir): allow multiple directories separated by
  $PATH_SEPARATOR as well as dir_config in mkmf.rb. [ruby-core:47868]
  [Bug #7120]


git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (vm_call_method_missing): make a refactoring
  about method_missing process. Use `vm_call_method()' to invoke
  `method_missing' method instead of `rb_funcall2()'.
  In `vm_call_method()', set fastpath to `vm_call_method_missing()'
  if it can be cached.
* vm_core.h (rb_call_info_t): add new field
  `rb_call_info_t::aux::missing_reasion' to pass the reason to
  `vm_call_method_missing()'.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (vm_getivar): fix to use `aux.index' instead of
  `aux.opt_pc'.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/bm_vm2_method_missing.rb: add a benchmark to measure
  performance of invoking `method_missing'.



git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@37245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e