string.c: shrink too big buffer

* string.c (rb_str_resize): shrink the buffer even if new length
  is same but it is enough smaller than the capacity.

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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
file.c: shrink expanded path

* file.c (expand_path): shrink expanded path which no longer needs
  rooms to append.  [ruby-core:63114] [Bug #9934]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
string.c: shrink before freezing

* string.c (rb_str_freeze): shrink the buffer before freezing, as
  pointed out by Eric Wong at [ruby-core:63119].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/net/http/responses.rb: added Net::HTTPPermanentRedirect(308)
  Contributed by @yorkie [fix GH-638]

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

* string.c (rb_str_resize): should consider the capacity instead
  of the old length, as pointed out by nagachika.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
add more test coverage for [ruby-core:63136] [Bug #9934]

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

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

* array.c (rb_ary_permutation): `p` is the array of size `r`, as
  commented at permute0().  since `n >= r` here, buffer overflow
  never happened, just reduce unnecessary allocation though.

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

* array.c (yield_indexed_values): extract from permute0(),
  rpermute0(), and rcombinate0().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
array.c: combination on a shared copy

* array.c (rb_ary_combination): iterate on a shared copy, and use
  array of indexes instead of array of chosen objects.
  [ruby-core:63149] [Bug #9939]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_trace.c: clear and restore recursive checking thread local data
  to avoid unexpected throw from TracePoint.
  [Bug #9940]
* test/ruby/test_settracefunc.rb: add a test.
* thread.c: adde
  * rb_threadptr_reset_recursive_data(rb_thread_t *th);
  * rb_threadptr_restore_recursive_data(rb_thread_t *th, VALUE old);
* vm_core.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_trace.c: add new method TracePoint.stat to debug
  TracePoint mechanism.
  Ruby users should not use this method. So I don't note this method
  in the NEWS file.
* test/runner.rb: detect zombie active TracePoints with
  TracePoint.stat.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* man/rake.1: [DOC] Update links for Rake, patch by @hsbt [Bug #9904]
  [Fixes GH-628] https://github.com/ruby/ruby/pull/628 [ci skip]


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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[DOC] Please see _the_ official issue tracker... [ci skip]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
string.c: fix wrong capa

* string.c (rb_str_resize): update capa only when buffer get
  reallocated.
  http://d.hatena.ne.jp/nagachika/20140613/ruby_trunk_changes_46413_46420#r46413

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

* array.c (combinate0): extract.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
array.c: non-recursive permute0

* array.c (permute0): remove recursion, by looping with indexes
  stored in `p`.  [ruby-core:63103] [Bug #9932]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
array.c: non-recursive rpermute0

* array.c (rpermute0): remove recursion, by looping with indexes
  stored in `p`.

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