* lib/cgi/util.rb (CGI::Util#escape, unescape): Unuse regexp special
  global variable. [Feature #8648] Thanks to fotos.

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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/st.h (st_strcasecmp): Macro defined for compatibility.
  (st_strncasecmp): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: fix heaps_header and heaps_slot to reduce memory consumption.
  (1) move heaps_header::start and limit to  heaps_slot.
  (2) remove heaps_header::end which can be calculated by start+limit.
* gc.c: catch up above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: re-design the heap structure.
  (1) The heap is consists of a set of slots.
  (2) Each "slot" has a "slot_body".
  slot::start and slot::limit specify RVALUE beginning address
  and number of RVALUE in a "slot_body".
  (3) "slot_body" contains a pointer to slot (slot_body::header::slot)
  and an array of RVALUE.
  (4) heap::sorted is an array of "slots", sorted by an address of
  slot::body.
  See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
  for more details (figure).
* gc.c: Avoid "heaps" terminology. It is ambiguous.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (unlink_heap_slot): fix memory leak.
  free slot itself at free_heap_slot().
  Reproduce-able code is here:
  N1 = 100_000; N2 = 1_000_000
  N1.times{ary = []; N2.times{ary << ''}}
  Maybe this problem is remaining in Ruby 2.0.0.
* gc.c (unlink_heap_slot): remove not working code.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (rb_objspace_free): free slot itself.
* gc.c (objspace_each_objects): fix condition.
  Use slot->body instead of slot.
* gc.c (count_objects): use "slot" variable.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: catch up last changes for debugging/checking mode.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hash.c: key name in error message

* hash.c (env_fetch): Add key name to message on ENV.fetch KeyError,
  as well as Hash#fetch.  [ruby-core:56062] [Feature #8649]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: rename heap management functions with prefix "heap_".
* allocate_sorted_array() -> heap_allocate_sorted_array().
* slot_add_freeobj()      -> heap_slot_add_freeobj().
* assign_heap_slot()      -> heap_assign_slot().
* add_heap_slots()        -> heap_add_slots().
* init_heap()             -> heap_init().
* set_heap_increment()    -> heap_set_increment().
* gc.c (initial_expand_heap): inlined in rb_gc_set_params().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c (rb_hash_replace): performance improvement by using
  st_copy().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bignum.c: An static assertion for relation of SIZEOF_LONG and
  SIZEOF_BDIGITS is added.
  (bary_mul_precheck): Reduce comparisons.
  (bary_mul): Invoke bary_sq_fast or bary_mul1 if the bignum size is
  small.
  (bigfixize): Resize the argument bignum here.
  (bignorm): Don't call bigtrunc after bigfixize.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c (delete_if_i): use ST_DELETE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: rename gc related functions with prefix "gc_".
* before_gc_sweep() -> gc_before_sweep().
* after_gc_sweep()  -> gc_after_sweep().
* lazy_sweep()      -> gc_lazy_sweep().
* rest_sweep()      -> gc_rest_sweep().
* slot_sweep()      -> gc_slot_sweep().
* gc.c: rename a heap management function with prefix "heap_".
* get_freeobj() -> heap_get_freeobj().
* gc.c: rename markable_object_p() to is_markable_object().



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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bignum.c (BDIGITS_ZERO): Defined.
  (bary_pack): Use BDIGITS_ZERO.
  (bary_unpack): Ditto.
  (bary_mul_single): Ditto.
  (bary_mul_normal): Ditto.
  (bary_sq_fast): Ditto.
  (bary_mul_balance_with_mulfunc): Ditto.
  (bary_mul_precheck): Ditto.
  (bary_mul_toom3_branch): Ditto.
  (rb_cstr_to_inum): Ditto.
  (big_shift3): Ditto.
  (bigmul1_toom3): Ditto.
  (bary_divmod): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c (str_alloc): no need to clear RString (already cleared).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (ary_alloc): slim setup process.



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

* include/ruby/ruby.h (ruby_safe_level_4): get rid of special
  character.  [ruby-dev:47512] [misc #8646]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/ruby.h: fix spell miss.



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