* hash.c (rb_hash_rehash): make temporary st_table under the control
  of GC. [Bug #9187]

* test/ruby/test_hash.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c (getenv): fixed test failures introduced by r43950.
  [ruby-core:58774] [Bug #9195] reported by phasis68 (Heesob Park).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/rdoc:  Update to RDoc master 900de99.  Changes include:

  Fixed documentation display of constants

  Fixed handling of unknown parsers

* test/rdoc:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2013-12-03

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/openssl/lib/openssl/buffering.rb:  Return ASCII-8BIT strings from
  SSLSocket methods.  [ruby-trunk - Bug #9028]
* test/openssl/test_ssl.rb:  Test for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c (w32_getenv): should be static.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
signal.c: fault address

* signal.c (sigbus, sigsegv): show fault address in the bug message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rdoc/constant.rb: reapply r43006 for workaround of

 NoMethodError
* lib/rdoc/constant.rb (RDoc::Constant#documented?): workaround for
  NoMethodError when the original of alias is not found.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c (rb_fstring): Use st_update instead of st_lookup +
  st_insert.
* string.c (fstr_update_callback): New callback for st_update.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (ary_add_hash): set and return values because string keys
  will be frozen. [ruby-core:58809] [Bug #9202]

* array.c (rb_ary_uniq_bang): ditto.

* array.c (rb_ary_or): ditto.

* array.c (rb_ary_uniq): ditto.

* test/ruby/test_array.rb: tests for above.

The patch is from normalperson (Eric Wong).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (rb_ary_uniq_bang): remove duplicate code.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_rubyoptions.rb (TestRubyOptions::SEGVTest::ExpectedStderr):
  ignore fault address.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Add a description about string-scrub.gem to NEWS

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/ruby.h (struct RClass): Add wrapper struct around
  RClass->m_tbl with serial. This prevents double marking method
  tables, since many classes/modules can share the same method table.
  This improves minor mark time in a large application by 30%.
* internal.h (struct method_table_wrapper): Define new
  wrapper struct with additional serial.
* internal.h (RCLASS_M_TBL_INIT): New macro for initializing method
  table wrapper and st_table.
* method.h (void rb_sweep_method_entry): Rename rb_free_m_table to
  rb_free_m_tbl for consistentcy
* .gdbinit (define rb_method_entry): Update rb_method_entry gdb helper
  for new method table structure.
* class.c: Use RCLASS_M_TBL_WRAPPER and
  RCLASS_M_TBL_INIT macros.
* class.c (rb_include_class_new): Share WRAPPER between module and
  iclass, so serial can prevent double marking.
* eval.c (rb_prepend_module): ditto.
* eval.c (rb_using_refinement): ditto.
* gc.c: Mark and free new wrapper struct.
* gc.c (obj_memsize_of): Count size of additional wrapper struct.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* load.c (features_index_add_single): Move loaded_features_index array values off
  the ruby heap. [Bug #9201] [ruby-core:58805]
* load.c (loaded_features_index_clear_i): Clean up off-heap array structure.
* vm.c (rb_vm_mark): Remove unnecessary mark_tbl for loaded_features_index.
  This improves minor GC time by 15% in a large application.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (rb_hash_rehash): use hash_alloc() instead of rb_hash_new().
  [Bug #9187]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c (rb_obj_clone): Protect FL_PROMOTED and FL_WB_PROTECTED
  flags of a destination object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ChangeLog: complement the intention

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/net/smtp.rb:  [DOC] Fix typo

s/raies/raises/
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm_eval.c: rb_catch_protect

* vm_eval.c (rb_catch_protect): new function similar to
  rb_catch_obj(), but protect from all global jumps like as
  rb_load_protect(), rb_protect(), etc.

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