Граф коммитов

28780 Коммитов

Автор SHA1 Сообщение Дата
akr b359d20352 * array.c (rb_ary_sum): Array#sum is implemented.
Kahan's compensated summation algorithm for precise sum of float
  numbers is moved from ary_inject_op in enum.c.

* enum.c (ary_inject_op): Don't specialize for float numbers.

  [ruby-core:74569] [Feature#12217] proposed by mrkn.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 13:51:53 +00:00
nobu c258535186 numeric.c: flo_ceil
* numeric.c (flo_ceil): add an optional parameter, digits, as
  well as Float#round.  [Feature #12245]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 06:56:36 +00:00
nobu d56b277684 numeric.c: flo_floor
* numeric.c (flo_floor): add an optional parameter, digits, as
  well as Integer#floor.  [Feature #12245]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 06:54:38 +00:00
nobu a1542d33ca numeric.c: int_ceil
* numeric.c (int_ceil): add an optional parameter, digits, as
  well as Integer#round.  [Feature #12245]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 06:50:24 +00:00
nobu 15558a8f57 numeric.c: int_floor
* numeric.c (int_floor): add an optional parameter, digits, as
  well as Integer#round.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 06:47:55 +00:00
nobu 096137e84f file.c: File.empty?
* file.c (Init_File): add alias File.empty? to File.zero?.
  [Feature #9969]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 05:47:49 +00:00
nobu 134d1ce892 parse.y: massign in cond
* parse.y (assign_in_cond): allow multiple assignment in
  conditional expression.  [Feature #10617]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 05:36:26 +00:00
nobu 1ea1d2e4a7 numeric.c: int_round_zero_p
* bignum.c (rb_big_size): add wrapper function of BIGSIZE and
  rename the method funtion with _m suffix.
* numeric.c (int_round_zero_p): extracted from rb_int_round.
  optimize for Bignum, and convert VALUE returned by Numeric#size
  to long.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 05:12:01 +00:00
ko1 9d25813745 * test/ruby/test_basicinstructions.rb: add a test to check access
instance variables on special const objects.

  All of such objects are frozen, so that we can not set instance
  variables for them. But we can read instance variables and return
  default value (nil).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-13 03:03:37 +00:00
nobu 456523e2ed date_core.c: preserve timezone
* ext/date/date_core.c (time_to_time): should preserve timezone
  info.  [ruby-core:74889] [Bug #12271]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-12 11:40:37 +00:00
nobu 6648d61578 compile.c: initialize LABEL fields
* compile.c (new_label_body): initialize bit fields, since
  compile_data_alloc does not clear the memory.  [Bug #12082]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-12 02:51:20 +00:00
kazu 88c7ffb251 fix typos [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-11 12:39:31 +00:00
ko1 6278420729 * vm_backtrace.c (frame2klass): filter only for imemo_ment.
T_IMEMO/imemo_iseq can be passed here.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-11 11:19:52 +00:00
nobu f0226f0a3c compile.c: disable tco with rescue
* compile.c (iseq_optimize): disable tail call optimization in
  rescued, rescue, and ensure blocks.
  [ruby-core:73871] [Bug #12082]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-11 08:43:06 +00:00
nobu 03bf343a9f file.c: apply to argv
* file.c (apply2files): apply to a VALUE vector instead of a
  temporary array.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-10 21:54:41 +00:00
nobu 21992b6cbd registry.rb: fix API names
* ext/win32/lib/win32/registry.rb (DeleteValue, DeleteKey): fix
  API names.  [ruby-core:74863] [Bug #12264]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-10 11:54:17 +00:00
nobu 3cd3c9d74c no argument conversions in rb_realpath_internal
* file.c (rb_realpath_internal): no argument conversions since
  this internal function does not need to_path and encoding
  conversions, not to be affected by the default internal
  encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-10 08:47:44 +00:00
nobu 56417d1f24 load.c: raise name before conversion
* load.c (rb_f_load): raise with the original path name before
  encoding conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-09 01:03:15 +00:00
nobu 3b6c4dad0c bignum.c: rb_cstr_parse_inum
* bignum.c (rb_cstr_parse_inum): [EXPERIMENTAL] new function to
  parse integer in C-string with length.  the name and the
  arguments may be changed in the future.
* bignum.c (rb_str_to_inum): preserve encoding of the argument in
  error messages, and no longer needs to copy non-terminated
  strings.
* bignum.c (rb_str2big_{poweroftwo,normal,karatsuba,gmp}): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-08 17:05:12 +00:00
kazu 990d2d73f1 fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-07 16:43:36 +00:00
nobu bcdfef89ae regexp.rdoc: terminators in comments [ci skip]
* doc/regexp.rdoc (comments): [DOC] terminators cannot appear in
  comments.  [ruby-core:74838] [Bug #12256]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-07 10:04:05 +00:00
nobu de3f0a42d8 tkutil.c: fix overrun
* ext/tk/tkutil/tkutil.c (cbsubst_initialize): fix out-of-bound
  access when no arguments given.  `p Tk::Event.new` crashed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-07 02:24:16 +00:00
eregon 4225b29df9 * ext/coverage/coverage.c: Fully reset coverage to not persist global state.
It was returning old file coverages as empty arrays to the user.
  [ruby-core:74596] [Bug #12220]
* ext/coverage/coverage.c (rb_coverages): remove unused static state.
* thread.c: Moved and renamed coverage_clear_result_i to reset_coverage_i.
* test/coverage/test_coverage.rb: improve precision of tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 14:29:17 +00:00
nobu 6a79276edd configure.in: fix lgamma_r condition
* configure.in (rb_cv_lgamma_r_m0): fix the condition for
  lgamma_r(-0.0).  [Bug #12249]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 13:41:33 +00:00
usa 3f1fc5e42b * tool/downloader.rb (RubyGems.download): follow the change of the
rubygems ssl_certs directory tree introduced by previous commit.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 08:40:02 +00:00
hsbt 469bac0f92 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.3.
Please see entries of 2.6.3 on
  https://github.com/rubygems/rubygems/blob/master/History.txt

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 06:01:14 +00:00
nobu ea736d55f9 configure.in: check lgamma_r(-0.0)
* configure.in (rb_cv_lgamma_r_m0): check if lgamma_r(-0.0)
  returns negative infinity.  [Bug #12249]
* math.c (ruby_lgamma_r): define by the configured result.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 05:13:29 +00:00
nobu 84d818678f Logger: simple refactoring
* lib/logger.rb (Logger#level=): remove unnecessary local
  variable.
* lib/logger.rb (Logger#initialize, Logger#reopen): [DOC] mention
  the default values.  cherrypicked from [GH-1319].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 01:56:16 +00:00
nobu 39330d6b79 lgamma_r.c: fix at -0.0
* math.c (ruby_lgamma_r): missing/lgamma_r.c is used on Windows,
  since msvcrt does not provide it.
* missing/lgamma_r.c (lgamma_r): fix lgamma(-0.0).
  [ruby-core:74823] [Bug #12249]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 01:17:55 +00:00
usa bb7a4c2a00 * math.c (ruby_lgamma_r): mswin's lgamma_r also seems to be wrong.
cf. [Bug #12249]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-05 16:23:39 +00:00
nobu 542d3a071f math.c: fix lgamma
* math.c (ruby_lgamma_r): fix lgamma(-0.0) on mingw and OSX.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-05 15:53:32 +00:00
nobu 41c533446f math.c: fix tgamma
* math.c (ruby_tgamma): fix tgamma(-0.0) on mingw.
  [ruby-core:74817] [Bug #12249]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-05 15:52:02 +00:00
naruse eee2769c0d * ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
[Bug #12202] [ruby-core:74802]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-05 05:54:03 +00:00
kazu 8fba800f73 fix typos [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-04 16:12:03 +00:00
nobu 176976db33 openssl: Access to ephemeral TLS session key
* ext/openssl/ossl_ssl.c (ossl_ssl_tmp_key): Access to ephemeral
  TLS session key in case of forward secrecy cipher.  Only
  available since OpenSSL 1.0.2.  [Fix GH-1318]
* ext/openssl/extconf.rb: Check for SSL_get_server_tmp_key.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-04 15:06:46 +00:00
nobu 990d709eeb at_exit list
* vm_core.h (rb_vm_struct): make at_exit a single linked list but
  not RArray, not to mark the registered functions by the write
  barrier.  based on the patches by Evan Phoenix.
  [ruby-core:73908] [Bug #12095]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-04 14:37:07 +00:00
svn dc58fbeade * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-04 08:49:18 +00:00
ko1 02f7507453 * gc.c: change deafult value of
RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO 0.3 -> 0.2
  RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO 0.8 -> 0.65

  These values are same as Ruby 2.0.0.

  This change cause GC counts.
  However, generational GC reduced each (minor) GC time and
  increase memory locality. So that not so big impact on my
  benchmarking results.
  (surprizingly, this fix speed up programs on some cases)

  You can change these values by environment variables
  if you feel wrong.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-04 08:49:17 +00:00
ko1 3287bad257 * gc.c (get_envparam_double): take an upper_bound.
And also take an accept_zero flag which allow to accept zero
  even if lower_bound is set.

* gc.c (ruby_gc_set_params): fix parameters.

  RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO set 0.9 as *lower_bound*, so that
  it should be upper_bound.
  Set RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO as lower bound.

  Also set lower/upper bound of RUBY_GC_HEAP_FREE_SLOTS_GOAL_RATIO to
  RUBY_GC_HEAP_FREE_SLOTS_MIN/MAX_RATIO.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-04 08:41:55 +00:00
ko1 eddbebcb19 * vm.c (Init_VM): should pass tokens.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-04 07:42:51 +00:00
nobu b4c0aac4c8 numeric.c: dbl2ival no longer rounds
* numeric.c (flodivmod): round division if it is a finite number
  and module is required.
* numeric.c (dbl2ival): do not round here.
* numeric.c (flo_ceil): use dbl2ival.
* numeric.c (flo_round): round explicitly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-03 00:34:31 +00:00
nobu d2e214736f rb_check_arity returns argc now
* include/ruby/intern.h (rb_check_arity): returns argc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-02 06:24:19 +00:00
kazu 3e0512bd38 fix typos [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-01 13:00:20 +00:00
duerst 5e9d33ad49 * enc/unicode/case-folding.rb, casefold.h: Data generation to implement
swapcase functionality for titlecase characters. Swapcase isn't defined
  by Unicode, because the purpose/usage of swapcase is unclear anyway.
  The implementation follows a proposal from Nobu, swaping the case of
  each component of a titlecase character individually.
  This means that the titlecase characters have to be decomposed.
* enc/unicode.c: Code using the above data.
* test/ruby/enc/test_case_mapping.rb: Tests for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-01 11:58:47 +00:00
nobu 69d6e315b5 improve git repository detection
* configure.in (AC_CONFIG_FILES): $srcdir/.git can be a file pointing
  the real git_dir, such as when the git working tree is a "linked
  working tree" (a working tree created by git-worktree). So use
  git-rev-parse --git-dir to check if $srcdir is the top-level of a git
  repository, not just checking if the $srcdir/.git directory does exist
  or not.  [ruby-core:74759] [Bug #12239]
* tool/change_maker.rb: use tool/vcs.rb to detect VCS. This used to have
  its own VCS detection code, while we have tool/vcs.rb.
* tool/vcs.rb (detect): remove code duplication

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-01 05:55:30 +00:00
normal 280f732215 openssl: accept moving write buffer for write_nonblock
By setting the SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag.
This flag was introduced at the same time as
SSL_MODE_ENABLE_PARTIAL_WRITE in OpenSSL 0.9.4 and makes usage
with non-blocking sockets much easier.

Before this, a Rubyist would need to remember the exact object
which failed to write and reuse it later when the socket became
writable again.  This causes problems when the buffer is given
by another layer of the application (e.g. a buffer is given
by a Rack middleware or application to a Rack web server).

* ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc):
  enable SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER by default
  [Bug #12126]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 20:33:55 +00:00
eregon 8dd2435877 * thread.c (update_coverage): Do not track coverage in loaded files
after Coverage.result. Avoids out-of-bounds access. [Bug #12237]
* ext/coverage/coverage.c (coverage_clear_result_i): document.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 16:14:52 +00:00
ko1 5951bbecb0 * gc.c: need to set initial value of GC_HEAP_FREE_SLOTS_GOAL_RATIO.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 10:16:48 +00:00
ko1 867693fe3d * gc.c: change additional allocation policy.
Introduce new environement variable
  GC_HEAP_FREE_SLOTS_GOAL_RATIO (goal_ratio) to calculate the ratio
  of additional memory.

  Before this change, we add pages with the following formula
  (when free_slots < total_pages * RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO):
    next_pages = total_pages * RUBY_GC_HEAP_GROWTH_FACTOR

  This addition can allocate too much.

  With this change, we increase pages to satisfy the following formula:
    next_free_slots = next_total_slots * goal_ratio
  where
    next_free_slots = free_slots + adding_slots
    next_total_slots = total_slots + adding_slots.

  If you want to prepare many free slots, increase this ratio.

  If this variable is 0, then simply multiply
  RUBY_GC_HEAP_GROWTH_FACTOR.

* gc.c (get_envparam_double): enable to accept 0.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 09:16:48 +00:00
ko1 9bb740d2ec * gc.c (gc_marks_finish): fix syntax error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 08:49:09 +00:00
ko1 49369ef173 * gc.c: simplify allocate/free detecting logic at the end of marking.
Before this change, heap_pages_min_slots are calculated at the
  beggining sweeping phase. And this value is used at the end of
  *next* marking phase.

  To simplify it, we use this value at the end of this marking phase.
  It means that we don't need to store this value as global state.

  Also heap_pages_max_slots is calculated at the begging of sweeping
  phase and used at the end of sweeping phase.
  To simplify this logic, we introduced new global value
  heap_pages_freeable_pages it means extra pages count we can free.
  gc_sweep_step() checks this value and moves empty pages to tomb_heap
  not more than this value.

  Because of this fix, heap_pages_swept_slots is no longer needed.

* gc.c (rb_objspace_t::heap_pages): restruct the objspace global
  status.

  remove the following fileds
    * swept_slots (and heap_pages_swept_slots)
    * min_free_slots (and heap_pages_min_free_slots)
    * max_free_slots (and heap_pages_max_free_slots)
  And add the following filed.
    * freeable_pages (and heap_pages_freeable_pages)

* gc.c (heap_pages_free_unused_pages): unlink tomb heap pages
  because tomb heap should have only freeable pages.

* gc.c (heap_extend_pages): add parameters for future extension.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 08:21:35 +00:00
ko1 555f6cb089 * gc.c: add GC parameters to configure the following values:
* RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO:
    allocate additional pages when free slots is lower than
    the value (total_slots * (this ratio)).
  * RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO:
    allow to free pages when free slots is greater thatn
    the value (total_slots * (this ratio)).

  Before this change, these values are hard coded.

* gc.c (ruby_gc_params_t): ditto.

* gc.c (ruby_gc_set_params): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 07:45:13 +00:00
ko1 9a008c5865 * gc.c (gc_verify_heap_page): check the number of zombies.
* gc.c (gc_verify_heap_pages): check also tomb heap.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 07:02:40 +00:00
ko1 f46b5bcfaf * gc.c (gc_page_sweep): return free slots count.
* gc.c (gc_sweep_step): use returned free slots count.

* gc.c (gc_sweep_step): change variable name `next'
  to `next_sweep_page'.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 06:51:27 +00:00
nobu add0ae5103 date_core.c: fix indent
* ext/date/date_core.c (d_lite_strftime, dt_lite_strftime): [DOC]
  fix indent not to be a big sole verbatim.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 02:33:51 +00:00
nobu f85ff1ed83 date_core.c: fix DateTime rdoc
* ext/date/date_core.c (Init_date_core): [DOC] fix misplaced doc
  of DateTime.  [ruby-core:74729] [Bug #12233]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-31 02:18:21 +00:00
naruse 07d1ba7757 * ext/nkf/nkf-utf8/nkf.c: Merge upstream 69f7e74dde.
fix indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-30 18:41:46 +00:00
nobu c15acbba04 extension*.rdoc: fix errors [ci skip]
* extension.rdoc, extension.ja.rdoc: [DOC] Fix some errors.
  Renamed files, wrong method names or argument types; the example
  GetDBM macro is now updated to the current version of the actual
  code.  patch by Marcus Stollsteimer in [ruby-core:74690].
  [Bug #12228]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-30 07:33:21 +00:00
hsbt e79d163caf * lib/open-uri.rb: Use `userinfo` for authenticated proxy.
[fix GH-1148] Patch by @SokichiFujita
* test/open-uri/test_open-uri.rb: ditto.
  [fix GH-1309] Patch by @jdamick

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-30 00:46:05 +00:00
naruse 1d7cfff09b * ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
patched by Anton Sivakov [Bug #12201] [Bug #12202]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 16:57:33 +00:00
naruse c2b4b9bb47 * tool/redmine-backporter.rb: add given revision to current changests
on associating the revision to the related ticket.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 16:55:55 +00:00
naruse 106be6694f * addr2line.c: define toupper for its use. fix r54391.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 10:34:54 +00:00
naruse 723241fcb9 * include/ruby/ruby.h (rb_isupper, rb_islower, rb_isalpha, rb_isdigit,
rb_isalnum, rb_isxdigit, rb_isblank, rb_isspace, rb_isblank,
  rb_iscntrl, rb_isprint, rb_ispunct, rb_isgraph,
  rb_tolower, rb_toupper): use inline function to avoid function call.

* include/ruby/ruby.h (rb_isascii): use inline function to clarify
  the logic.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 10:24:05 +00:00
naruse c782c791b2 * tool/redmine-backporter.rb (backport): show merger.rb's path.
* tool/redmine-backporter.rb (show): show current issue again if no
  ticket number is given.

* tool/redmine-backporter.rb (rel): show error message if current
  bugs.ruby-lang.org doesn't support the API.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 09:59:27 +00:00
duerst 78f540019a * enc/unicode/case-folding.rb, casefold.h: Tweaked handling of 6
special cases in CaseUnfold_11_Table.
* enc/unicode.c: Adjustments for above.
* test/ruby/enc/test_case_mapping.rb: Tests for the above: Some tests in
  test_titlecase activated; test_greek added. A test in test_cherokee fixed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 07:53:43 +00:00
duerst 49f25a1299 * enc/unicode.c: Cleaned up some comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 04:30:58 +00:00
duerst 0e6f8b166d * enc/unicode/case-folding.rb, casefold.h: Removing data for idempotent
titlecasing.
* enc/unicode.c: Adjust code to data removal.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 04:24:55 +00:00
hsbt c2355aefc9 * lib/webrick/httpresponse.rb: Move error_body to method. It allow to
override the body more easily. [fix GH-1307]
* test/webrick/test_httpresponse.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 03:45:32 +00:00
nobu 7504be10ef remove rb_thread_t::base_block
* error.c (rb_compile_err_append): rb_thread_t::base_block is no
  longer used.
* iseq.c (rb_iseq_compile_with_option): ditto, no protection is
  needed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 21:40:55 +00:00
nobu d7935475fc remove rb_thread_t::parse_in_eval
* parse.y (struct parser_params): move parse_in_eval flag from
  rb_thread_t.
* parse.y (rb_parser_set_context): set parsing context, not only
  mild error flag.
* iseq.c (rb_iseq_compile_with_option): the parser now refers no
  thread local states to be restored.
* vm_eval.c (eval_string_with_cref): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 21:39:24 +00:00
kazu 0a41425ad4 * numeric.c (int_pos_p): fix typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 12:25:41 +00:00
duerst 2d20a27fb4 * enc/unicode.c: Refactoring in preparation for data reduction for
titlecase.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 05:54:47 +00:00
duerst 890ce36b79 * enc/unicode.c: Minor refactoring for I WITH DOT ABOVE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 05:36:35 +00:00
duerst 1582093c77 * enc/unicode.c: Removed code now covered by data from table.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 05:26:23 +00:00
duerst 663fb4dd44 * enc/unicode.c: Adding comments. [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 02:49:20 +00:00
hsbt 64ce7711c0 * lib/rubygems.rb: Fix `Gem.find_spec_for_exe` picks oldest gem.
https://github.com/travis-ci/travis-ci/issues/5798
  https://github.com/rubygems/rubygems/pull/1566
* test/rubygems/test_gem.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 02:30:28 +00:00
hsbt 7fbb9078fe * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.2.
Please see entries of 2.6.2 on
  https://github.com/rubygems/rubygems/blob/master/History.txt

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 02:26:39 +00:00
hsbt 6cc4937aec * lib/rubygems/test_case.rb: Fix test on Windows for inconsistent temp path.
https://github.com/rubygems/rubygems/pull/1554
  [Bug #12193][ruby-core:74431]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 02:02:37 +00:00
nobu 7d378a5b3a sprintf.c: refactor Rational f
* sprintf.c (rb_str_format): refactor floating point format of
  Rational by using gereric Integer functions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-27 23:19:50 +00:00
nobu 9ae4c2d590 sprintf.c: fix buffer overflow
* sprintf.c (rb_str_format): fix buffer overflow, length must be
  greater than precision.  reported by William Bowling <will AT
  wbowling.info>.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-27 23:18:52 +00:00
nobu ee2f3c6def sprintf.c: Rational f by generic Integer functions
* sprintf.c (rb_str_format): convert Rational to floating point
  format by using gereric Integer functions, not by methods which
  can be overwritten.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-27 03:13:39 +00:00
nobu 23e5b482ca numeric.c: rb_int2str
* numeric.c (rb_int2str): conversion function to String for
  generic Integer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-26 01:55:14 +00:00
nobu e9dc649d66 numeric.c: rb_int_round
* numeric.c (rb_int_round): rounding function for generic
  Integers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-26 01:54:50 +00:00
nobu 79b209f19a numeric.c: basic arithmetic
* numeric.c (rb_int_{uminus,plus,minus,mul,idiv,modulo}): basic
  arithmetic functions for generic Integers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-26 01:54:16 +00:00
nobu ed47a0ec80 numeric.c: Fixnum predicts
* numeric.c (FIXNUM_{POSITIVE,NEGATIVE,ZERO}_P): predict macros
  only for Fixnum.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-26 01:52:00 +00:00
naruse 08b08c1f27 use more suitable ticket [Bug #12218]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-25 21:44:26 +00:00
naruse 4e637adef8 Add patch author of r54291
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-25 21:40:49 +00:00
naruse 2709170e96 * localeinit.c (rb_locale_charmap_index): fix prototype. [Bug #12118]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-25 21:35:39 +00:00
usa 38dc45ba29 * ChangeLog: [ci skip] correct a mail address. cf. [Bug #11870]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-25 15:12:25 +00:00
duerst 8006157cba * test/ruby/enc/test_case_mapping.rb: Additional tests title case;
some not yet activated.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-25 07:40:49 +00:00
nobu b20b9e0afe openssl: fix build when NPN is disabled by OpenSSL
* ext/openssl/extconf.rb: check SSL_CTX_set_next_proto_select_cb
  function rather than OPENSSL_NPN_NEGOTIATED macro. it exists
  even if it is disabled by OpenSSL configuration.
  [ruby-core:74384] [Bug #12182]
* ext/openssl/ossl_ssl.c: update #ifdef(s) as above.
* test/openssl/test_ssl.rb: skip NPN tests if NPN is disabled.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-25 04:38:13 +00:00
nobu 1ac12c4056 fix URI::HTTP.new example
* lib/uri/http.rb (URI::HTTP#initialize): [DOC] fix example,
  missing mandatory arguments.  [ruby-core:74540] [Bug #12215]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-25 02:08:39 +00:00
naruse 88291c190a * thread_pthread.c (reserve_stack): fix reserving position where
the stack growing bottom to top. [Bug #12118]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 16:51:30 +00:00
nobu 22f1db4b8e mkmf: Unquote directory strings
* lib/mkmf.rb (find_executable0): On Windows, it is actually valid
  to surround individual PATH directory entries with double
  quotes. Remove these before joining the path as otherwise the
  literal quotes would become part of the path, resulting in the
  executable not to be found.  [Fix GH-1305]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 16:10:43 +00:00
nobu 5c233dcd40 ChangeLog: remove duplicate entry [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 13:39:42 +00:00
nobu 20215f0181 strftime.c: remove recursive-assignments
* strftime.c (FMT, FMTV): remove recursive-assignments to get rid
  of undefined behavior.  [ruby-core:74532] [Bug #12213]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 13:38:20 +00:00
nobu 743f2bf879 strftime.c: fix FMTV
* strftime.c (FMT_PADDING): extract format for padding.
* strftime.c (FMT_PRECISION): extract precision formula.
* strftime.c (FMTV): append formatted string to expand the result.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 08:44:03 +00:00
nobu 44a247c745 strftime.c: case conversion
* strftime.c (STRFTIME): deal with case conversion flags for
  recursive formats.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 05:20:22 +00:00
nobu 8d23c8bf3b date_core.c: append strings
* ext/date/date_core.c (dt_lite_iso8601): strftimev() always
  returns a String, so append them directly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 03:43:28 +00:00
nobu c85040d4d0 date_core.c: fix jisx0301 and iso8601
* ext/date/date_core.c (d_lite_jisx0301, iso8601_timediv),
  (dt_lite_jisx0301): format by the format string in local buffer
  to prevent intermediate strings from GC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 03:43:06 +00:00