AlkantarClanX12

Your IP : 3.17.154.144


Current Path : /opt/alt/ruby24/share/doc/alt-ruby24/
Upload File :
Current File : //opt/alt/ruby24/share/doc/alt-ruby24/ChangeLog

------------------------------------------------------------------------
r67879 | usa | 2020-03-31 20:42:18 +0900 (Tue, 31 Mar 2020) | 1 line

add tag v2_4_10
------------------------------------------------------------------------
r67874 | usa | 2020-03-31 19:54:03 +0900 (Tue, 31 Mar 2020) | 1 line

Bump version to 2.4.10
------------------------------------------------------------------------
r67873 | usa | 2020-03-31 19:51:26 +0900 (Tue, 31 Mar 2020) | 6 lines

merge revision(s) 36e9ed7fef6eb2d14becf6c52452e4ab16e4bf01: [Backport #16698]

	backport 80b5a0ff2a7709367178f29d4ebe1c54122b1c27 partially as a
	 securify fix for CVE-2020-10663. The patch was provided by Jeremy Evans.

	git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
------------------------------------------------------------------------
r67823 | usa | 2019-10-02 14:01:50 +0900 (Wed, 02 Oct 2019) | 2 lines

Bump to 2.4.9 for repackaging

------------------------------------------------------------------------
r67820 | usa | 2019-10-01 20:06:17 +0900 (Tue, 01 Oct 2019) | 6 lines

lib/shell/command-processor.rb (Shell#[]): prevent unknown command

`FileTest.send(command, ...)` allows to call not only FileTest-related
methods but also any method that belongs to Kernel, Object, etc.
patched by <mame@ruby-lang.org>

------------------------------------------------------------------------
r67819 | usa | 2019-10-01 20:05:56 +0900 (Tue, 01 Oct 2019) | 10 lines

merge revision(s) 3ce238b5f9795581eb84114dcfbdf4aa086bfecc

WEBrick: prevent response splitting and header injection

This is a follow up to d9d4a28.
The commit prevented CRLR, but did not address an isolated CR or an
isolated LF.

Co-Authored-By: NARUSE, Yui <naruse@airemix.jp>

------------------------------------------------------------------------
r67818 | usa | 2019-10-01 20:05:22 +0900 (Tue, 01 Oct 2019) | 7 lines

merge revision(s) 36e057e26ef2104bc2349799d6c52d22bb1c7d03

Loop with String#scan without creating substrings

Create the substrings necessary parts only, instead of cutting the
rest of the buffer.  Also removed a useless, probable typo, regexp.

------------------------------------------------------------------------
r67817 | usa | 2019-10-01 20:04:48 +0900 (Tue, 01 Oct 2019) | 7 lines

merge revision(s) a0a2640b398cffd351f87d3f6243103add66575b

Fix for wrong fnmatch patttern

* dir.c (file_s_fnmatch): ensure that pattern does not contain a
  NUL character.  https://hackerone.com/reports/449617

------------------------------------------------------------------------
r67794 | usa | 2019-08-28 15:45:35 +0900 (Wed, 28 Aug 2019) | 3 lines

merge revision(s): f308ab2131ee675000926540cbb8c13c91dc3be5
	Remove jquery.js

------------------------------------------------------------------------
r67791 | usa | 2019-08-28 14:00:39 +0900 (Wed, 28 Aug 2019) | 4 lines

merge revision(s) 989e8ad322afdfa3aa06e74b89fc42aef42895d0:

	Remove debug print [ci skip]

------------------------------------------------------------------------
r67781 | usa | 2019-08-27 21:55:42 +0900 (Tue, 27 Aug 2019) | 2 lines

Update rdoc version from 5.0.0 to 5.0.1.

------------------------------------------------------------------------
r67393 | svn | 2019-04-01 00:01:14 +0900 (Mon, 01 Apr 2019) | 1 line

* 2019-04-01
------------------------------------------------------------------------
r67392 | usa | 2019-04-01 00:01:13 +0900 (Mon, 01 Apr 2019) | 6 lines

merge revision(s) 67201: [Backport #15650]

	eval.c: clear internal errinfo

	* eval.c (ruby_cleanup): clear internal error info when invoking
	  end procs.  [ruby-core:91731] [Bug #15650]
------------------------------------------------------------------------
r67391 | usa | 2019-03-31 23:58:24 +0900 (Sun, 31 Mar 2019) | 6 lines

merge revision(s) 67188: [Backport #15642]

	io.c: chomp CR at the end of read buffer

	* io.c (rb_io_getline_fast): chomp CR followed by LF but separated
	  by the read buffer boundary.  [ruby-core:91707] [Bug #15642]
------------------------------------------------------------------------
r67303 | usa | 2019-03-19 03:30:36 +0900 (Tue, 19 Mar 2019) | 2 lines

Applied security patches for RubyGems

------------------------------------------------------------------------
r67154 | usa | 2019-03-01 16:57:58 +0900 (Fri, 01 Mar 2019) | 3 lines

merge revision(s) 65365:

	Update for tzdata-2018f
------------------------------------------------------------------------
r67153 | usa | 2019-03-01 15:19:58 +0900 (Fri, 01 Mar 2019) | 2 lines

Get rid of "shadowing outer local varable" warning

------------------------------------------------------------------------
r67148 | usa | 2019-02-28 23:55:05 +0900 (Thu, 28 Feb 2019) | 9 lines

merge revision(s) 66909: [Backport #15555]

	tmpdir.rb: permission of user given directory

	* lib/tmpdir.rb (Dir.mktmpdir): check if the permission of the
	  parent directory only when using the default temporary
	  directory, and no check against user given directory.  the
	  security is the user's responsibility in that case.
	  [ruby-core:91216] [Bug #15555]
------------------------------------------------------------------------
r67147 | usa | 2019-02-28 23:52:06 +0900 (Thu, 28 Feb 2019) | 12 lines

merge revision(s) 62872,62873: [Backport #14621]

	parse.y: unindent continued line

	* parse.y (tokadd_string): stop at continued line in dedented here
	  documents, to dedent for each lines before removing escaped
	  newlines.  [ruby-core:86236] [Bug #14621]

	parse.y: terminator at continued line

	* parse.y (here_document): a continuing line is not the
	  terminator.  [ruby-core:86283] [Bug #14621]
------------------------------------------------------------------------
r66975 | usa | 2019-02-01 11:17:14 +0900 (Fri, 01 Feb 2019) | 2 lines

Revert r66968

------------------------------------------------------------------------
r66970 | usa | 2019-01-31 20:08:07 +0900 (Thu, 31 Jan 2019) | 3 lines

merge revision(s) 65667: [Backport #15284]

	Fix for bison 3.2 [Bug #15284]
------------------------------------------------------------------------
r66969 | usa | 2019-01-31 20:03:57 +0900 (Thu, 31 Jan 2019) | 5 lines

merge revision(s) 66685,66686: [Backport #15495]

	Try to update cert

	Try to update cert (2nd try)
------------------------------------------------------------------------
r66968 | usa | 2019-01-31 20:02:52 +0900 (Thu, 31 Jan 2019) | 17 lines

merge revision(s) 64589,64593: [Backport #15041]

	cont.c: set th->root_fiber to current fiber at fork

	Otherwise, th->root_fiber can point to an invalid Fiber,
	because Fibers do not live across fork.  So consider
	whatever Fiber is running the root fiber.

	[ruby-core:88723] [Bug #15041]

	cont.c (rb_fiber_atfork): th->root_fiber may not exist

	Otherwise, bootstraptest/test_fork.rb fails with -DVM_CHECK_MODE=2

	[Bug #15041]

	Fixes: r64589 "cont.c: set th->root_fiber to current fiber at fork"
------------------------------------------------------------------------
r66967 | usa | 2019-01-31 19:59:53 +0900 (Thu, 31 Jan 2019) | 6 lines

merge revision(s) 65974: [Backport #15340]

	Normalize month-mday before finding epoch

	Especially over the year 2038, 30 Feb and so on may cause odd behavior
	on validating found epoch with given year-month-day [Bug #15340]
------------------------------------------------------------------------
r66966 | usa | 2019-01-31 19:58:49 +0900 (Thu, 31 Jan 2019) | 10 lines

merge revision(s) 66756: [Backport #15479]

	Mark array as "going to be modified" in `Array#reject!`

	Before this patch, if `reject!` is called on a shared array it can
	mutate the shared array rather than a copy.  This patch marks the array
	as "going to be modified" so that the shared source array isn't
	mutated.

	[Bug #15479] [ruby-core:90781]
------------------------------------------------------------------------
r66965 | usa | 2019-01-31 19:56:17 +0900 (Thu, 31 Jan 2019) | 7 lines

merge revision(s) 66242: [Backport #15387]

	io.c (io_write_nonblock): add RB_GC_GUARD, io_fflush may switch threads

	Since io_fflush may block on mutex or rb_io_wait_readable and
	switch threads, we need to ensure the `str' VALUE returned by
	`rb_obj_as_string` is visible to GC.
------------------------------------------------------------------------
r66964 | usa | 2019-01-31 19:55:37 +0900 (Thu, 31 Jan 2019) | 6 lines

merge revision(s) 66401: [Backport #15412]

	Move autoload to toplevel

	So that classes which uses Net::HTTP with https can use OpenSSL
	namespace for example exception classes like OpenSSL::SSL::SSLError.
------------------------------------------------------------------------
r66963 | usa | 2019-01-31 19:51:55 +0900 (Thu, 31 Jan 2019) | 2 lines

Fixed [Bug #14731]

------------------------------------------------------------------------
r66962 | usa | 2019-01-31 19:47:59 +0900 (Thu, 31 Jan 2019) | 7 lines

merge revision(s) 63334: [Backport #14729]

	object.c: raise on long invalid float string

	* object.c (rb_cstr_to_dbl_raise): check long invalid float
	  string more precisely when truncating insignificant part.
	  [ruby-core:86800] [Bug #14729]
------------------------------------------------------------------------
r66961 | usa | 2019-01-31 19:36:30 +0900 (Thu, 31 Jan 2019) | 7 lines

merge revision(s) 64879: [Backport #15162]

	transcode.c: add GC guard on raise

	* transcode.c (econv_s_search_convpath): add GC guard to fix SEGV
	  on raise.
	  [Bug #15162] [ruby-core:89172]
------------------------------------------------------------------------
r65342 | usa | 2018-10-24 07:55:53 +0900 (Wed, 24 Oct 2018) | 2 lines

bump teeny

------------------------------------------------------------------------
r65134 | usa | 2018-10-18 00:30:28 +0900 (Thu, 18 Oct 2018) | 2 lines

updated ext/openssl to 2.0.9

------------------------------------------------------------------------
r65129 | usa | 2018-10-18 00:08:59 +0900 (Thu, 18 Oct 2018) | 8 lines

merge revision(s) 65125:

	infect taint flag on Array#pack and String#unpack
	with the directives "B", "b", "H" and "h".

		* pack.c (pack_pack, pack_unpack_internal): infect taint flag.

		* test/ruby/test_pack.rb: add test for above.
------------------------------------------------------------------------
r65118 | usa | 2018-10-17 18:25:11 +0900 (Wed, 17 Oct 2018) | 14 lines

merge revision(s) 63067,63068: [Backport #14658]

	Fix Kernel#singleton_method with Module#Prepend

	* proc.c (rb_obj_singleton_method): search the method entry from
	  the origin class, for fix prepended modules.  [Bug #14658]

	From: Vasiliy Ermolovich <younash@gmail.com>

	proc.c: fix segfault when no singleton class

	* proc.c (rb_obj_singleton_method): bail out if the receiver does
	  not have the singleton class without accessing the origin class
	  not to segfault.  [Bug #14658]
------------------------------------------------------------------------
r65117 | usa | 2018-10-17 18:22:24 +0900 (Wed, 17 Oct 2018) | 12 lines

merge revision(s) 62007,62024: [Backport #13069]

	mkmf.rb: ignore linker warnings

	* lib/mkmf.rb (try_ldflags): ignore linker warnings.  they cause
	  unexpected failures on OpenBSD.  [ruby-core:78827] [Bug #13069]

	mkmf.rb: werror on mswin

	* lib/mkmf.rb (MakeMakefile#try_ldflags): enable warning checking
	  on mswin, link.exe warns -l options but does not fail.
	  [Bug #13069]
------------------------------------------------------------------------
r65116 | usa | 2018-10-17 18:10:26 +0900 (Wed, 17 Oct 2018) | 11 lines

merge revision(s) 64745: [Backport #15118]

	Use opt_{aref,aset} over opt_{aref,aset}_with

	* compile.c (iseq_compile_each0): Use `opt_aref`/`opt_aset` over
	  `opt_aref_with`/`opt_aset_with` when frozen_string_literal: true,
	  not to resurrect the index string on non-Hash receiver.

	[Fix GH-1957]

	From: chopraanmol1 <chopraanmol1@gmail.com>
------------------------------------------------------------------------
r65115 | usa | 2018-10-17 17:40:36 +0900 (Wed, 17 Oct 2018) | 22 lines

merge revision(s) 63711,64398: [Backport #14841]

	thread_sync.c (rb_mutex_lock): fix deadlock

	* thread_sync.c (rb_mutex_lock): fix deadlock
	  [ruby-core:87467] [Bug #14841]

	thread_sync.c (rb_mutex_lock): acquire lock before being killed

	We (the thread acquiring the mutex) need to acquire the mutex
	before being killed to work with ConditionVariable#wait.

	Thus we reinstate the acquire-immediately-after-sleeping logic
	from pre-r63711 while still retaining the
	acquire-after-checking-for-interrupts logic from r63711.

	This regression was introduced in
	commit 501069b8a4013f2e3fdde35c50e9527ef0061963 (r63711)
	("thread_sync.c (rb_mutex_lock): fix deadlock") for
	[Bug #14841]

	[ruby-core:88503] [Bug #14999] [Bug #14841]
------------------------------------------------------------------------
r65114 | usa | 2018-10-17 17:30:28 +0900 (Wed, 17 Oct 2018) | 2 lines

revert r65112, because of fearing an imcompatibility

------------------------------------------------------------------------
r65113 | usa | 2018-10-17 17:27:39 +0900 (Wed, 17 Oct 2018) | 5 lines

merge revision(s) 64900: [Backport #15190]

	Just a shebang is valid code

	[ruby-core:89240] [Bug #15190]
------------------------------------------------------------------------
r65112 | usa | 2018-10-17 17:18:44 +0900 (Wed, 17 Oct 2018) | 8 lines

merge revision(s) 60018: [Backport #13931]

	configure.in: install_name without teeny

	* configure.in (RUBY_API_VERSION): remove teeny from install_name
	  to allow link extension libraries for the same minor version.
	  patched by kimuraw (Wataru Kimura) at [ruby-dev:50262].
	  [Bug #13931]
------------------------------------------------------------------------
r65111 | usa | 2018-10-17 17:15:47 +0900 (Wed, 17 Oct 2018) | 7 lines

merge revision(s) 64915: [Backport #15205]

	check argument type.

	* iseq.c (iseqw_s_compile): check argument type (T_STRING) to
	  avoid SEGV.

------------------------------------------------------------------------
r65110 | usa | 2018-10-17 17:11:45 +0900 (Wed, 17 Oct 2018) | 6 lines

merge revision(s) 64913: [Backport #15223]

	Support ubasecrt.dll 10.0.17763.1 included in Windows 10 October 2018 Update



------------------------------------------------------------------------
r65109 | usa | 2018-10-17 16:56:26 +0900 (Wed, 17 Oct 2018) | 3 lines

merge revision(s) 61323: [Backport #15069]

	suppress warning: 'const' attribute on function returning 'void'
------------------------------------------------------------------------
r64649 | usa | 2018-09-06 18:24:18 +0900 (Thu, 06 Sep 2018) | 3 lines

re-patched r50599 because of test failure on TravisCI.
[Backport #14060]

------------------------------------------------------------------------
r64564 | usa | 2018-08-27 23:18:59 +0900 (Mon, 27 Aug 2018) | 7 lines

merge revision(s) 64092: [Backport #14942]

	win32.c: limit write size on console

	* win32/win32.c (constat_parse): split long buffer and limit write
	  size on a console, as well as rb_w32_write.
	  [ruby-dev:50597] [Bug #14942]
------------------------------------------------------------------------
r64563 | usa | 2018-08-27 23:15:43 +0900 (Mon, 27 Aug 2018) | 6 lines

merge revision(s) 64071: [Backport #14941]

	ruby.c: taint ARGV on Windows

	* ruby.c (external_str_new_cstr): strings come from the external
	  should be tainted.  [ruby-dev:50596] [Bug #14941]
------------------------------------------------------------------------
r64562 | usa | 2018-08-27 23:11:19 +0900 (Mon, 27 Aug 2018) | 8 lines

merge revision(s) 64014: [Backport #14926]

	fix sum on infinity

	* array.c (rb_ary_sum): consider non-finite floats.
	  [ruby-core:88024] [Bug #14926]

	* enum.c (sum_iter): ditto.
------------------------------------------------------------------------
r64561 | usa | 2018-08-27 23:08:56 +0900 (Mon, 27 Aug 2018) | 21 lines

merge revision(s) 64007,64019,64020: [Backport #14929]

	thread.c (do_select): fix leak on exception

	When do_select is interrupted and raise happens from
	RUBY_VM_CHECK_INTS_BLOCKING, the original FD sets we copied
	do not get freed, leading to a memory leak.  Wrap up all the
	FD sets into a Ruby object to ensure the GC can release an
	allocations made for rb_fdset_t.

	This leak existed since Ruby 2.0.0 (r36430)

	[Bug #14929]

	increase timeout seconds.
	* test/ruby/test_io.rb (test_select_leak): increase timeout seconds
	  to pass this test on a high-load machine.


	60 sec is not enough at all

------------------------------------------------------------------------
r64560 | usa | 2018-08-27 22:59:09 +0900 (Mon, 27 Aug 2018) | 6 lines

merge revision(s) 63994: [Backport #14920]

	reduce tzset

	* time.c (rb_localtime_r): call tzset() only after TZ environment
	  variable is changed.
------------------------------------------------------------------------
r64559 | usa | 2018-08-27 22:48:53 +0900 (Mon, 27 Aug 2018) | 7 lines

merge revision(s) 63696: [Backport #14853]

	variable.c: fix receiver on private constant

	* variable.c (rb_const_search): fix NameError :receiver attribute
	  on private constant, should raise with the included module, not
	  the ICLASS.
------------------------------------------------------------------------
r64558 | usa | 2018-08-27 22:47:40 +0900 (Mon, 27 Aug 2018) | 27 lines

merge revision(s) 62731,62735: [Backport #14495]

	Bug Fix Enumerator::Lazy#uniq state for multiple call

	* enumerator.c (lazy_uniq_i): create new hash for each calls.
	  [Fix GH-1820]

	Currently

		2.5.0-preview1 :001 > arr = (0..100).lazy.uniq{|i| i % 10}
		 => #<Enumerator::Lazy: #<Enumerator::Lazy: 0..100>:uniq>
		2.5.0-preview1 :002 > arr.to_a
		 => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
		2.5.0-preview1 :003 > arr.to_a
		 => []

	Expected

	arr.to_a to always return same output

	From: Anmol Chopra <anmolchopra@rocketbox.in>

	test_enumerator.rb: duplicate assertions

	* test/ruby/test_enumerator.rb (test_uniq): remove assertions
	  which ared duplicate of lazy enumerator tests in
	  test_lazy_enumerator.rb.
------------------------------------------------------------------------
r64149 | usa | 2018-07-31 23:21:59 +0900 (Tue, 31 Jul 2018) | 6 lines

merge revision(s) 60011:

	test_gc.rb: relax criterion

	* test/ruby/test_gc.rb (TestGc#test_expand_heap): relax the
	  criterion and compare by epsilon.
------------------------------------------------------------------------
r64148 | usa | 2018-07-31 23:12:08 +0900 (Tue, 31 Jul 2018) | 12 lines

merge revision(s) 63512,63514: [Backport #14790]

	time.rb: fix parsing time zone in iso8601

	* lib/time.rb (Time.xmlschema): a colon in time zone designator
	  can be omitted.  [ruby-core:87277] [Bug #14790]

	time.rb: fix parsing time zone in iso8601

	* lib/time.rb (Time.xmlschema): the minute in time zone designator
	  can be omitted together with the preceding colon.
	  [ruby-core:87277] [Bug #14790]
------------------------------------------------------------------------
r64147 | usa | 2018-07-31 23:01:54 +0900 (Tue, 31 Jul 2018) | 6 lines

merge revision(s) 63417: [Backport #14756]

	error.c: check redefined backtrace result

	* error.c (rb_get_backtrace): check the result of `backtrace` even
	  if the method is redefined.  [ruby-core:87013] [Bug #14756]
------------------------------------------------------------------------
r64146 | usa | 2018-07-31 22:54:40 +0900 (Tue, 31 Jul 2018) | 2 lines

backport openssl v2.0.8 [Backport #14754]

------------------------------------------------------------------------
r64130 | usa | 2018-07-30 23:15:00 +0900 (Mon, 30 Jul 2018) | 9 lines

merge revision(s) 63741: [Backport #14868]

	process.c (ruby_fork_ruby): fix race in signal handling

	We must block signals before stopping timer-thread, otherwise
	signal handing may be delayed until (and if) another signal
	is received after timer-thread is restarted.

	[ruby-core:87622] [Bug #14868] [Bug #13916]
------------------------------------------------------------------------
r64129 | usa | 2018-07-30 23:11:50 +0900 (Mon, 30 Jul 2018) | 8 lines

merge revision(s) 63727: [Backport #14865]

	vm.c: fix infinite loop

	* vm.c: use EXEC_EVENT_HOOK_AND_POP_FRAME. While exception handling, if an exception
	  is raised in hooks, need to pop current frame and raise this raised exception by hook.

	[ruby-dev:50582] [Bug #14865]
------------------------------------------------------------------------
r64128 | usa | 2018-07-30 23:06:52 +0900 (Mon, 30 Jul 2018) | 15 lines

merge revision(s) 63698: [Backport #14856]

	lib/drb/extservm.rb (service): do not return `false'

	invoke_service_command may set entries in @servers to `false',
	making it incompatible with the intended use of the
	safe navigation operator.

	This caused occasional DRb test failures, but they were hidden
	with automatic retry.

	[ruby-core:87524] [Bug #14856]

	Fixes: r53111 ("use safe navigation operator")
		commit 059c9c1cf371e049c7481c78b76e9620da52757f [GH-1142]
------------------------------------------------------------------------
r64127 | usa | 2018-07-30 23:00:13 +0900 (Mon, 30 Jul 2018) | 9 lines

merge revision(s) 63112: [Backport #14818]

	Remove outdated example from Numeric documentation

	Since 2.5, Numeric instances can be cloned and duplicated.

	[Fix GH-1850]

	From: Miguel Landaeta <miguel@miguel.cc>
------------------------------------------------------------------------
r64126 | usa | 2018-07-30 22:57:35 +0900 (Mon, 30 Jul 2018) | 24 lines

merge revision(s) 63571,63572: [Backport #14816]

	`int isnan(double)` is a POSIXism

	- `isnan` is something relatively new.  We need to provide one for
	  those systems without it.  However:
	- X/Open defines `int isnan(double)`. Note the `int`.
	- C99 defines `isnan(x)` to be a macro.
	- C++11 nukes them all, undefines all the "masking macro"s, and
	  defines its own `bool isnan(double)`.  Note the `bool`.
	- In C++, `int isnan(double)` and `bool isnan(double)` are
	  incompatible.
	- So the mess.

	[Bug #14816][ruby-core:87364]
	further reading: https://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/


	include/ruby/missing.h: defined(__cplusplus) before using __cplusplus

	* include/ruby/missing.h (isinf, isnan): For non-C++ programs,
	  defined(__cplusplus) may be needed before using __cplusplus.
	  [Bug #14816]

------------------------------------------------------------------------
r64125 | usa | 2018-07-30 22:54:27 +0900 (Mon, 30 Jul 2018) | 21 lines

merge revision(s) 63549,63551,63554: [Backport #14805]

	memo->u3.cnt is long not int [Bug #14805]

	enum.c: mitigate overflows

	* enum.c (enum_count): convert counters to Integer as unsigned
	  long, instead of long, to mitigate overflows.
	  [ruby-core:87348] [Bug #14805]

	* enum.c (ary_inject_op): ditto.

	* enum.c (each_with_index_i): ditto, instead of int.

	* enum.c (find_index_i, find_index_iter_i): ditto, instead of
	  unsigned int.

	enum.c: bignum counter

	* enum.c (imemo_count_up, imemo_count_value): promote the counter
	  value to a bignum on overflow.  [Bug #14805]
------------------------------------------------------------------------
r63809 | usa | 2018-06-30 22:24:21 +0900 (Sat, 30 Jun 2018) | 5 lines

Fix path checks for case insensitive filesystem

see https://github.com/rubygems/rubygems/pull/2211
[ruby-core:86745] [Backport #14721]

------------------------------------------------------------------------
r63808 | usa | 2018-06-30 22:08:51 +0900 (Sat, 30 Jun 2018) | 19 lines

merge revision(s) 63054,63055,63056: [Backport #14655]

	test_time_tz.rb: Kiritimati tzdata fix

	* test/ruby/test_time_tz.rb (TestTimeTZ#test_pacific_kiritimati):
	  fix the expected data at the skip of New Year's Eve 1994.
	  [Bug #14655]

	test_time_tz.rb: Kiritimati tzdata fix

	* test/ruby/test_time_tz.rb (gen_zdump_test): fix the expected
	  data at the Kiritimati's skip of New Year's Eve 1994.
	  [Bug #14655]

	test_time_tz.rb: Lisbon tzdata fix

	* test/ruby/test_time_tz.rb (gen_variational_zdump_test): Update
	  Lisbon zdump data, which fixed the 1912-01-01 transition for
	  Portugual and its colonies.  [Bug #14655]
------------------------------------------------------------------------
r63807 | usa | 2018-06-30 22:06:35 +0900 (Sat, 30 Jun 2018) | 13 lines

merge revision(s) 60596,60599: [Backport #14060]

	file.c: infect from arguments

	* file.c (rb_check_realpath_internal): infetct the result with
	  arguments, no taint if none are tainted and cwd is not used.
	  [ruby-core:83583] [Bug #14060]

	file.c: infect from arguments

	* file.c (rb_check_realpath_internal): infetct the result with
	  arguments, no taint if none are tainted and cwd is not used.
	  [ruby-core:83583] [Bug #14060]
------------------------------------------------------------------------
r63806 | usa | 2018-06-30 22:00:09 +0900 (Sat, 30 Jun 2018) | 7 lines

merge revision(s) 62952: [Backport #14638]

	win32/file.c: relative path with drive letter

	* win32/file.c (IS_ABSOLUTE_PATH_P): home directory should not be
	  a relative path regardless a drive letter.   PathIsRelativeW
	  returns FALSE on such path.  [ruby-core:86356] [Bug #14638]
------------------------------------------------------------------------
r63805 | usa | 2018-06-30 21:56:17 +0900 (Sat, 30 Jun 2018) | 37 lines

merge revision(s) 62396: [Backport #14357]

	st.c: retry operations if rebuilt

	Calling the .eql? and .hash methods during a Hash operation can
	result in a thread switch or a signal handler to run: allowing
	one execution context to rebuild the hash table while another is
	still reading or writing the table.  This results in a
	use-after-free bug affecting the thread_safe-0.3.6 test suite
	and likely other bugs.

	This bug did not affect users of commonly keys (String, Symbol,
	Fixnum) as those are optimized to avoid method dispatch
	for .eql? and .hash methods.

	A separate version of this change needs to be ported to Ruby 2.3.x
	which had a different implementation of st.c but was affected
	by the same bug.

	* st.c: Add comment about table rebuilding during comparison.
	  (DO_PTR_EQUAL_CHECK): New macro.
	  (REBUILT_TABLE_ENTRY_IND, REBUILT_TABLE_BIN_IND): New macros.
	  (find_entry, find_table_entry_ind, find_table_bin_ind): Use new
	  macros.  Return the rebuild flag.
	  (find_table_bin_ptr_and_reserve): Ditto.
	  (st_lookup, st_get_key, st_insert, st_insert2): Retry the
	  operation if the table was rebuilt.
	  (st_general_delete, st_shift, st_update, st_general_foreach):
	  Ditto.
	  (st_rehash_linear, st_rehash_indexed): Use DO_PTR_EQUAL_CHECK.
	  Return the rebuild flag.
	  (st_rehash): Retry the operation if the table was rebuilt.
	  [ruby-core:85510] [Ruby trunk Bug#14357]

	Thanks to Vit Ondruch for reporting the bug.

	From: Vladimir Makarov <vmakarov@redhat.com>
------------------------------------------------------------------------
r63804 | usa | 2018-06-30 21:34:19 +0900 (Sat, 30 Jun 2018) | 10 lines

merge revision(s) 62513: [Backport #12762]

	Update url with 404 status on LEGAL file.

	  * Update redirected and upstream url.
	  * Added the Wayback Machine url for missing link.

	  [Bug #12762][ruby-dev:49802]

	From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r63691 | usa | 2018-06-18 23:11:34 +0900 (Mon, 18 Jun 2018) | 2 lines

Forgotten to update RUBY_PATCHLEVEL

------------------------------------------------------------------------
r63690 | svn | 2018-06-18 22:50:01 +0900 (Mon, 18 Jun 2018) | 1 line

* 2018-06-18
------------------------------------------------------------------------
r63689 | usa | 2018-06-18 22:50:00 +0900 (Mon, 18 Jun 2018) | 6 lines

Fixed tempfile leaks

* lib/rubygems.rb (Gem::VERSION): 2.6.14.2

* lib/rubygems/ext/ext_conf_builder.rb: merge from 2.7.7.

------------------------------------------------------------------------
r63626 | usa | 2018-06-10 17:59:17 +0900 (Sun, 10 Jun 2018) | 6 lines

merge revision(s) 58455:

	use $(srcdir).

	* win32/Makefile.sub (enc/jis/props.h): build it in not builddir,
	  but in srcdir.
------------------------------------------------------------------------
r63036 | nagachika | 2018-03-29 21:15:11 +0900 (Thu, 29 Mar 2018) | 1 line

bump up teeny version to 2.4.5.
------------------------------------------------------------------------
r63012 | nagachika | 2018-03-28 22:54:58 +0900 (Wed, 28 Mar 2018) | 80 lines

merge revision(s) 60584,62954,62955,62956,62957,62958,62959,63008:

	webrick: support Proc objects as body responses

	* lib/webrick/httpresponse.rb (send_body): call send_body_proc
	  (send_body_proc): new method
	  (class ChunkedWrapper): new class

	* test/webrick/test_httpresponse.rb (test_send_body_proc): new test
	  (test_send_body_proc_chunked): ditto
	  [Feature #855]

	webrick/httpresponse: IO.copy_stream for regular files

	Remove the redundant _send_file method since its functionality
	is unnecessary with IO.copy_stream.  IO.copy_stream also allows
	the use of sendfile under some OSes to speed up copies to
	non-TLS sockets.

	Testing with "curl >/dev/null" and "ruby -run -e httpd" to
	read a 1G file over Linux loopback reveals a reduction from
	around ~0.770 to ~0.490 seconds on the client side.

	* lib/webrick/httpresponse.rb (send_body_io): use IO.copy_stream
	  (_send_file): remove
	  [Feature #14237]

	webrick: use IO.copy_stream for single range response

	This is also compatible with range responses generated
	by Rack::File (tested with rack 2.0.3).

	* lib/webrick/httpresponse.rb (send_body_io): use Content-Range
	* lib/webrick/httpservlet/filehandler.rb (make_partial_content):
	  use File object for the single range case
	* test/webrick/test_filehandler.rb (get_res_body): use send_body
	  to test result

	test/webrick/test_filehandler.rb: stricter multipart range test

	We need to ensure we generate compatibile output in
	the face of future changes

	* test/webrick/test_filehandler.rb (test_make_partial_content):
	  check response body

	webrick: quiet warning for multi-part ranges

	Content-Length is ignored by WEBrick::HTTPResponse even if we
	calculate it, so instead we chunk responses to HTTP/1.1 clients
	and terminate HTTP/1.0 connections.

	* lib/webrick/httpservlet/filehandler.rb (make_partial_content):
	  quiet warning

	webrick/httpresponse: make ChunkedWrapper copy_stream-compatible

	The .write method needs to return the number of bytes written
	to avoid confusing IO.copy_stream.

	* lib/webrick/httpresponse.rb (ChunkedWrapper#write): return bytes written
	  (ChunkedWrapper#<<): return self

	webrick: use IO.copy_stream for multipart response

	Use the new Proc response body feature to generate a multipart
	range response dynamically.  We use a flat array to minimize
	object overhead as much as possible; as many ranges may fit
	into an HTTP request header.

	* lib/webrick/httpservlet/filehandler.rb (multipart_body): new method
	  (make_partial_content): use multipart_body

	get rid of test error/failure on Windows introduced at r62955

	* lib/webrick/httpresponse.rb (send_body_io): use seek if NotImplementedError
	  is raised in IO.copy_stream with offset.

	* lib/webrick/httpservlet/filehandler.rb (multipart_body): ditto.

------------------------------------------------------------------------
r63004 | nagachika | 2018-03-28 21:23:29 +0900 (Wed, 28 Mar 2018) | 72 lines

merge revision(s) 62960,62961,62962,62963,62964,62965:

	webrick/httprequest: limit request headers size

	We use the same 112 KB limit started (AFAIK) by Mongrel, Thin,
	and Puma to prevent malicious users from using up all the memory
	with a single request.  This also limits the damage done by
	excessive ranges in multipart Range: requests.

	Due to the way we rely on IO#gets and the desire to keep
	the code simple, the actual maximum header may be 4093 bytes
	larger than 112 KB, but we're splitting hairs at that point.

	* lib/webrick/httprequest.rb: define MAX_HEADER_LENGTH
	  (read_header): raise when headers exceed max length

	webrick/httpservlet/cgihandler: reduce memory use

	WEBrick::HTTPRequest#body can be passed a block to process the
	body in chunks.  Use this feature to avoid building a giant
	string in memory.

	* lib/webrick/httpservlet/cgihandler.rb (do_GET):
	  avoid reading entire request body into memory
	  (do_POST is aliased to do_GET, so it handles bodies)

	webrick/httprequest: raise correct exception

	"BadRequest" alone does not resolve correctly, it is in the
	HTTPStatus namespace.

	* lib/webrick/httprequest.rb (read_chunked): use correct exception
	* test/webrick/test_httpserver.rb (test_eof_in_chunk): new test

	webrick/httprequest: use InputBufferSize for chunked requests

	While WEBrick::HTTPRequest#body provides a Proc interface
	for streaming large request bodies, clients must not force
	the server to use an excessively large chunk size.

	* lib/webrick/httprequest.rb (read_chunk_size): limit each
	  read and block.call to :InputBufferSize in config.
	* test/webrick/test_httpserver.rb (test_big_chunks): new test

	webrick: add test for Digest auth-int

	No changes to the actual code, this is a new test for
	a feature for which no tests existed.  I don't understand
	the Digest authentication code well at all, but this is
	necessary for the subsequent change.

	* test/webrick/test_httpauth.rb (test_digest_auth_int): new test
	  (credentials_for_request): support bodies with POST

	webrick/httpauth/digestauth: stream req.body

	WARNING! WARNING! WARNING!  LIKELY BROKEN CHANGE

	Pass a proc to WEBrick::HTTPRequest#body to avoid reading a
	potentially large request body into memory during
	authentication.

	WARNING! this will break apps completely which want to do
	something with the body besides calculating the MD5 digest
	of it.

	Also, keep in mind that probably nobody uses "auth-int".
	Servers such as Apache, lighttpd, nginx don't seem to
	support it; nor does curl when using POST/PUT bodies;
	and we didn't have tests for it until now...

	* lib/webrick/httpauth/digestauth.rb (_authenticate): stream req.body
------------------------------------------------------------------------
r63003 | nagachika | 2018-03-28 21:07:05 +0900 (Wed, 28 Mar 2018) | 11 lines

merge revision(s) 62991,63000:

	unixsocket.c: check NUL bytes

	* ext/socket/unixsocket.c (rsock_init_unixsock): check NUL bytes.
	  https://hackerone.com/reports/302997

	unixsocket.c: abstract namespace

	* ext/socket/unixsocket.c (unixsock_path_value): fix r62991 for
	  Linux abstract namespace.
------------------------------------------------------------------------
r63002 | nagachika | 2018-03-28 20:49:00 +0900 (Wed, 28 Mar 2018) | 11 lines

merge revision(s) 62968:

	webrick: prevent response splitting and header injection

	Original patch by tenderlove (with minor style adjustments).

	* lib/webrick/httpresponse.rb (send_header): call check_header
	  (check_header): raise on embedded CRLF in header value
	* test/webrick/test_httpresponse.rb
	  (test_prevent_response_splitting_headers): new test
	* (test_prevent_response_splitting_cookie_headers): ditto
------------------------------------------------------------------------
r63001 | nagachika | 2018-03-28 20:44:55 +0900 (Wed, 28 Mar 2018) | 6 lines

merge revision(s) 62992:

	pack.c: fix underflow

	* pack.c (pack_unpack_internal): get rid of underflow.
	  https://hackerone.com/reports/298246
------------------------------------------------------------------------
r62999 | nagachika | 2018-03-28 20:16:19 +0900 (Wed, 28 Mar 2018) | 9 lines

merge revision(s) 62989:

	dir.c: check NUL bytes

	* dir.c (GlobPathValue): should be used in rb_push_glob only.
	  other methods should use FilePathValue.
	  https://hackerone.com/reports/302338

	* dir.c (rb_push_glob): expand GlobPathValue
------------------------------------------------------------------------
r62998 | nagachika | 2018-03-28 19:52:33 +0900 (Wed, 28 Mar 2018) | 5 lines

merge revision(s) 62990:

	Ignore file separator from tmpfile/tmpdir name.

	From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r62988 | nagachika | 2018-03-28 18:39:53 +0900 (Wed, 28 Mar 2018) | 17 lines

merge revision(s) 62953:

	webrick: favor .write over << method

	This will make the next change to use IO.copy_stream
	easier-to-read.  When we can drop Ruby 2.4 support in a few
	years, this will allow us to use writev(2) with multiple
	arguments for headers and chunked responses.

	* lib/webrick/cgi.rb (write): new wrapper method
	  lib/webrick/httpresponse.rb: (send_header): use socket.write
	  (send_body_io): ditto
	  (send_body_string): ditto
	  (send_body_proc): ditto
	  (_write_data): ditto
	  (ChunkedWrapper#write): ditto
	  (_send_file): ditto
------------------------------------------------------------------------
r62918 | nagachika | 2018-03-25 15:11:14 +0900 (Sun, 25 Mar 2018) | 9 lines

merge revision(s) 62725: [Backport #14604]

	Fix setting method visibility on method wrapped with prepend

	Ignore prepended modules when looking for already defined methods on a
	class to set the visibility on.
	[Fix GH-1834]

	From: Dylan Thacker-Smith <Dylan.Smith@shopify.com>
------------------------------------------------------------------------
r62917 | nagachika | 2018-03-25 14:54:39 +0900 (Sun, 25 Mar 2018) | 7 lines

merge revision(s) 62673: [Backport #14577]

	thread.c: deadlock in backtrace

	* thread.c (unblock_function_set): check interrupts just once
	  during raising exceptions, as they are deferred since r16651.
	  [ruby-core:85939] [Bug #14577]
------------------------------------------------------------------------
r62916 | nagachika | 2018-03-25 14:35:17 +0900 (Sun, 25 Mar 2018) | 15 lines

merge revision(s) 62394,62395: [Backport #14469]

	vm_insnhelper.c: rb_autoloading_value flag

	* vm_insnhelper.c (vm_get_ev_const): add flag argument of
	  `rb_autoloading_value`.

	* constant.h (rb_autoloading_value): moved the declaration from
	  vm_core.h for `rb_const_flag_t`.  [ruby-core:85516] [Bug #14469]

	variable.c: flags at autoloading

	* variable.c (const_tbl_update): flags by deprecate_constant /
	  private_constant set during autoloading should be preserved
	  after required.  [ruby-core:85516] [Bug #14469]
------------------------------------------------------------------------
r62915 | nagachika | 2018-03-25 13:12:57 +0900 (Sun, 25 Mar 2018) | 18 lines

merge revision(s) 62671: [Backport #14571]

	resolv.rb: close socket

	* lib/resolv.rb (UnconnectedUDP#lazy_initialize): store new
	  sockets before binding, so the sockets get closed when the
	  requester is closing.

	* lib/resolv.rb (ConnectedUDP#lazy_initialize): ditto.

	* lib/resolv.rb (UnconnectedUDP#close): synchronize to get rid of
	  race condition.

	* lib/resolv.rb (ConnectedUDP#close): ditto.

	[ruby-core:85901] [Bug #14571]

	From: quixoten (Devin Christensen) <quixoten@gmail.com>
------------------------------------------------------------------------
r62904 | nagachika | 2018-03-23 21:42:58 +0900 (Fri, 23 Mar 2018) | 7 lines

merge revision(s) 60162: [Backport #13994]

	socket.c: null byte at Socket.getnameinfo

	* ext/socket/socket.c (sock_s_getnameinfo): check null byte.
	  patched by tommy (Masahiro Tomita) in [ruby-dev:50286].
	  [Bug #13994]
------------------------------------------------------------------------
r62903 | nagachika | 2018-03-23 21:03:58 +0900 (Fri, 23 Mar 2018) | 7 lines

merge revision(s) 62607: [Backport #14557]

	file.c: realpath on special symlink

	* file.c (realpath_rec): fallback to symlink path when it is
	  accessible but the link target is not actual entry on file
	  systems.  [ruby-dev:50487] [Bug #14557]
------------------------------------------------------------------------
r62883 | nagachika | 2018-03-22 01:17:09 +0900 (Thu, 22 Mar 2018) | 8 lines

merge revision(s) 62572: [Backport #14549]

	date_core.c: defensive code

	* ext/date/date_core.c (f_cmp): check comparison failure.

	* ext/date/date_core.c (d_lite_step): deal with the comparison
	  result more defensively.  [ruby-core:85796] [Bug #14549]
------------------------------------------------------------------------
r62880 | nagachika | 2018-03-22 00:57:56 +0900 (Thu, 22 Mar 2018) | 6 lines

merge revision(s) 61862: [Backport #14368]

	parse.y (new_regexp): Fix SEGV of `/#{"\u3042"}#{'{U+3044}'}/` in non UTF-8

	Mixing other encoding string literals in one Regexp caused SEGV.
	This bug was found by CoverityScan.
------------------------------------------------------------------------
r62877 | nagachika | 2018-03-22 00:27:09 +0900 (Thu, 22 Mar 2018) | 8 lines

merge revision(s) 62107: [Backport #14420]

	force fixable

	* complex.c (nucomp_hash): force hash values fixable.
	  [ruby-core:85224] [Bug #14420]

	* rational.c (nurat_hash): ditto.
------------------------------------------------------------------------
r62876 | svn | 2018-03-22 00:04:01 +0900 (Thu, 22 Mar 2018) | 1 line

* 2018-03-22
------------------------------------------------------------------------
r62875 | nagachika | 2018-03-22 00:04:00 +0900 (Thu, 22 Mar 2018) | 7 lines

merge revision(s) 62040: [Backport #14388]

	string.c: clear substring code range

	* string.c (str_substr): substring of broken code range string may
	  be valid or broken.  patch by tommy (Masahiro Tomita) at
	  [ruby-dev:50430] [Bug #14388].
------------------------------------------------------------------------
r62874 | nagachika | 2018-03-21 23:26:48 +0900 (Wed, 21 Mar 2018) | 8 lines

merge revision(s) 57637: [Backport #14453]

	win32.c: memcpy instead of strlcpy

	* win32/win32.c (cmdglob): memcpy the exact size instead of
	  strlcpy with +1.

	* win32/win32.c (w32_cmdvector): ditto, with NUL-terminating.
------------------------------------------------------------------------
r62868 | nagachika | 2018-03-21 03:07:27 +0900 (Wed, 21 Mar 2018) | 9 lines

merge revision(s) 61603: [Backport #14279]

	check array for zsuper. [Bug #14279]

	* compile.c (iseq_compile_each0): for zsuper (NODE_ZSUPER), we need to check
	  given argument is Array or not.

	* test/ruby/test_super.rb: add a test for this bug.

------------------------------------------------------------------------
r62867 | nagachika | 2018-03-21 02:55:34 +0900 (Wed, 21 Mar 2018) | 13 lines

merge revision(s) 61639: [Backport #14323]

	net/ftp: fix FrozenError in BufferedSocket

	I noticed this bug while working on something else with
	RUBYOPT=-d on, existing test cases all passed with it.

	Note: I use String.new because it is the local style, here,
	I prefer +'' (or ''.b, for a future commit)

	* lib/net/ftp.rb (BufferedSocket#read): use String.new
	* test/net/ftp/test_buffered_socket.rb (test_read_nil): new test
	  [ruby-core:84675] [Bug #14323]
------------------------------------------------------------------------
r62866 | nagachika | 2018-03-21 01:21:06 +0900 (Wed, 21 Mar 2018) | 8 lines

merge revision(s) 62115: [Backport #14421]

	proc: fix super_method segfault after bind

	* proc.c: handle undefined iclass
	  [ruby-core:85231] [Bug #14421]

	From: Eric Wong <e@80x24.org>
------------------------------------------------------------------------
r62865 | nagachika | 2018-03-21 00:53:38 +0900 (Wed, 21 Mar 2018) | 12 lines

merge revision(s) 58245,60127: [Backport #13973]

	Refactored using Method#owner.


	proc.c: super_method of included method

	* proc.c (method_super_method): search the next super method along
	  the included ancestor chain.  [ruby-core:83114] [Bug #13973]

	* vm_method.c (rb_callable_method_entry_without_refinements):
	  return the defined class.
------------------------------------------------------------------------
r62864 | nagachika | 2018-03-20 23:18:34 +0900 (Tue, 20 Mar 2018) | 108 lines

merge revision(s) 61564,61565,61571: [Backport #14270]

	fix SEGV touching uninitialized memory

	This function can be called from Init_VM().
	No assumption can be made about object internals.

	(lldb) run
	Process 15734 launched: './miniruby' (x86_64)
	Process 15734 stopped
	* thread #1: tid = 0x1441d4, 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0    ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x50)
	    frame #0: 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0    ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273
	   9270 static void
	   9271 rb_raw_iseq_info(char *buff, const int buff_size, const rb_iseq_t *iseq)
	   9272 {
	-> 9273     if (iseq->body->location.label) {
	   9274         VALUE path = rb_iseq_path(iseq);
	   9275         snprintf(buff, buff_size, "%s %s@%s:%d", buff,
	   9276                  RSTRING_PTR(iseq->body->location.label),
	(lldb) p *iseq
	(rb_iseq_t) $0 = {
	  flags = 28698
	  reserved1 = 0
	  body = 0x0000000000000000
	  aux = {
	    compile_data = 0x0000000000000000
	    loader = (obj = 0, index = 0)
	    trace_events = 0
	  }
	}
	(lldb) bt
	* thread #1: tid = 0x1441d4, 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0    ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x50)
	  * frame #0: 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0    ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273
	    frame #1: 0x00000001000bde72 miniruby`rb_raw_obj_info(buff="0x0000000100f61f48 [0    ] T_IMEMO iseq", buff_size=256, obj=4311097160) + 2786 at gc.c:9396
	    frame #2: 0x00000001000b7c5f miniruby`obj_info(obj=4311097160) + 95 at gc.c:9428
	    frame #3: 0x00000001000c16a8 miniruby`newobj_init(klass=0, flags=28698, v1=0, v2=0, v3=0, wb_protected=1, objspace=0x00000001007ee280, obj=4311097160) + 424 at gc.c:1887
	    frame #4: 0x00000001000b44c9 miniruby`newobj_of(klass=0, flags=28698, v1=0, v2=0, v3=0, wb_protected=1) + 217 at gc.c:1970
	    frame #5: 0x00000001000b464b miniruby`rb_imemo_new(type=imemo_iseq, v1=0, v2=0, v3=0, v0=0) + 75 at gc.c:2017
	    frame #6: 0x00000001000fd914 miniruby`iseq_imemo_alloc + 36 at iseq.h:156
	    frame #7: 0x00000001000f6e1d miniruby`iseq_alloc + 13 at iseq.c:211
	    frame #8: 0x00000001000f6bf8 miniruby`rb_iseq_new_with_opt(node=0x0000000000000000, name=4311097200, path=4311097200, realpath=8, first_lineno=1, parent=0x0000000000000000, type=ISEQ_TYPE_TOP, option=0x0000000100335c30) + 56 at iseq.c:519
	    frame #9: 0x00000001000f6bb6 miniruby`rb_iseq_new(node=0x0000000000000000, name=4311097200, path=4311097200, realpath=8, parent=0x0000000000000000, type=ISEQ_TYPE_TOP) + 86 at iseq.c:480
	    frame #10: 0x0000000100284bb0 miniruby`Init_VM + 1040 at vm.c:3022
	    frame #11: 0x00000001000d4f7d miniruby`rb_call_inits + 189 at inits.c:55
	    frame #12: 0x000000010009fe06 miniruby`ruby_setup + 198 at eval.c:61
	    frame #13: 0x000000010009fe5d miniruby`ruby_init + 13 at eval.c:78
	    frame #14: 0x00000001000009ed miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 93 at main.c:41
	    frame #15: 0x00007fff88eda5ad libdyld.dylib`start + 1
	(lldb)

	fix SEGV touching uninitialized memory

	This function can be called from rb_data_typed_object_zalloc().
	No assumption can be made about object internals.

	(lldb) run
	Process 22135 launched: './miniruby' (x86_64)
	Process 22135 stopped
	* thread #1: tid = 0x14a3af, 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
	    frame #0: 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364
	   1361         break;
	   1362     }
	   1363 #endif
	-> 1364     return block->type;
	   1365 }
	   1366
	   1367 static inline void
	(lldb) bt
	* thread #1: tid = 0x14a3af, 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
	  * frame #0: 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364
	    frame #1: 0x000000010008acdb miniruby`vm_block_iseq(block=0x0000000000000000) + 24 at vm_core.h:1399
	    frame #2: 0x000000010008acc1 miniruby`vm_proc_iseq(procval=4310866360) + 32 at vm_core.h:1387
	    frame #3: 0x000000010009cbed miniruby`rb_raw_obj_info(buff="0x0000000100f299b8 [0    ] proc (Proc)", buff_size=256, obj=4310866360) + 1513 at gc.c:9349
	    frame #4: 0x000000010009cf01 miniruby`obj_info(obj=4310866360) + 98 at gc.c:9428
	    frame #5: 0x000000010008ca1b miniruby`newobj_init(klass=4311027960, flags=12, v1=4298186080, v2=1, v3=0, wb_protected=32, objspace=0x00000001007cf280, obj=4310866360) + 338 at gc.c:1887
	    frame #6: 0x000000010008cce5 miniruby`newobj_of(klass=4311027960, flags=12, v1=4298186080, v2=1, v3=0, wb_protected=32) + 171 at gc.c:1970
	    frame #7: 0x000000010008d01d miniruby`rb_data_typed_object_wrap(klass=4311027960, datap=0x0000000000000000, type=0x0000000100311d60) + 133 at gc.c:2062
	    frame #8: 0x000000010008d04e miniruby`rb_data_typed_object_zalloc(klass=4311027960, size=40, type=0x0000000100311d60) + 42 at gc.c:2073
	    frame #9: 0x000000010011b459 miniruby`rb_proc_alloc(klass=4311027960) + 36 at proc.c:113
	    frame #10: 0x0000000100204d8e miniruby`vm_proc_create_from_captured(klass=4311027960, captured=0x00000001025003f8, block_type=block_type_iseq, is_from_method='\0', is_lambda='\x01') + 44 at vm.c:814
	    frame #11: 0x00000001002050d8 miniruby`rb_vm_make_proc_lambda(ec=0x00000001007cf548, captured=0x00000001025003f8, klass=4311027960, is_lambda='\x01') + 134 at vm.c:892
	    frame #12: 0x000000010011c0d2 miniruby`proc_new(klass=4311027960, is_lambda='\x01') + 445 at proc.c:752
	    frame #13: 0x000000010011c154 miniruby`rb_block_lambda + 27 at proc.c:808
	    frame #14: 0x00000001001ee7e3 miniruby`call_cfunc_0(func=(miniruby`rb_block_lambda at proc.c:807), recv=4310991600, argc=0, argv=0x0000000102400480) + 41 at vm_insnhelper.c:1729
	    frame #15: 0x00000001001ef2c3 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007cf548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 386 at vm_insnhelper.c:1918
	    frame #16: 0x00000001001ef412 miniruby`vm_call_cfunc(ec=0x00000001007cf548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 149 at vm_insnhelper.c:1934
	    frame #17: 0x00000001001f0655 miniruby`vm_call_method_each_type(ec=0x00000001007cf548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 239 at vm_insnhelper.c:2232
	    frame #18: 0x00000001001f0ce0 miniruby`vm_call_method(ec=0x00000001007cf548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 117 at vm_insnhelper.c:2355
	    frame #19: 0x00000001001f0eb6 miniruby`vm_call_general(ec=0x00000001007cf548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 59 at vm_insnhelper.c:2398
	    frame #20: 0x00000001001f6e61 miniruby`vm_exec_core(ec=0x00000001007cf548, initial=0) + 7480 at insns.def:850
	    frame #21: 0x0000000100207995 miniruby`vm_exec(ec=0x00000001007cf548) + 230 at vm.c:1771
	    frame #22: 0x0000000100208647 miniruby`rb_iseq_eval_main(iseq=0x0000000100f29fd0) + 52 at vm.c:2019
	    frame #23: 0x000000010007b750 miniruby`ruby_exec_internal(n=0x0000000100f29fd0) + 297 at eval.c:246
	    frame #24: 0x000000010007b876 miniruby`ruby_exec_node(n=0x0000000100f29fd0) + 36 at eval.c:310
	    frame #25: 0x000000010007b849 miniruby`ruby_run_node(n=0x0000000100f29fd0) + 62 at eval.c:302
	    frame #26: 0x0000000100000c05 miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 113 at main.c:42
	    frame #27: 0x00007fff88eda5ad libdyld.dylib`start + 1
	(lldb)

	check an existence of block.

	* gc.c (rb_raw_obj_info): check block before using it.

	* vm_core.h (vm_block_iseq): r61565 introduced NULL check but this
	  check is only needed by `rb_raw_obj_info()` and it is called at GC
	  debug mode. Above fix for `rb_raw_obj_info()` solves this problem and
	  NULL check should not be needed any more.

------------------------------------------------------------------------
r62863 | nagachika | 2018-03-20 22:52:06 +0900 (Tue, 20 Mar 2018) | 23 lines

merge revision(s) 61471,61472: [Backport #14231]

	Use UINT128_T support flag from configure

	Current check for __uint128_t in hash.c is not valid, since it ignores
	compilers other than gcc. We hit this on lcc on e2k platform.

	Configure script properly checks from 128-bit data types support and
	sets HAVE_UINT128_T accordingly. This approach is already used within
	ruby at bignum.c, random.c, etc.

	Probably hash.c is an overlooked remnant of old days. This patch fixes
	this.

	[ruby-core:84438] [Bug #14231] [Fix GH-1781]
	From: Andrew Savchenko <bircoph@altlinux.org>

	hash.c: use uint128_t

	* hash.c (mult_and_mix): use uint128_t instead of __uint128_t.
	  [ruby-core:84438] [Bug #14231]

	From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r62862 | nagachika | 2018-03-20 22:38:19 +0900 (Tue, 20 Mar 2018) | 16 lines

merge revision(s) 58438,58439,58451: [Backport #13493]

	clean autogenerated files

	* enc/depend (clean, clean-srcs): fix path of name2ctype.h, and
	  remove casefold.h too.

	* enc/jis/props.h: autogenerated file.
	  [ruby-core:80823] [Bug #13493]

	use $(srcdir).

	* Makefile.in (enc/jis/props.h): build it in not builddir, but in srcdir.


	Ignore enc/jis/props.h
------------------------------------------------------------------------
r62850 | nagachika | 2018-03-20 03:16:42 +0900 (Tue, 20 Mar 2018) | 292 lines

merge revision(s) 61562,61563,61566,61568,61569: [Backport #14269]

	fix SEGV touching uninitialized memory

	This function can be called from boot_defclass().
	No assumption can be made about object internals.

	(lldb) run
	Process 2386 launched: './miniruby' (x86_64)
	Process 2386 stopped
	* thread #1: tid = 0x13f3b6, 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
	    frame #0: 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321
	   318  VALUE
	   319  rb_class_path_cached(VALUE klass)
	   320  {
	-> 321      st_table *ivtbl = RCLASS_IV_TBL(klass);
	   322      st_data_t n;
	   323
	   324      if (!ivtbl) return Qnil;
	(lldb) bt
	* thread #1: tid = 0x13f3b6, 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
	  * frame #0: 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321
	    frame #1: 0x000000010009cbd0 miniruby`rb_raw_obj_info(buff="0x0000000100fa5798 [2    ] T_CLASS", buff_size=256, obj=4311373720) + 1393 at gc.c:9341
	    frame #2: 0x000000010009cf16 miniruby`obj_info(obj=4311373720) + 98 at gc.c:9423
	    frame #3: 0x000000010008ca87 miniruby`newobj_init(klass=0, flags=66, v1=0, v2=0, v3=0, wb_protected=1, objspace=0x00000001007cf280, obj=4311373720) + 338 at gc.c:1887
	    frame #4: 0x000000010008cd51 miniruby`newobj_of(klass=0, flags=66, v1=0, v2=0, v3=0, wb_protected=1) + 171 at gc.c:1970
	    frame #5: 0x000000010008ce1b miniruby`rb_wb_protected_newobj_of(klass=0, flags=66) + 54 at gc.c:1990
	    frame #6: 0x0000000100027563 miniruby`class_alloc(flags=2, klass=0) + 46 at class.c:165
	    frame #7: 0x000000010002761a miniruby`rb_class_boot(super=0) + 35 at class.c:203
	    frame #8: 0x0000000100028612 miniruby`boot_defclass(name="BasicObject", super=0) + 28 at class.c:537
	    frame #9: 0x000000010002868b miniruby`Init_class_hierarchy + 26 at class.c:548
	    frame #10: 0x00000001000efe69 miniruby`InitVM_Object + 9 at object.c:3892
	    frame #11: 0x00000001000f138e miniruby`Init_Object + 57 at object.c:4122
	    frame #12: 0x00000001000a59bd miniruby`rb_call_inits + 29 at inits.c:23
	    frame #13: 0x000000010007af30 miniruby`ruby_setup + 229 at eval.c:61
	    frame #14: 0x000000010007af7e miniruby`ruby_init + 13 at eval.c:78
	    frame #15: 0x0000000100000c58 miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 88 at main.c:41
	    frame #16: 0x00007fff88eda5ad libdyld.dylib`start + 1
	(lldb)

	fix SEGV touching uninitialized memory

	This function can be called from InitVM_Object().
	No assumption can be made about object internals.

	(lldb) run
	Process 10675 launched: './miniruby' (x86_64)
	Process 10675 stopped
	* thread #1: tid = 0x14252c, 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0    ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
	    frame #0: 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0    ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383
	   9380                 const rb_method_entry_t *me = &RANY(obj)->as.imemo.ment;
	   9381                 snprintf(buff, buff_size, "%s (called_id: %s, type: %s, alias: %d, owner: %s, defined_class: %s)", buff,
	   9382                          rb_id2name(me->called_id),
	-> 9383                          method_type_name(me->def->type),
	   9384                          me->def->alias_count,
	   9385                          obj_info(me->owner),
	   9386                          obj_info(me->defined_class));
	(lldb) p *me
	(rb_method_entry_t) $0 = {
	  flags = 24602
	  defined_class = 4311488400
	  def = 0x0000000000000000
	  called_id = 3057
	  owner = 4311488400
	}
	(lldb) bt
	* thread #1: tid = 0x14252c, 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0    ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
	  * frame #0: 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0    ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383
	    frame #1: 0x00000001000b7cbf miniruby`obj_info(obj=4311487880) + 95 at gc.c:9423
	    frame #2: 0x00000001000c16a8 miniruby`newobj_init(klass=4311488400, flags=24602, v1=0, v2=3057, v3=4311488400, wb_protected=1, objspace=0x00000001007ee280, obj=4311487880) + 424 at gc.c:1887
	    frame #3: 0x00000001000b4529 miniruby`newobj_of(klass=4311488400, flags=24602, v1=0, v2=3057, v3=4311488400, wb_protected=1) + 217 at gc.c:1970
	    frame #4: 0x00000001000b46ab miniruby`rb_imemo_new(type=imemo_ment, v1=0, v2=3057, v3=4311488400, v0=4311488400) + 75 at gc.c:2017
	    frame #5: 0x00000001002773b4 miniruby`rb_method_entry_alloc(called_id=3057, owner=4311488400, defined_class=4311488400, def=0x0000000000000000) + 52 at vm_method.c:368
	    frame #6: 0x0000000100277307 miniruby`rb_method_entry_create(called_id=3057, klass=4311488400, visi=METHOD_VISI_PRIVATE, def=0x0000000000000000) + 71 at vm_method.c:389
	    frame #7: 0x00000001002784c7 miniruby`rb_method_entry_make(klass=4311488400, mid=3057, defined_class=4311488400, visi=METHOD_VISI_PRIVATE, type=VM_METHOD_TYPE_CFUNC, def=0x0000000000000000, original_id=3057, opts=0x00007fff5fbfd9e8) + 1207 at vm_method.c:594
	    frame #8: 0x00000001002770f9 miniruby`rb_add_method(klass=4311488400, mid=3057, type=VM_METHOD_TYPE_CFUNC, opts=0x00007fff5fbfd9e8, visi=METHOD_VISI_PRIVATE) + 73 at vm_method.c:650
	    frame #9: 0x000000010027708a miniruby`rb_add_method_cfunc(klass=4311488400, mid=3057, func=(miniruby`rb_obj_dummy at object.c:1125), argc=0, visi=METHOD_VISI_PRIVATE) + 138 at vm_method.c:137
	    frame #10: 0x00000001000391e4 miniruby`rb_define_private_method(klass=4311488400, name="initialize", func=(miniruby`rb_obj_dummy at object.c:1125), argc=0) + 68 at class.c:1529
	    frame #11: 0x000000010013f5bf miniruby`InitVM_Object + 47 at object.c:3905
	    frame #12: 0x0000000100142ffd miniruby`Init_Object + 61 at object.c:4122
	    frame #13: 0x00000001000d4edd miniruby`rb_call_inits + 29 at inits.c:23
	    frame #14: 0x000000010009fe66 miniruby`ruby_setup + 198 at eval.c:61
	    frame #15: 0x000000010009febd miniruby`ruby_init + 13 at eval.c:78
	    frame #16: 0x0000000100000a4d miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 93 at main.c:41
	    frame #17: 0x00007fff88eda5ad libdyld.dylib`start + 1
	(lldb)

	fix SEGV touching uninitialized local variable

	This imemo_name is used uninitialized because the switch
	above does not cover all possible imemo types.

	(lldb) run
	Process 26068 launched: './miniruby' (x86_64)
	Process 26068 stopped
	* thread #1: tid = 0x14ba96, 0x00007fff8a402132 libsystem_c.dylib`strlen + 18, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
	    frame #0: 0x00007fff8a402132 libsystem_c.dylib`strlen + 18
	libsystem_c.dylib`strlen:
	->  0x7fff8a402132 <+18>: pcmpeqb (%rdi), %xmm0
	    0x7fff8a402136 <+22>: pmovmskb %xmm0, %esi
	    0x7fff8a40213a <+26>: andq   $0xf, %rcx
	    0x7fff8a40213e <+30>: orq    $-0x1, %rax
	(lldb) bt
	* thread #1: tid = 0x14ba96, 0x00007fff8a402132 libsystem_c.dylib`strlen + 18, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
	  * frame #0: 0x00007fff8a402132 libsystem_c.dylib`strlen + 18
	    frame #1: 0x00000001001f1531 miniruby`BSD_vfprintf(fp=0x00007fff5fbfc9e0, fmt0="%s %s", ap=0x00007fff5fbfcbf0) + 5873 at vsnprintf.c:1026
	    frame #2: 0x00000001001ef213 miniruby`ruby_do_vsnprintf(str="0x0000000100f46450 [0    ] T_IMEMO", n=256, fmt="%s %s", ap=0x00007fff5fbfcbf0) + 131 at sprintf.c:1285
	    frame #3: 0x00000001001ef3ea miniruby`ruby_snprintf(str="0x0000000100f46450 [0    ] T_IMEMO", n=256, fmt="%s %s") + 426 at sprintf.c:1300
	    frame #4: 0x00000001000bdc61 miniruby`rb_raw_obj_info(buff="0x0000000100f46450 [0    ] T_IMEMO", buff_size=256, obj=4310983760) + 2353 at gc.c:9376
	    frame #5: 0x00000001000b7bff miniruby`obj_info(obj=4310983760) + 95 at gc.c:9428
	    frame #6: 0x00000001000c1658 miniruby`newobj_init(klass=0, flags=36890, v1=0, v2=4303040512, v3=4310983800, wb_protected=1, objspace=0x00000001007ee280, obj=4310983760) + 424 at gc.c:1887
	    frame #7: 0x00000001000b4469 miniruby`newobj_of(klass=0, flags=36890, v1=0, v2=4303040512, v3=4310983800, wb_protected=1) + 217 at gc.c:1970
	    frame #8: 0x00000001000b45eb miniruby`rb_imemo_new(type=imemo_ast, v1=0, v2=4303040512, v3=4310983800, v0=0) + 75 at gc.c:2017
	    frame #9: 0x000000010011daed miniruby`rb_ast_new + 61 at node.c:1146
	    frame #10: 0x0000000100160e15 miniruby`rb_parser_compile_file_path(vparser=4310984400, fname=4310984960, file=4310984080, start=1) + 53 at parse.y:5776
	    frame #11: 0x00000001001e18ea miniruby`load_file_internal(argp_v=140734799795024) + 1834 at ruby.c:1907
	    frame #12: 0x00000001000a1bb5 miniruby`rb_ensure(b_proc=(miniruby`load_file_internal at ruby.c:1795), data1=140734799795024, e_proc=(miniruby`restore_load_file at ruby.c:2007), data2=140734799795024) + 245 at eval.c:1037
	    frame #13: 0x00000001001df4a4 miniruby`load_file(parser=4310984400, fname=4310984960, f=4310984080, script=1, opt=0x00007fff5fbfda28) + 100 at ruby.c:2026
	    frame #14: 0x00000001001e084e miniruby`process_options(argc=0, argv=0x00007fff5fbfdc00, opt=0x00007fff5fbfda28) + 3454 at ruby.c:1682
	    frame #15: 0x00000001001dfaae miniruby`ruby_process_options(argc=2, argv=0x00007fff5fbfdbf0) + 238 at ruby.c:2257
	    frame #16: 0x000000010009ff43 miniruby`ruby_options(argc=2, argv=0x00007fff5fbfdbf0) + 211 at eval.c:105
	    frame #17: 0x0000000100000989 miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 105 at main.c:42
	    frame #18: 0x00007fff88eda5ad libdyld.dylib`start + 1
	(lldb) up 4
	frame #4: 0x00000001000bdc61 miniruby`rb_raw_obj_info(buff="0x0000000100f46450 [0    ] T_IMEMO", buff_size=256, obj=4310983760) + 2353 at gc.c:9376
	   9373 #undef IMEMO_NAME
	   9374               default: UNREACHABLE;
	   9375             }
	-> 9376             snprintf(buff, buff_size, "%s %s", buff, imemo_name);
	   9377
	   9378             switch (imemo_type(obj)) {
	   9379               case imemo_ment: {
	(lldb) p imemo_name
	(const char *) $0 = 0xffffffffffffffff
	(lldb) p imemo_type(obj)
	(imemo_type) $1 = imemo_ast
	(lldb)

	fix SEGV inspecting already freed objects

	obj_info() assumes the given object is alive.  Passing freed
	objects to it results in SEGV.

	(lldb) run
	Process 29718 launched: './miniruby' (x86_64)
	Process 29718 stopped
	* thread #1: tid = 0x3082c5, 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
	    frame #0: 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269
	   266      }
	   267      else {
	   268          VM_ASSERT(RB_TYPE_P(pathobj, T_ARRAY));
	-> 269          return RARRAY_AREF(pathobj, PATHOBJ_PATH);
	   270      }
	   271  }
	   272
	(lldb) bt
	* thread #1: tid = 0x3082c5, 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
	  * frame #0: 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269
	    frame #1: 0x00000001000c25ff miniruby`rb_iseq_path(iseq=0x000000010af34a20) + 32 at iseq.c:723
	    frame #2: 0x000000010009db09 miniruby`rb_raw_iseq_info(buff="0x000000010af34a20 [1    ] T_IMEMO iseq", buff_size=256, iseq=0x000000010af34a20) + 69 at gc.c:9274
	    frame #3: 0x000000010009e45a miniruby`rb_raw_obj_info(buff="0x000000010af34a20 [1    ] T_IMEMO iseq", buff_size=256, obj=4478683680) + 2191 at gc.c:9397
	    frame #4: 0x000000010009e4d5 miniruby`obj_info(obj=4478683680) + 98 at gc.c:9429
	    frame #5: 0x0000000100091ae3 miniruby`gc_page_sweep(objspace=0x00000001007d3280, heap=0x00000001007d32a0, sweep_page=0x000000010ae07bc0) + 622 at gc.c:3529
	    frame #6: 0x000000010009206a miniruby`gc_sweep_step(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 188 at gc.c:3705
	    frame #7: 0x0000000100092254 miniruby`gc_sweep_continue(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 133 at gc.c:3772
	    frame #8: 0x000000010008d7f9 miniruby`heap_prepare(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 48 at gc.c:1746
	    frame #9: 0x000000010008d8a1 miniruby`heap_get_freeobj_from_next_freepage(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 37 at gc.c:1769
	    frame #10: 0x000000010008d98d miniruby`heap_get_freeobj(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 83 at gc.c:1803
	    frame #11: 0x000000010008dcb0 miniruby`newobj_slowpath(klass=4334386280, flags=5, v1=0, v2=0, v3=0, objspace=0x00000001007d3280, wb_protected=1) + 220 at gc.c:1930
	    frame #12: 0x000000010008dd6c miniruby`newobj_slowpath_wb_protected(klass=4334386280, flags=5, v1=0, v2=0, v3=0, objspace=0x00000001007d3280) + 76 at gc.c:1942
	    frame #13: 0x000000010008dea1 miniruby`newobj_of(klass=4334386280, flags=5, v1=0, v2=0, v3=0, wb_protected=1) + 221 at gc.c:1974
	    frame #14: 0x000000010008df39 miniruby`rb_wb_protected_newobj_of(klass=4334386280, flags=5) + 54 at gc.c:1990
	    frame #15: 0x0000000100195f7c miniruby`str_alloc(klass=4334386280) + 29 at string.c:692
	    frame #16: 0x0000000100195fe9 miniruby`str_new0(klass=4334386280, ptr="gitm", len=4, termlen=1) + 73 at string.c:714
	    frame #17: 0x000000010019633e miniruby`rb_enc_str_new(ptr="gitm", len=4, enc=0x00000001025d50a0) + 81 at string.c:766
	    frame #18: 0x000000010010a80a miniruby`parser_str_new(p="gitm", n=4, enc=0x00000001025d50a0, func=66, enc0=0x00000001025d50a0) + 50 at parse.y:5817
	    frame #19: 0x000000010010ce1a miniruby`parser_parse_string(parser=0x00000001042ac5c0, quote=0x000000010460c028) + 795 at parse.y:6675
	    frame #20: 0x00000001001120bd miniruby`parser_yylex(parser=0x00000001042ac5c0) + 159 at parse.y:8281
	    frame #21: 0x0000000100115068 miniruby`yylex(lval=0x00007fff5fbf9948, yylloc=0x00007fff5fbf9ab0, parser=0x00000001042ac5c0) + 55 at parse.y:8931
	    frame #22: 0x00000001000fc79f miniruby`ruby_yyparse(parser=0x00000001042ac5c0) + 1198 at parse.c:5798
	    frame #23: 0x0000000100109f5a miniruby`yycompile0(arg=4364879296) + 317 at parse.y:5595
	    frame #24: 0x0000000100214ef0 miniruby`rb_suppress_tracing(func=(miniruby`yycompile0 at parse.y:5565), arg=4364879296) + 349 at vm_trace.c:397
	    frame #25: 0x000000010010a1df miniruby`yycompile(parser=0x00000001042ac5c0, fname=4443743440, line=1) + 126 at parse.y:5637
	    frame #26: 0x000000010010a4c1 miniruby`parser_compile_string(vparser=4443743480, fname=4443743440, s=4443743520, line=1) + 191 at parse.y:5706
	    frame #27: 0x000000010010a5b7 miniruby`rb_parser_compile_string_path(vparser=4443743480, f=4443743440, s=4443743520, line=1) + 58 at parse.y:5730
	    frame #28: 0x0000000100206025 miniruby`eval_make_iseq(src=4443743520, fname=4443743440, line=1, bind=0x0000000000000000, base_block=0x00007fff5fbfb370) + 266 at vm_eval.c:1274
	    frame #29: 0x0000000100206153 miniruby`eval_string_with_cref(self=4334412520, src=4443743520, cref=0x0000000000000000, file=52, line=1) + 197 at vm_eval.c:1307
	    frame #30: 0x0000000100206389 miniruby`rb_f_eval(argc=1, argv=0x0000000102400eb8, self=4334412520) + 219 at vm_eval.c:1382
	    frame #31: 0x00000001001f247c miniruby`call_cfunc_m1(func=(miniruby`rb_f_eval at vm_eval.c:1364), recv=4334412520, argc=1, argv=0x0000000102400eb8) + 47 at vm_insnhelper.c:1723
	    frame #32: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x0000000102500d80, calling=0x00007fff5fbfbf50, ci=0x000000010263f240, cc=0x0000000100749b50) + 386 at vm_insnhelper.c:1918
	    frame #33: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x0000000102500d80, calling=0x00007fff5fbfbf50, ci=0x000000010263f240, cc=0x0000000100749b50) + 149 at vm_insnhelper.c:1934
	    frame #34: 0x00000001001faf0e miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 8471 at insns.def:915
	    frame #35: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
	    frame #36: 0x00000001002093f8 miniruby`invoke_block(ec=0x00000001007d3548, iseq=0x000000010252d7f0, self=4334412520, captured=0x0000000102500df8, cref=0x0000000000000000, type=572653569, opt_pc=0) + 224 at vm.c:988
	    frame #37: 0x0000000100209766 miniruby`invoke_iseq_block_from_c(ec=0x00000001007d3548, captured=0x0000000102500df8, self=4334412520, argc=0, argv=0x0000000000000000, passed_block_handler=0, cref=0x0000000000000000, is_lambda=0) + 389 at vm.c:1040
	    frame #38: 0x0000000100209824 miniruby`invoke_block_from_c_bh(ec=0x00000001007d3548, block_handler=4333768185, argc=0, argv=0x0000000000000000, passed_block_handler=0, cref=0x0000000000000000, is_lambda=0, force_blockarg=0) + 138 at vm.c:1058
	    frame #39: 0x00000001002099d0 miniruby`vm_yield(ec=0x00000001007d3548, argc=0, argv=0x0000000000000000) + 69 at vm.c:1103
	    frame #40: 0x0000000100205623 miniruby`rb_yield_0(argc=0, argv=0x0000000000000000) + 40 at vm_eval.c:970
	    frame #41: 0x0000000100205964 miniruby`loop_i + 19 at vm_eval.c:1049
	    frame #42: 0x000000010007db07 miniruby`rb_rescue2(b_proc=(miniruby`loop_i at vm_eval.c:1047), data1=0, r_proc=(miniruby`loop_stop at vm_eval.c:1056), data2=0) + 369 at eval.c:896
	    frame #43: 0x0000000100205a2e miniruby`rb_f_loop(self=4334412520) + 121 at vm_eval.c:1100
	    frame #44: 0x00000001001f24a7 miniruby`call_cfunc_0(func=(miniruby`rb_f_loop at vm_eval.c:1098), recv=4334412520, argc=0, argv=0x0000000102400e80) + 41 at vm_insnhelper.c:1729
	    frame #45: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 386 at vm_insnhelper.c:1918
	    frame #46: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 149 at vm_insnhelper.c:1934
	    frame #47: 0x00000001001f4319 miniruby`vm_call_method_each_type(ec=0x00000001007d3548, cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 239 at vm_insnhelper.c:2232
	    frame #48: 0x00000001001f4a2c miniruby`vm_call_method(ec=0x00000001007d3548, cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 253 at vm_insnhelper.c:2366
	    frame #49: 0x00000001001f4b7a miniruby`vm_call_general(ec=0x00000001007d3548, reg_cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 59 at vm_insnhelper.c:2398
	    frame #50: 0x00000001001fab2f miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 7480 at insns.def:850
	    frame #51: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
	    frame #52: 0x000000010020c40f miniruby`rb_iseq_eval_main(iseq=0x000000010252dd90) + 52 at vm.c:2019
	    frame #53: 0x000000010007c768 miniruby`ruby_exec_internal(n=0x000000010252dd90) + 297 at eval.c:246
	    frame #54: 0x000000010007c88e miniruby`ruby_exec_node(n=0x000000010252dd90) + 36 at eval.c:310
	    frame #55: 0x000000010007c861 miniruby`ruby_run_node(n=0x000000010252dd90) + 62 at eval.c:302
	    frame #56: 0x000000010000138d miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 113 at main.c:42
	    frame #57: 0x00007fff88eda5ad libdyld.dylib`start + 1
	(lldb) p ((struct RVALUE*)pathobj)->as.basic
	(RBasic) $0 = (flags = 0, klass = 4478683600)
	(lldb)

	fix SEGV inspecting uninitialized objects

	obj_info() assumes the given object is alive.  OTOH
	gc_writebarrier_incremental is called before or in middle of
	object initialization.  Can casue SEGV.

	(lldb) run
	Process 48188 launched: './miniruby' (x86_64)
	Process 48188 stopped
	* thread #1: tid = 0x30fd53, 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
	    frame #0: 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072
	   2069 static inline const VALUE *
	   2070 rb_array_const_ptr(VALUE a)
	   2071 {
	-> 2072     return FIX_CONST_VALUE_PTR((RBASIC(a)->flags & RARRAY_EMBED_FLAG) ?
	   2073         RARRAY(a)->as.ary : RARRAY(a)->as.heap.ptr);
	   2074 }
	   2075
	(lldb) bt
	* thread #1: tid = 0x30fd53, 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
	  * frame #0: 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072
	    frame #1: 0x00000001000bfaab miniruby`pathobj_path(pathobj=5251291222225483145) + 70 at vm_core.h:269
	    frame #2: 0x00000001000c25ff miniruby`rb_iseq_path(iseq=0x00000001025b71a8) + 32 at iseq.c:723
	    frame #3: 0x000000010009db09 miniruby`rb_raw_iseq_info(buff="0x00000001025b7158 [0    ] proc (Proc)", buff_size=256, iseq=0x00000001025b71a8) + 69 at gc.c:9274
	    frame #4: 0x000000010009e1d5 miniruby`rb_raw_obj_info(buff="0x00000001025b7158 [0    ] proc (Proc)", buff_size=256, obj=4334514520) + 1546 at gc.c:9351
	    frame #5: 0x000000010009e4d5 miniruby`obj_info(obj=4334514520) + 98 at gc.c:9429
	    frame #6: 0x0000000100096658 miniruby`gc_writebarrier_incremental(a=4334514520, b=4334514600, objspace=0x00000001007d3280) + 61 at gc.c:5963
	    frame #7: 0x00000001000968ca miniruby`rb_gc_writebarrier(a=4334514520, b=4334514600) + 127 at gc.c:6009
	    frame #8: 0x00000001001eabe0 miniruby`rb_obj_written(a=4334514520, oldv=52, b=4334514600, filename="/Users/urabe.shyouhei/data/src/pedantic/vm.c", line=821) + 72 at ruby.h:1472
	    frame #9: 0x00000001001eac2c miniruby`rb_obj_write(a=4334514520, slot=0x000000010259ff10, b=4334514600, filename="/Users/urabe.shyouhei/data/src/pedantic/vm.c", line=821) + 70 at ruby.h:1489
	    frame #10: 0x0000000100208b6f miniruby`vm_proc_create_from_captured(klass=4311027960, captured=0x0000000102500338, block_type=block_type_ifunc, is_from_method='\0', is_lambda='\x01') + 137 at vm.c:821
	    frame #11: 0x0000000100208e5c miniruby`rb_vm_make_proc_lambda(ec=0x00000001007d3548, captured=0x0000000102500338, klass=4311027960, is_lambda='\x01') + 134 at vm.c:892
	    frame #12: 0x000000010011f08e miniruby`proc_new(klass=4311027960, is_lambda='\x01') + 445 at proc.c:752
	    frame #13: 0x000000010011f110 miniruby`rb_block_lambda + 27 at proc.c:808
	    frame #14: 0x00000001001f24a7 miniruby`call_cfunc_0(func=(miniruby`rb_block_lambda at proc.c:807), recv=4310991600, argc=0, argv=0x0000000000000000) + 41 at vm_insnhelper.c:1729
	    frame #15: 0x00000001002033de miniruby`vm_call0_cfunc_with_frame(ec=0x00000001007d3548, calling=0x00007fff5fbfb080, ci=0x00007fff5fbfb070, cc=0x00007fff5fbfb0a0, argv=0x0000000000000000) + 370 at vm_eval.c:85
	    frame #16: 0x00000001002034d9 miniruby`vm_call0_cfunc(ec=0x00000001007d3548, calling=0x00007fff5fbfb080, ci=0x00007fff5fbfb070, cc=0x00007fff5fbfb0a0, argv=0x0000000000000000) + 59 at vm_eval.c:100
	    frame #17: 0x000000010020368f miniruby`vm_call0_body(ec=0x00000001007d3548, calling=0x00007fff5fbfb080, ci=0x00007fff5fbfb070, cc=0x00007fff5fbfb0a0, argv=0x0000000000000000) + 436 at vm_eval.c:131
	    frame #18: 0x000000010020326a miniruby`vm_call0(ec=0x00000001007d3548, recv=4310991600, id=2993, argc=0, argv=0x0000000000000000, me=0x0000000100f48110) + 142 at vm_eval.c:58
	    frame #19: 0x0000000100203c60 miniruby`rb_call0(ec=0x00000001007d3548, recv=4310991600, mid=2993, argc=0, argv=0x0000000000000000, scope=CALL_FCALL, self=4334514640) + 166 at vm_eval.c:296
	    frame #20: 0x0000000100204827 miniruby`rb_call(recv=4310991600, mid=2993, argc=0, argv=0x0000000000000000, scope=CALL_FCALL) + 84 at vm_eval.c:589
	    frame #21: 0x000000010020518b miniruby`rb_funcallv(recv=4310991600, mid=2993, argc=0, argv=0x0000000000000000) + 52 at vm_eval.c:815
	    frame #22: 0x000000010012242e miniruby`mlambda(method=0) + 45 at proc.c:2661
	    frame #23: 0x0000000100205bac miniruby`rb_iterate0(it_proc=(miniruby`mlambda at proc.c:2660), data1=0, ifunc=0x00000001025b71a8, ec=0x00000001007d3548) + 380 at vm_eval.c:1134
	    frame #24: 0x0000000100205d16 miniruby`rb_iterate(it_proc=(miniruby`mlambda at proc.c:2660), data1=0, bl_proc=(miniruby`bmcall at proc.c:2666), data2=4334514640) + 88 at vm_eval.c:1166
	    frame #25: 0x00000001001224c7 miniruby`method_to_proc(method=4334514640) + 43 at proc.c:2701
	    frame #26: 0x00000001001f24a7 miniruby`call_cfunc_0(func=(miniruby`method_to_proc at proc.c:2688), recv=4334514640, argc=0, argv=0x0000000102400568) + 41 at vm_insnhelper.c:1729
	    frame #27: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 386 at vm_insnhelper.c:1918
	    frame #28: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 149 at vm_insnhelper.c:1934
	    frame #29: 0x00000001001f4319 miniruby`vm_call_method_each_type(ec=0x00000001007d3548, cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 239 at vm_insnhelper.c:2232
	    frame #30: 0x00000001001f49a4 miniruby`vm_call_method(ec=0x00000001007d3548, cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 117 at vm_insnhelper.c:2355
	    frame #31: 0x00000001001f4b7a miniruby`vm_call_general(ec=0x00000001007d3548, reg_cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 59 at vm_insnhelper.c:2398
	    frame #32: 0x00000001001faf0e miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 8471 at insns.def:915
	    frame #33: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
	    frame #34: 0x000000010020c3d1 miniruby`rb_iseq_eval(iseq=0x00000001007f8270) + 52 at vm.c:2008
	    frame #35: 0x00000001000caa4a miniruby`rb_load_internal0(ec=0x00000001007d3548, fname=4310799960, wrap=0) + 631 at load.c:611
	    frame #36: 0x00000001000cab36 miniruby`rb_load_internal(fname=4310799960, wrap=0) + 46 at load.c:642
	    frame #37: 0x00000001000cae1d miniruby`rb_f_load(argc=1, argv=0x00000001024004b8) + 217 at load.c:710
	    frame #38: 0x00000001001f247c miniruby`call_cfunc_m1(func=(miniruby`rb_f_load at load.c:695), recv=4311327440, argc=1, argv=0x00000001024004b8) + 47 at vm_insnhelper.c:1723
	    frame #39: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 386 at vm_insnhelper.c:1918
	    frame #40: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 149 at vm_insnhelper.c:1934
	    frame #41: 0x00000001001f4319 miniruby`vm_call_method_each_type(ec=0x00000001007d3548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 239 at vm_insnhelper.c:2232
	    frame #42: 0x00000001001f4a2c miniruby`vm_call_method(ec=0x00000001007d3548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 253 at vm_insnhelper.c:2366
	    frame #43: 0x00000001001f4b7a miniruby`vm_call_general(ec=0x00000001007d3548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 59 at vm_insnhelper.c:2398
	    frame #44: 0x00000001001faf0e miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 8471 at insns.def:915
	    frame #45: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
	    frame #46: 0x000000010020c40f miniruby`rb_iseq_eval_main(iseq=0x0000000100f21240) + 52 at vm.c:2019
	    frame #47: 0x000000010007c774 miniruby`ruby_exec_internal(n=0x0000000100f21240) + 297 at eval.c:246
	    frame #48: 0x000000010007c89a miniruby`ruby_exec_node(n=0x0000000100f21240) + 36 at eval.c:310
	    frame #49: 0x000000010007c86d miniruby`ruby_run_node(n=0x0000000100f21240) + 62 at eval.c:302
	    frame #50: 0x0000000100001399 miniruby`main(argc=9, argv=0x00007fff5fbfdae0) + 113 at main.c:42
	    frame #51: 0x00007fff88eda5ad libdyld.dylib`start + 1
	(lldb)
------------------------------------------------------------------------
r62849 | nagachika | 2018-03-20 02:30:19 +0900 (Tue, 20 Mar 2018) | 9 lines

merge revision(s) 61413: [Backport #14218]

	force hash values fixable

	* include/ruby/ruby.h (RB_ST2FIX): force fixable on LLP64 environment.

	* hash.c (any_hash): ditto.
	  [ruby-core:84395] [Bug #14218]

------------------------------------------------------------------------
r62848 | nagachika | 2018-03-20 02:13:41 +0900 (Tue, 20 Mar 2018) | 5 lines

merge revision(s) 61359: [Backport #14208]

	raise error if value contains CR/LF in iniheader of initialize_http_header

	like r59693, initialize_http_header also should raise error. [Bug #14208]
------------------------------------------------------------------------
r62847 | nagachika | 2018-03-20 01:59:47 +0900 (Tue, 20 Mar 2018) | 6 lines

merge revision(s) 61346: [Backport #14206]

	parse.y: end of script at newline

	* parse.y (parser_yylex): deal with end of script chars just after
	  ignored newline as other places.  [ruby-core:84349] [Bug #14206]
------------------------------------------------------------------------
r62846 | nagachika | 2018-03-20 01:27:40 +0900 (Tue, 20 Mar 2018) | 8 lines

merge revision(s) 61278,61281: [Backport #13655]

	IO.new doesn't recive "-" as external_encoding [Bug #13655]

	[DOC] `IO.new` accepts `external_encoding`

	Revert part of r61278 [Bug #13655]
	[ci skip]
------------------------------------------------------------------------
r62845 | nagachika | 2018-03-20 01:22:34 +0900 (Tue, 20 Mar 2018) | 17 lines

Update openssl to 2.0.7. [Bug #13935]
The patch is provided by Kazuki Yamaguchi.

From: Kazuki Yamaguchi <k@rhe.jp>
Date: Mon, 25 Sep 2017 01:32:02 +0900
Subject: [PATCH] openssl: import v2.0.7

Import Ruby/OpenSSL 2.0.7. This contains only bug fixes and test
improvements. The full commit log since v2.0.5 (imported at r59567, to
trunk) can be found at:

        https://github.com/ruby/openssl/compare/v2.0.5...v2.0.7

All the changes included in this changeset are already imported to trunk
by r61235 or earlier revisions.


------------------------------------------------------------------------
r62842 | nagachika | 2018-03-20 00:11:08 +0900 (Tue, 20 Mar 2018) | 17 lines

Update rubygems to 2.0.6. [Bug #13935]
The patch is provided by Kazuki Yamaguchi.

From: Kazuki Yamaguchi <k@rhe.jp>
Date: Mon, 25 Sep 2017 01:32:02 +0900
Subject: [PATCH] openssl: import v2.0.6

Import Ruby/OpenSSL 2.0.6. This contains only bug fixes and test
improvements. The full commit log since v2.0.5 (imported at r59567, to
trunk) can be found at:

        https://github.com/ruby/openssl/compare/v2.0.5...v2.0.6

All the changes included in this patch are already imported to trunk by
r59734, r59751, r59857, and r60013.


------------------------------------------------------------------------
r62804 | nagachika | 2018-03-18 13:03:07 +0900 (Sun, 18 Mar 2018) | 6 lines

merge revision(s) 60421: [Backport #14047]

	win32.c: unknown reparse tags

	* win32/win32.c (rb_w32_read_reparse_point): skip unknown reparse
	  tags.  [ruby-core:83539] [Bug #14047]
------------------------------------------------------------------------
r62803 | nagachika | 2018-03-18 13:00:13 +0900 (Sun, 18 Mar 2018) | 1 line

bump up patchlevel to 262 to skip reverted patchlevel.
------------------------------------------------------------------------
r62802 | svn | 2018-03-18 12:57:38 +0900 (Sun, 18 Mar 2018) | 1 line

* 2018-03-18
------------------------------------------------------------------------
r62801 | nagachika | 2018-03-18 12:57:37 +0900 (Sun, 18 Mar 2018) | 2 lines

revert r62797, r62784. [Bug #13863]

------------------------------------------------------------------------
r62797 | nagachika | 2018-03-17 23:23:09 +0900 (Sat, 17 Mar 2018) | 22 lines

merge revision(s) 57484,58767,58938,59041: [Backport #13863]

	ruby.c: forbid options

	* ruby.c (forbid_setid): constified.

	* ruby.c (process_options): forbid if setid earlier.

	ruby.c: encode script name

	* ruby.c (process_options): encode script name to locale encoding
	  instead of associate, if UTF-8 path.

	ruby.c: file in load_file argument

	* ruby.c (load_file): move opened file to an argument, to reduce
	  open/close calls in the near future.

	ruby.c: script name in UTF-8

	* ruby.c (process_options): keep script name in UTF-8 if UTF8_PATH
	  to get rid of loss by conversion.
------------------------------------------------------------------------
r62784 | nagachika | 2018-03-17 02:34:44 +0900 (Sat, 17 Mar 2018) | 25 lines

merge revision(s) 58745,58780,59040,60743: [Backport #13863]

	rb_w32_ugetcwd: UTF-8 version getcwd

	* dir.c (rb_dir_getwd): convert from UTF-8.

	* win32/win32.c (w32_getcwd): codepage aware getcwd using
	  GetCurrentDirectoryW.
	potential memory leak

	* dir.c (rb_dir_getwd): get rid of potential memory leak.

	* util.c (ruby_getcwd): ditto.
	file.c: realpath in OS path encoding

	* dir.c (rb_dir_getwd_ospath): return cwd path in the OS path
	  encoding.

	* file.c (rb_realpath_internal): work in the OS path encoding
	load.c: cwd encoding

	* load.c (rb_get_expanded_load_path): save cwd cache in OS path
	  encoding, to get rid of unnecessary conversion and infinite
	  loading when it needs encoding conversion.
	  [ruby-dev:50221] [Bug #13863]
------------------------------------------------------------------------
r62783 | svn | 2018-03-17 01:41:24 +0900 (Sat, 17 Mar 2018) | 1 line

* 2018-03-17
------------------------------------------------------------------------
r62782 | nagachika | 2018-03-17 01:41:23 +0900 (Sat, 17 Mar 2018) | 12 lines

merge revision(s) 60666,60667,60668: [Backport #14082]

	Fix size on Enumerable#cycle when the size is 0 [Bug #14082].

	Patch by Kenichi Kamiya

	test/ruby/test_lazy_enumerator.rb: test for [Bug #14082]

	enum.c: check argument first

	* enum.c (enum_cycle_size): check an argument before the size of
	  the receiver, if it is given.
------------------------------------------------------------------------
r62712 | nagachika | 2018-03-10 11:46:51 +0900 (Sat, 10 Mar 2018) | 12 lines

merge revision(s) 60384: [Backport #13887]

	thread_pthread: do not corrupt stack

	This fixes stuck test/ruby/test_io.rb with FIBER_USE_NATIVE=0 on
	GNU/Linux because linked-list pointers used by glibc get
	corrupted when fiber stacks are copied.

	Thanks to wanabe for finding the bug and original patch.

	* thread_pthread (native_thread_init_stack): fix stack corruption
	  [ruby-core:82737] [Bug #13387]
------------------------------------------------------------------------
r62711 | nagachika | 2018-03-10 11:32:56 +0900 (Sat, 10 Mar 2018) | 6 lines

merge revision(s) 59963: [Backport #13163]

	thread.c: report then abort

	* thread.c (thread_start_func_2): report then abort on exception,
	  if both are set.  [ruby-core:79280] [Bug #13163]
------------------------------------------------------------------------
r62694 | nagachika | 2018-03-08 00:10:47 +0900 (Thu, 08 Mar 2018) | 3 lines

merge revision(s) 60437: [Backport #14057]

	TracePoint#enable, #disable: Don't yield any argument. [Bug #14057]
------------------------------------------------------------------------
r62692 | nagachika | 2018-03-07 23:28:31 +0900 (Wed, 07 Mar 2018) | 8 lines

merge revision(s) 60294: [Backport #11638]

	Clarify the behavior of IO.write without offset in write mode.

	  https://github.com/ruby/ruby/pull/1571

	  Patch by @takanabe [fix GH-1571]
	  [Bug #11638][ruby-core:71277]
------------------------------------------------------------------------
r62691 | nagachika | 2018-03-07 23:26:14 +0900 (Wed, 07 Mar 2018) | 6 lines

merge revision(s) 60160: [Backport #13998]

	parse.y: token info with BOM

	* parse.y (parser_prepare): set token_info_enabled flag first,
	  before returning at BOM.  [ruby-dev:50288] [Bug #13998]
------------------------------------------------------------------------
r62690 | nagachika | 2018-03-07 23:05:38 +0900 (Wed, 07 Mar 2018) | 11 lines

merge revision(s) 60055: [Backport #13856]

	io.c: fix segfault with closing socket on Windows

	* io.c (fptr_finalize_flush): add an argument to keep GVL.
	* io.c (fptr_finalize): adjust for above change.
	* io.c (io_close_fptr): closing without GVL causes another
	  exception while raising exception in another thread. This causes
	  segfault on Windows. Keep GVL while closing when another thread
	  raises.
	  [Bug #13856] [ruby-core:82602]
------------------------------------------------------------------------
r62667 | nagachika | 2018-03-06 01:11:30 +0900 (Tue, 06 Mar 2018) | 22 lines

merge revision(s) 60000,60001,60002: [Backport #13925]

	dup String#partition return value

	* string.c (rb_str_partition): return duplicated receiver, when no
	  splits.  [ruby-core:82911] [Bug#13925]

	Author:    Seiei Miyagi <hanachin@gmail.com>

	dup String#rpartition return value

	* string.c (rb_str_rpartition): return duplicated receiver, when
	  no splits.  [ruby-core:82911] [Bug#13925]

	Author:    Seiei Miyagi <hanachin@gmail.com>

	dup String#split return value

	* string.c (rb_str_split): return duplicated receiver, when no
	  splits.  patched by tompng (tomoya ishida) in [ruby-core:82911],
	  and the test case by Seiei Miyagi <hanachin@gmail.com>.
	  [Bug#13925] [Fix GH-1705]
------------------------------------------------------------------------
r62666 | nagachika | 2018-03-06 00:58:01 +0900 (Tue, 06 Mar 2018) | 7 lines

merge revision(s) 59970: [Backport #13736]

	ruby.c: paragraph mode by -00

	* ruby.c (proc_options): set to paragraph mode, if -00 is given,
	  as well as perl and -R0 option in 0.49.
	  [ruby-core:81987] [Bug #13736]
------------------------------------------------------------------------
r62665 | nagachika | 2018-03-06 00:42:20 +0900 (Tue, 06 Mar 2018) | 13 lines

merge revision(s) 59975: [Backport #13916]

	process: block/unblock signals around fork

	As with forking for execve(2) in `spawn', we must block signals
	to ensure they are handled correctly in a freshly `fork'-ed child.

	* process.c (retry_fork_ruby): block/unblock signals around fork
	  (rb_fork_ruby): re-enable signals in forked child
	* test/ruby/test_process.rb (test_forked_child_signal): new test
	  [ruby-core:82883] [Bug #13916]

	  Thanks to Russell Davis for the bug report and test case.
------------------------------------------------------------------------
r62651 | nagachika | 2018-03-04 11:17:58 +0900 (Sun, 04 Mar 2018) | 7 lines

merge revision(s) 59956: [Backport #13705]

	vm.c: fix `cfp consistency error' which occurs
	when raising exception in bmethod call event

	* vm.c (invoke_bmethod): set FINISH flag just before calling vm_exec.
	  [ruby-dev:50162] [Bug #13705]
------------------------------------------------------------------------
r62647 | nagachika | 2018-03-04 07:09:20 +0900 (Sun, 04 Mar 2018) | 12 lines

merge revision(s) 59602,59887: [Backport #13816]

	High Sierra's APFS cannot use invalid filenames [Bug #13816]

	added workaround for APFS file format.

	  * TestFileExhaustive#test_atime: It fails with nano-sec precise.
	    I changed to use unixtime for this assertion for APFS.
	  * TestFileExhaustive#test_expand_path: skip assertion when given
	    invalid charactor on APFS.

	  [Bug #13816][ruby-core:82383]
------------------------------------------------------------------------
r62646 | nagachika | 2018-03-04 07:04:49 +0900 (Sun, 04 Mar 2018) | 16 lines

merge revision(s) 58431,58447: [Backport #13489]

	test_framework.rb: for case-sensitive filesystem

	* test/mkmf/test_framework.rb (test_single_framework): fix header
	  file name for case-sensitive filesystem.  it may not be same as
	  the framework name, but should be the actual file name.
	  [ruby-dev:50093] [Bug #13489]

	* test/mkmf/test_framework.rb (test_multi_frameworks): ditto.

	test_file_exhaustive.rb: check case-sensitive fs

	* test/ruby/test_file_exhaustive.rb (test_expand_path): dump
	  expanded file name, not only appended char, for case-sensitive
	  filesystem.  [ruby-dev:50093] [Bug #13489]
------------------------------------------------------------------------
r62645 | nagachika | 2018-03-04 06:54:45 +0900 (Sun, 04 Mar 2018) | 5 lines

merge revision(s) 59867: [Backport #13894]

	test/win32ole/test_word.rb: word quit without confirmation dialog to save 
	files. [Bug #13894] Thanks to h.shirosaki.

------------------------------------------------------------------------
r62640 | nagachika | 2018-03-03 11:39:47 +0900 (Sat, 03 Mar 2018) | 5 lines

merge revision(s) 59893,59922: [Backport #13895]

	fix the case High Sierra's mincore(2) may return -128 [Bug #13895]

	Fix typos [ci skip]
------------------------------------------------------------------------
r62639 | nagachika | 2018-03-03 11:25:41 +0900 (Sat, 03 Mar 2018) | 10 lines

merge revision(s) 58769,59710,59712: [Backport #13566]

	Treat NULL reference case [Bug #13566]

	Fix C level backtrace on Darwin

	SEGV caused by invalid instruction call.

	skip unless PLATFORM is darwin.

------------------------------------------------------------------------
r62638 | nagachika | 2018-03-03 11:07:18 +0900 (Sat, 03 Mar 2018) | 15 lines

merge revision(s) 57597,57951: [Backport #13232]

	bigdecimal: version 1.3.1

	Import bigdecimal version 1.3.1.  The full commit log is here:

	  https://github.com/ruby/bigdecimal/compare/v1.3.0...v1.3.1

	bigdecimal: version 1.3.2

	Import bigdecimal version 1.3.2.  The full commit log is here:

	  https://github.com/ruby/bigdecimal/compare/v1.3.1...v1.3.2

	This fixes [ruby-core:79603] [Bug #13232]
------------------------------------------------------------------------
r62636 | nagachika | 2018-03-02 21:59:11 +0900 (Fri, 02 Mar 2018) | 9 lines

merge revision(s) 59454,59954: [Backport #14118]

	configure.in: use libtool

	* configure.in: use libtool on macOS to suppress a warning against
	  debug_counter.o, which has no symbols unless USE_DEBUG_COUNTER
	  is set to non-zero.

	configure.in: use newer libtool only
------------------------------------------------------------------------
r62634 | nagachika | 2018-03-02 21:45:41 +0900 (Fri, 02 Mar 2018) | 12 lines

merge revision(s) 62506,62508: [Backport #14438]

	test_time_tz.rb: past Japanese DST tzdata fix

	* test/ruby/test_time_tz.rb (TestTimeTZ#test_asia_tokyo): follow
	  the tzdata 2018 fix of Japanese DST transitions (1948-1951).
	  [ruby-core:85373] [Bug #14438]

	test_time_tz.rb: past Japanese DST tzdata fix

	* test/ruby/test_time_tz.rb (TestTimeTZ#test_asia_tokyo): fix
	  the expected data at the end of DST.  [Bug #14438]
------------------------------------------------------------------------
r62444 | nagachika | 2018-02-17 01:40:57 +0900 (Sat, 17 Feb 2018) | 14 lines

merge revision(s) 57733,57734: [Backport #13782]

	kwrest arg name

	* compile.c (iseq_set_arguments_keywords): make keyword rest
	  argument name nd_vid consistently, regardless of whether other
	  keyword arguments are present.  [Fix GH-1529]

	* parse.y (new_args_tail_gen): ditto.

	fix nd_ainfo->kw_rest_arg

	[Fix GH-5129]
	Author:    fate0 <fate0@users.noreply.github.com>
------------------------------------------------------------------------
r62440 | nagachika | 2018-02-17 01:25:40 +0900 (Sat, 17 Feb 2018) | 13 lines

merge revision(s) 59983,59984: [Backport #10222] [Backport #14372] [Backport #14424]

	file.c: rb_check_realpath

	* file.c (rb_check_realpath): returns real path which has no
	  symbolic links.  similar to rb_realpath except for returning
	  Qnil if any parts did not exist.

	load.c: real path to load

	* load.c (rb_construct_expanded_load_path): expand load paths to
	  real paths to get rid of duplicate loading from symbolic-linked
	  directories.  [Feature #10222]
------------------------------------------------------------------------
r62438 | nagachika | 2018-02-17 01:10:17 +0900 (Sat, 17 Feb 2018) | 6 lines

merge revision(s) 62436: [Backport #14481]

	fix regexp literal warning.

	test/rubygems/test_gem_server.rb: eliminate duplicated character class warning.
	[Bug #14481]
------------------------------------------------------------------------
r62435 | nagachika | 2018-02-17 00:27:37 +0900 (Sat, 17 Feb 2018) | 13 lines

merge revision(s) 58471,58493: [Backport #13505]

	load.c: backtrace of circular require

	* load.c (load_lock): print backtrace of circular require via
	  `Warning.warn` [ruby-core:80850] [Bug #13505]

	Send the backtrace of the circular require warning as a single String to Warning.warn

	* load.c: send as a single string.
	* error.c: expose the string formatted by rb_warning as rb_warning_string().
	* test/ruby/test_exception.rb: update tests.
	  [ruby-core:80850] [Bug #13505]
------------------------------------------------------------------------
r62434 | nagachika | 2018-02-16 23:58:30 +0900 (Fri, 16 Feb 2018) | 7 lines

merge revision(s) 62422: [Backport #14481]

	Merge RubyGems 2.7.6 from upstream.

	  It fixed some security vulnerabilities.

	  http://blog.rubygems.org/2018/02/15/2.7.6-released.html
------------------------------------------------------------------------
r62234 | nagachika | 2018-02-05 23:21:12 +0900 (Mon, 05 Feb 2018) | 8 lines

merge revision(s) 61484: [Backport #14232]

	vm_method.c: fix super in refined module

	* vm_method.c (rb_method_entry_complement_defined_class): clone
	  the original method entry of refined module instance method with
	  the active ICLASS, to track super method chain.
	  [ruby-dev:50390] [Bug #14232]
------------------------------------------------------------------------
r62233 | nagachika | 2018-02-05 23:05:52 +0900 (Mon, 05 Feb 2018) | 13 lines

merge revision(s) 60980,60984: [Backport #14070]

	Modules should not have subclasses.

	When refining a module, the module was set to the superclass of its refinement,
	and a segmentation fault occurred.
	The superclass of the refinement should be an iclass of the module.
	[ruby-core:83617] [Bug #14070]

	The superclass of a refinement should have BasicObject as its ancestor.

	Otherwise, VM_ASSERT(callable_method_entry_p(cme)) in
	prepare_callable_method_entry() fails if VM_CHECK_MODE is 2.
------------------------------------------------------------------------
r62185 | nagachika | 2018-02-04 09:39:24 +0900 (Sun, 04 Feb 2018) | 28 lines

merge revision(s) 61149,61150,61151,61167: [Backport #14162]

	irb.rb: preserve ARGV on binding.irb

	This is not perfectly good solution (at least we don't want to have ARGV
	as default value of `argv` argument), but unfortunately IRB.setup and
	IRB.parse_opts are public methods and we can't make breaking change to
	those methods.

	We may deprecate using them and then make them private in the future,
	but the removal should not be in Ruby 2.5. So I kept their interface for
	now.

	[Bug #14162] [close GH-1770]

	* properties.

	irb/init.rb: make sure ARGV refers to toplevel one

	irb/test_init.rb: add test to ensure $0

	is not changed.

	At first `ARGV.unshift('something')` was suggested for r61149,
	but it wasn't sufficient because it modifies $0.

	Not only to preserve ARGV, but also r61149 intends to preserve $0.
	This test prevents future breakage of the behavior.
------------------------------------------------------------------------
r62174 | nagachika | 2018-02-03 11:51:00 +0900 (Sat, 03 Feb 2018) | 6 lines

merge revision(s) 60213: [Backport #14032]

	parse.y: indent at '#'

	* parse.y (parser_here_document): update indent at '#', which is
	  not a space.  [ruby-core:83368] [Bug #14032]
------------------------------------------------------------------------
r62173 | nagachika | 2018-02-03 11:39:42 +0900 (Sat, 03 Feb 2018) | 12 lines

merge revision(s) 60040,60188: [Backport #14014]

	complex.c: no overflow

	* complex.c (rb_complex_finite_p): get rid of overflow and
	  unnecessary multiplication.

	test_complex.rb: NaN Complex

	* test/ruby/test_complex.rb (test_finite_p): assertions for NaN
	  Complex.  NaN is not an infinite nor a finite number.
	  [ruby-core:83272] [Bug #14014]
------------------------------------------------------------------------
r62172 | nagachika | 2018-02-03 11:25:37 +0900 (Sat, 03 Feb 2018) | 14 lines

merge revision(s) 60042,60130,60131: [Backport #13982]

	ext: adjust indent [ci skip]

	zlib.c: memory leak in gunzip

	* ext/zlib/zlib.c (zlib_gunzip): clear zstream to fix memory leak.
	  [ruby-core:83162] [Bug #13982]

	zlib.c: ensure to free

	* ext/zlib/zlib.c (zlib_gunzip): gz0 is a structure variable on
	  the stack, no longer valid after exit by an exception.  ensure
	  to free instead.  [Bug #13982]
------------------------------------------------------------------------
r62171 | nagachika | 2018-02-03 11:05:17 +0900 (Sat, 03 Feb 2018) | 7 lines

merge revision(s) 59986: [Backport #13928]

	numeric.c: use NUM2DBL

	* numeric.c (fix_fdiv_double), bignum.c (rb_big_fdiv_double): use
	  NUM2DBL on unknown object.  RFLOAT_VALUE is only appliicable to
	  T_FLOAT object.  [ruby-core:82924] [Bug #13928]
------------------------------------------------------------------------
r61854 | nagachika | 2018-01-15 22:27:28 +0900 (Mon, 15 Jan 2018) | 8 lines

merge revision(s) 60079: [Backport #13794]

	thread_pthread.c: do not wakeup inside child processes

	* thread_pthread.c (rb_thread_wakeup_timer_thread): check
	  ownership before incrementing
	  (rb_thread_wakeup_timer_thread_low): ditto
	  [Bug #13794] [ruby-core:83064]
------------------------------------------------------------------------
r61456 | nagachika | 2017-12-25 05:06:32 +0900 (Mon, 25 Dec 2017) | 5 lines

merge revision(s) 60071: [Backport #13953] [Backport #13954] [Backport #13955] [Backport #13957]

	ext: check if null byte is contained

	[ruby-dev:50267] [Bug #13953]
------------------------------------------------------------------------
r61455 | nagachika | 2017-12-25 04:14:30 +0900 (Mon, 25 Dec 2017) | 7 lines

merge revision(s) 60066: [Backport #13952]

	string.c: fix ASCII-only on succ

	* string.c (str_succ): clear coderange cache when no alpha-numeric
	  character case, carried part may become ASCII-only.
	  [ruby-core:83062] [Bug #13952]
------------------------------------------------------------------------
r61454 | nagachika | 2017-12-25 03:59:53 +0900 (Mon, 25 Dec 2017) | 6 lines

merge revision(s) 60059: [Backport #13949]

	pack.c: unpack "M" may be ASCII only

	* pack.c (pack_unpack_internal): set ASCII only properly on "M",
	  may be ASCII only.  [ruby-core:83055] [Bug #13949]
------------------------------------------------------------------------
r61453 | nagachika | 2017-12-25 03:46:48 +0900 (Mon, 25 Dec 2017) | 6 lines

merge revision(s) 60060: [Backport #13950]

	string.c: ASCII-incompatible is not ASCII only

	* string.c (tr_trans): ASCII-incompatible encoding strings cannot
	  be ASCII-only even if valid.  [ruby-core:83056] [Bug #13950]
------------------------------------------------------------------------
r61440 | nagachika | 2017-12-24 12:01:35 +0900 (Sun, 24 Dec 2017) | 7 lines

merge revision(s) 60024: [Backport #13945]

	vm.c: fetch retval iff necessary

	* vm.c (rb_vm_make_jump_tag_but_local_jump): get rid of fetching
	  retval when it is not used.  it is necessary for local jump
	  state only.
------------------------------------------------------------------------
r61439 | nagachika | 2017-12-24 11:45:07 +0900 (Sun, 24 Dec 2017) | 13 lines

merge revision(s) 60099,60100: [Backport #13964]

	compile.c: fix stack consitency error

	* compile.c (iseq_compile_each0): fix stack consitency error on
	  attr-assign with safe navigation operator when the receiver is
	  nil, should pop it too.  [ruby-core:83078] [Bug #13964]

	test_call.rb: refine test_safe_call

	* test/ruby/test_call.rb (test_safe_call): rhs should not be
	  evaluated when the receiver is nil.  simplified the assertion
	  for  [Bug #13964].
------------------------------------------------------------------------
r61436 | nagachika | 2017-12-24 11:29:19 +0900 (Sun, 24 Dec 2017) | 14 lines

merge revision(s) 59444,59445: [Backport #13776]

	adjust indent [ci skip]

	* vm_insnhelper.c (vm_call_method_each_type): adjust indent of a
	  block in switch.

	visibility of inherited method

	* vm_insnhelper.c (vm_call_method_each_type): honor the original
	  visibility of inherited methods when a refinement is defined but
	  not activated.  [ruby-core:82209] [Bug #13776]

	Author:    Mon_Ouie (Mon ouie) <mon.ouie@gmail.com>
------------------------------------------------------------------------
r61414 | nagachika | 2017-12-22 20:43:00 +0900 (Fri, 22 Dec 2017) | 8 lines

merge revision(s) 57971: [Backport #13305]

	Fix a consistency bug of ISEQ_COVERAGE [Bug #13305]

	There is an invariant that ISEQ_COVERAGE(iseq) must be Qnil if and only
	if option->coverage_enabled is false.  This invariant was broken by
	NODE_PRELUDE which updates option->coverage_enabled but not
	ISEQ_COVERAGE(iseq).
------------------------------------------------------------------------
r61373 | nagachika | 2017-12-21 00:59:14 +0900 (Thu, 21 Dec 2017) | 3 lines

merge revision(s) 60021: [Backport #13926]

	HTTPHeader#add_field should allow binary [Bug #13926]
------------------------------------------------------------------------
r61370 | nagachika | 2017-12-21 00:34:37 +0900 (Thu, 21 Dec 2017) | 18 lines

merge revision(s) 58410,58411: [Backport #13487]

	ri.1: rewrite ri man page

	* man/ri.1: update the (very outdated) ri man page:
	  * update document date
	  * fix document title formatting and volume name
	  * update descriptions and options to current ri --help text
	  * fix some mdoc formatting errors (missing escaping of `\',
	    wrong macro for bullet list items)
	  * various rewordings and other improvements

	improve man pages

	* man/ruby.1, man/erb.1, man/goruby.1, man/irb.1:
	  fix document title formatting and volume name,
	  improve "REPORTING BUGS" section: fix mdoc formatting error
	  (wrong macro for bullet list items), small rewordings.
------------------------------------------------------------------------
r61369 | nagachika | 2017-12-21 00:31:18 +0900 (Thu, 21 Dec 2017) | 6 lines

merge revision(s) 59372: [Backport #13649]

	lib/net/imap.rb: Ignore trailing space for Microsoft Exchange Server

	Based on the patch by keysen (Jeremy Carlier).
	[ruby-core:81641] [Bug #13649]
------------------------------------------------------------------------
r61368 | nagachika | 2017-12-21 00:21:56 +0900 (Thu, 21 Dec 2017) | 7 lines

merge revision(s) 58208: [Backport #13386]

	Add documents on Process::CLOCK_* constants

	* process.c: Add documents on Process::CLOCK_* constants.
	  Patch by Sunao Komuro <sunao-komuro@cookpad.com>.
	  Closes [GH-1567] [Bug #13386]
------------------------------------------------------------------------
r61367 | nagachika | 2017-12-21 00:20:15 +0900 (Thu, 21 Dec 2017) | 27 lines

merge revision(s) 58146,58150,58156: [Backport #13276]

	error.c: refactor warning messages

	* error.c (with_warning_string): extract building warning message
	  string from variadic arguments.

	* error.c (syserr_warning): write warning message with the system
	  error message.

	error.c: warning functions

	* error.c: define warning functions in all combinations of
	  * no errno, system errno, argument
	  * without/with encoding
	  * enabled/disabled by default

	dir.c: err at glob failure

	* dir.c (glob_helper): raise a SystemCallError exception when
	  opendir() failed, except for ENOENT, ENOTDIR, and EACCES.  this
	  behavior predates 1.0; the comments in glob.c claimed that
	  glob() returned -1 on error but actualy the pointer to a global
	  variable, then dir_glob() did check only -1 as the comments, and
	  ignored actual errors.  [ruby-core:80226] [Bug #13276]

	dir.c: ruby_glob_funcs_t
------------------------------------------------------------------------
r61366 | nagachika | 2017-12-20 23:58:57 +0900 (Wed, 20 Dec 2017) | 8 lines

merge revision(s) 58409: [Backport #10838]

	ri.1: fix errors in ri man page

	* man/ri.1: fix some errors in ri man page (add missing options,
	  remove options that do not exist, fix formatter list).

	  Reported by Josh Cheek.  [ruby-core:68065] [Bug #10838]
------------------------------------------------------------------------
r61365 | nagachika | 2017-12-20 23:57:44 +0900 (Wed, 20 Dec 2017) | 9 lines

merge revision(s) 58020: [Backport #10936]

	date_core.c: fix error in DateTime docs

	* ext/date/date_core.c: [DOC] fix format string for DateTime#rfc3339.
	  Reported by Andreas Rayo Kniep.  [ruby-core:68418] [Bug #10936]

	* ext/date/date_core.c: [DOC] ditto for DateTime#iso8601 and
	  DateTime#xmlschema; other small improvements.
------------------------------------------------------------------------
r61364 | nagachika | 2017-12-20 23:56:48 +0900 (Wed, 20 Dec 2017) | 19 lines

merge revision(s) 57887: [Backport #13159]

	lib/ostruct.rb: [DOC] revise docs for OpenStruct

	* update paragraph on implementation:
	  define_singleton_method is used, not define_method
	* add call-seq with return values for each_pair
	* adopt description of dig from Array and Hash
	* fix description of the hash method
	* :nodoc: initialize_copy, respond_to_missing?
	* other small improvements, e.g. use the term `attribute' in the docs
	  (instead of `member'), which is clearer for users of the class
	* improve code examples: e.g. use more consistent style (always use
	  double quotes, drop `p' and `puts', ...), update inspect output,
	  use example data that is not prone to change (like population)
	* add more code examples
	* fix some small errors and grammar

	[ruby-core:79265] [Bug #13159]
------------------------------------------------------------------------
r61363 | nagachika | 2017-12-20 23:55:34 +0900 (Wed, 20 Dec 2017) | 10 lines

merge revision(s) 57686: [Backport #13233]

	rational.c: fix rdoc

	* rational.c: [DOC] fix wrong indentations and comment out some lines
	  in code examples to make them valid Ruby code and syntax highlighted
	  on the rendered page.

	[ci skip] [ruby-core:79607] [Bug #13233]
	Author:    Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r61362 | nagachika | 2017-12-20 23:54:56 +0900 (Wed, 20 Dec 2017) | 11 lines

merge revision(s) 57536: [Backport #13192]

	doc: Add example for Symbol#to_s

	* string.c: add example for Symbol#to_s.

	The docs for Symbol#to_s only include an example for
	Symbol#id2name, but not for #to_s which is an alias;
	the docs should include examples for both methods.

	From: Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r61361 | nagachika | 2017-12-20 23:53:56 +0900 (Wed, 20 Dec 2017) | 11 lines

merge revision(s) 57649,57651: [Backport #13222]

	array.c: finish_exact_sum

	* array.c (finish_exact_sum): extract duplicate code from
	  rb_ary_sum.

	array.c: check if numeric

	* array.c (finish_exact_sum): add 0 and the initial value to check
	  if the latter is numeric.  [ruby-core:79572] [Bug #13222]
------------------------------------------------------------------------
r61358 | nagachika | 2017-12-20 20:54:58 +0900 (Wed, 20 Dec 2017) | 7 lines

merge revision(s) 60182: [Backport #14009]

	configure.ac: link Foundation framework

	* configure.ac (XLDFLAGS): link against Foundation framework and
	  let __NSPlaceholderDictionary initialize, to get rid of crash
	  after fork on macOS High Sierra.  [ruby-core:83239] [Bug #14009]
------------------------------------------------------------------------
r61328 | nagachika | 2017-12-19 01:52:19 +0900 (Tue, 19 Dec 2017) | 6 lines

merge revision(s) 59748: [Backport #14073]

	st.c: fix num_entries

	* st.c (st_insert2): should manage num_entries when the key is
	  undefined, as well as st_insert().
------------------------------------------------------------------------
r61293 | nagachika | 2017-12-16 10:50:26 +0900 (Sat, 16 Dec 2017) | 1 line

bump up teeny version to 2.4.4.
------------------------------------------------------------------------
r61245 | nagachika | 2017-12-14 22:51:34 +0900 (Thu, 14 Dec 2017) | 3 lines

merge revision(s) 61242: [Backport #14185]

	Fix a command injection vulnerability in Net::FTP.
------------------------------------------------------------------------
r61239 | nagachika | 2017-12-14 22:31:41 +0900 (Thu, 14 Dec 2017) | 69 lines

merge revision(s) 60123,60172,60189,60208,60210,60211: [Backport #14005]

	webrick: avoid unnecessary IO#sync= call

	Sockets and pipes are always created with FMODE_SYNC flag
	already set (otherwise many things would be broken).

	* lib/webrick/server.rb (accept_client): remove unnecessary
	  IO#sync= call

	webrick: do not hang acceptor on slow TLS connections

	OpenSSL::SSL::SSLSocket#accept may block indefinitely on clients
	which negotiate the TCP connection, but fail (or are slow) to
	negotiate the subsequent TLS handshake.  This prevents the
	multi-threaded WEBrick server from accepting other connections.

	Since the TLS handshake (via OpenSSL::SSL::SSLSocket#accept)
	consists of normal read/write traffic over TCP, handle it in the
	per-client thread, instead.

	Furthermore, using non-blocking accept() is useful for non-TLS
	sockets anyways because spurious wakeups are possible from
	select(2).

	* lib/webrick/server.rb (accept_client): use TCPServer#accept_nonblock
	  and remove OpenSSL::SSL::SSLSocket#accept call
	* lib/webrick/server.rb (start_thread): call OpenSSL::SSL::SSLSocket#accept
	* test/webrick/test_ssl_server.rb (test_slow_connect): new test
	  [ruby-core:83221] [Bug #14005]

	webrick: fix up r60172

	By making the socket non-blocking in r60172, TLS/SSL negotiation
	via the SSL_accept function must handle non-blocking sockets
	properly and retry on SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE.
	OpenSSL::SSL::SSLSocket#accept cannot do that properly with a
	non-blocking socket, so it must use non-blocking logic of
	OpenSSL::SSL::SSLSocket#accept_nonblock.

	Thanks to MSP-Greg (Greg L) for finding this.

	* lib/webrick/server.rb (start_thread): use SSL_accept properly
	  with non-blocking socket.
	  [Bug #14013] [Bug #14005]

	webrick: fix up r60172 and revert r60189

	Thanks to MSP-Greg (Greg L) for helping with this.

	* lib/webrick/server.rb (start_thread): ignore ECONNRESET, ECONNABORTED,
	  EPROTO, and EINVAL on TLS negotiation errors the same way they
	  were ignored before r60172 in the accept_client method of the
	  main acceptor thread.
	  [Bug #14013] [Bug #14005]

	webrick: fix up r60172 and r60208

	Thanks to MSP-Greg (Greg L) for helping with this.

	* lib/webrick/server.rb (start_thread): fix non-local return
	  introduced in r60208

	webrick: fix up r60172 and r60210

	Thanks to MSP-Greg (Greg L) for helping with this.

	* lib/webrick/server.rb (start_thread): properly fix non-local return
	  introduced in r60208 and r60210
------------------------------------------------------------------------
r61238 | nagachika | 2017-12-14 22:14:12 +0900 (Thu, 14 Dec 2017) | 15 lines

merge revision(s) 61197: [Backport #14184]

	webrick: compile RE correctly for beginning and end match

	Using ^ and $ in regexps means we can accidentally get fooled
	by "%0a" in HTTP request paths being decoded to newline
	characters.  Use \A and \z to match beginning and end-of-string
	respectively, instead.

	Thanks to mame and hsbt for reporting.

	* lib/webrick/httpserver.rb (MountTable#compile):
	  use \A and \z instead of ^ and $
	* lib/webrick/httpserver.rb (MountTable#normalize): use \z instead of $
	* test/webrick/test_httpserver.rb (test_cntrl_in_path): new test
------------------------------------------------------------------------
r60626 | nagachika | 2017-11-03 10:46:59 +0900 (Fri, 03 Nov 2017) | 8 lines

merge revision(s) 58499,58500: [Backport #13181]

	parse.y: fix line in rescue

	* parse.y (set_line_body, primary): fix line number of bodystmt as
	  the beginning of the block.  [ruby-core:79388] [Bug #13181]

	parse.y: set_line_body is not used in ripper
------------------------------------------------------------------------
r60168 | nagachika | 2017-10-11 22:48:14 +0900 (Wed, 11 Oct 2017) | 5 lines

merge revision(s) 60149: [Backport #14003]

	Merge rubygems-2.6.14 changes.

	  It fixed http://blog.rubygems.org/2017/10/09/unsafe-object-deserialization-vulnerability.html
------------------------------------------------------------------------
r59914 | nagachika | 2017-09-15 07:22:39 +0900 (Fri, 15 Sep 2017) | 10 lines

merge revision(s) 58254: [Backport #13402]

	fix --with-gmp (broken by r57490)

	Looking at the generated shell script (also the autoconf manual), it
	seems AC_SEARCH_LIBS() m4 macro does not define HAVE_LIBsomething C
	preprocessor macros, unlike AC_CHECK_LIB() which does define them.
	This previous change effectively killed building with GMP because
	building that mode depends on existence of HAVE_LIBGMP. [Bug #13402]

------------------------------------------------------------------------
r59913 | nagachika | 2017-09-15 07:21:51 +0900 (Fri, 15 Sep 2017) | 1 line

bump up teeny version to 2.4.3.
------------------------------------------------------------------------
r59898 | nagachika | 2017-09-14 20:24:10 +0900 (Thu, 14 Sep 2017) | 6 lines

merge revision(s) 59897:

	lib/webrick/log.rb: sanitize any type of logs

	It had failed to sanitize some type of exception messages.  Reported and
	patched by Yusuke Endoh (mame) at https://hackerone.com/reports/223363
------------------------------------------------------------------------
r59841 | nagachika | 2017-09-12 02:27:01 +0900 (Tue, 12 Sep 2017) | 7 lines

merge revision(s) 59375: [Backport #13756]

	parse.y: empty hash in defined

	* parse.y (command): NODE_ARRAY with NULL is invalid.  traversal
	  in defined_expr0 is simplified than iseq_compile_each0.
	  [ruby-core:82113] [Bug #13756]
------------------------------------------------------------------------
r59823 | nagachika | 2017-09-10 21:33:09 +0900 (Sun, 10 Sep 2017) | 6 lines

merge revision(s) 59765: [Backport #13877]

	ruby.h: unnormalized Fixnum value

	* include/ruby/ruby.h (ST2FIX): fix unnormalized Fixnum value bug
	  on mingw/mswin.  [ruby-core:82687] [Bug #13877]
------------------------------------------------------------------------
r59822 | nagachika | 2017-09-10 21:17:49 +0900 (Sun, 10 Sep 2017) | 7 lines

merge revision(s) 59763: [Backport #13874]

	string.c: fix false coderange

	* string.c (rb_enc_str_scrub): enc can differ from the actual
	  encoding of the string, the cached coderange is useless then.
	  [ruby-core:82674] [Bug #13874]
------------------------------------------------------------------------
r59820 | nagachika | 2017-09-10 19:27:59 +0900 (Sun, 10 Sep 2017) | 6 lines

merge revision(s) 59644: [Backport #13836]

	parse.y: primary should not be 0

	* parse.y (primary): should not be 0, since it can be a receiver.
	  [ruby-core:82447] [Bug #13836]
------------------------------------------------------------------------
r59819 | nagachika | 2017-09-10 19:10:28 +0900 (Sun, 10 Sep 2017) | 7 lines

merge revision(s) 59613: [Backport #13817]

	vm_method.c: alias warning at refined method

	* vm_method.c (rb_method_entry_make): suppress a warning at
	  refined method which will not be redefined.
	  [ruby-core:82385] [Bug #13817]
------------------------------------------------------------------------
r59818 | nagachika | 2017-09-10 15:15:05 +0900 (Sun, 10 Sep 2017) | 2 lines

revert r59813 partially. TestGemRequire#test_realworld_default_gem is not contained in trunk. 
I would like to sync rubygems on ruby_2_4 branch to trunk
------------------------------------------------------------------------
r59817 | nagachika | 2017-09-10 15:03:12 +0900 (Sun, 10 Sep 2017) | 6 lines

merge revision(s) 59649: [Backport #13832]

	gc.c: restore cfp at finalizer

	* gc.c (run_finalizer): restore cfp for the case an exception
	  raised in a finalizer.  [ruby-core:82432] [Bug #13832]
------------------------------------------------------------------------
r59816 | nagachika | 2017-09-10 14:44:27 +0900 (Sun, 10 Sep 2017) | 1 line

revert r59815 partially.
------------------------------------------------------------------------
r59815 | nagachika | 2017-09-10 14:36:09 +0900 (Sun, 10 Sep 2017) | 1 line

bump up RUBY_PATCHLEVEL
------------------------------------------------------------------------
r59814 | nagachika | 2017-09-10 14:23:13 +0900 (Sun, 10 Sep 2017) | 3 lines

lib/rubygems: fix several vulnerabilities in RubyGems; bump to version 2.6.13.
[Backport #13842]

------------------------------------------------------------------------
r59813 | nagachika | 2017-09-10 14:10:55 +0900 (Sun, 10 Sep 2017) | 2 lines

lib/rubygems: bump up RubyGems version to 2.6.12. [Backport #13842]

------------------------------------------------------------------------
r59812 | nagachika | 2017-09-10 13:53:58 +0900 (Sun, 10 Sep 2017) | 6 lines

merge revision(s) 59708: [Backport #13844]

	compile.c: ensure after toplevel return

	* compile.c (iseq_compile_each0): toplevel returns should fire
	  ensures.  [ruby-core:82492] [Bug #13844]
------------------------------------------------------------------------
r59811 | nagachika | 2017-09-10 12:49:10 +0900 (Sun, 10 Sep 2017) | 15 lines

merge revision(s) 59624,59626: [Backport #13830]

	ruby.h: fix rb_scan_args_trail_idx

	* include/ruby/ruby.h (rb_scan_args_trail_idx): fix the case both
	  of optional and rest arguments are defined.
	  [ruby-core:82427] [Bug #13830]

	* include/ruby/ruby.h (rb_scan_args_n_trail): ditto.
	non-keywords hash

	* class.c (rb_scan_args), include/ruby/ruby.h (rb_scan_args_set):
	  return non-keywords elements only in the last hash when keyword
	  arguments are extracted from it, as well as methods defined in
	  ruby level.  [ruby-core:82427] [Bug #13830]
------------------------------------------------------------------------
r59809 | nagachika | 2017-09-10 11:58:23 +0900 (Sun, 10 Sep 2017) | 14 lines

merge revision(s) 59322,59325: [Backport #13744]

	process.c: handle dynamic :rlimit_* symbols in spawn execopts

	* process.c (rb_execarg_addopt_rlimit): hoist out of rb_execarg_addopt
	  (rlimit_type_by_sym): new wrapper for dynamic symbol
	  (rb_execarg_addopt): check for dsym via rlimit_type_by_sym
	* test/ruby/test_process.rb (test_execopts_rlimit): check dsym w/o pindown
	  Add extra check for bogus rlimit args, too.
	  [ruby-core:82033] [Bug #13744]
	process.c: null bytes

	* process.c (rlimit_type_by_sym): prohibit null bytes in key
	  names.  [ruby-core:82033] [Bug #13744]
------------------------------------------------------------------------
r59808 | nagachika | 2017-09-10 11:46:34 +0900 (Sun, 10 Sep 2017) | 7 lines

merge revision(s) 57944,57977,58062: [Backport #13306]

	io.c: [DOC] IO#puts uses IO#write
	io.c: [DOC] add missing `$`
	io.c: [DOC] expand docs for IO#puts

	[ruby-core:80081] [Bug #13306]
------------------------------------------------------------------------
r59807 | nagachika | 2017-09-10 11:40:45 +0900 (Sun, 10 Sep 2017) | 24 lines

merge revision(s) 58524,58525,58526,59333,59337: [Backport #13616]

	zlib.c: zstream_expand_buffer_non_stream

	* ext/zlib/zlib.c (zstream_expand_buffer_non_stream): rename from
	  zstream_expand_buffer_without_gvl() and replace duplicate code
	  in zstream_expand_buffer().
	zlib.c: zstream_buffer_ungetbyte

	* ext/zlib/zlib.c (zstream_buffer_ungetbyte): simplify by using
	  zstream_buffer_ungets().
	zlib.c: no buf_filled in zstream

	* ext/zlib/zlib.c (zstream): manage capacity and size of `buf`
	  instead of size and separated member `buf_filled`.  reported by
	  Christian Jalio (jalio) at https://hackerone.com/reports/211958
	Zlib::GzipReader#pos underflows after calling #ungetbyte or #ungetc at start of file [Bug #13616]

	patched by Andrew Haines <andrew@haines.org.nz> [ruby-core:81488]
	zlib.c: fix unnormalized Fixnum

	* ext/zlib/zlib.c (rb_gzfile_total_out): cast to long not to
	  result in an unsigned long to normalized to Fixnum on LLP64
	  platforms.  [ruby-core:81488]
------------------------------------------------------------------------
r59784 | nagachika | 2017-09-08 23:38:12 +0900 (Fri, 08 Sep 2017) | 28 lines

merge revision(s) 59567: [Backport #13796]

	openssl: import v2.0.5

	Import Ruby/OpenSSL 2.0.5. The full commit history since v2.0.4
	(imported at r59081) can be found at:

		https://github.com/ruby/openssl/compare/v2.0.4...v2.0.5

	This will fix the test failure on latest Debian sid and the "no
	OPENSSL_Applink" issue on mswin.

	----------------------------------------------------------------
	Kazuki Yamaguchi (11):
	      test/test_ssl: allow 3DES cipher suites in test_sslctx_set_params
	      bio: prevent possible GC issue in ossl_obj2bio()
	      bio: do not use the FILE BIO method in ossl_obj2bio()
	      Rakefile: install_dependencies: install only when needed
	      appveyor.yml: test against Ruby 2.4
	      ossl_pem_passwd_cb: relax passphrase length constraint
	      ossl_pem_passwd_cb: do not check for taintedness
	      ossl_pem_passwd_cb: handle nil from the block explicitly
	      ssl: remove unsupported TLS versions from SSLContext::METHODS
	      ssl: fix compile error with OpenSSL 1.0.0
	      Ruby/OpenSSL 2.0.5

	Lars Kanis (1):
	      Add msys2 library dependency tag in gem metadata
------------------------------------------------------------------------
r59783 | nagachika | 2017-09-08 23:27:38 +0900 (Fri, 08 Sep 2017) | 7 lines

merge revision(s) 59693,59695: [Backport #13852]

	A HTTP Header value must not contain CR or LF.
	to_str -> to_s

	* lib/net/http/header.rb (set_field): `val` can not have `to_str`.

------------------------------------------------------------------------
r59782 | nagachika | 2017-09-08 23:25:52 +0900 (Fri, 08 Sep 2017) | 8 lines

merge revision(s) 59584: [Backport #13850]

	REXML: Fix a bug that unexpected methods can be called as a XPath function

	[HackerOne:249295]

	Reported by Andrea Jegher. Thanks!!!

------------------------------------------------------------------------
r59520 | nagachika | 2017-08-05 16:00:33 +0900 (Sat, 05 Aug 2017) | 11 lines

merge revision(s) 59457: [Backport #13775]

	should not copy promoted flags.

	* include/ruby/ruby.h (rb_clone_setup): should not copy some flags
	  (FL_PROMOTED0|FL_PROMOTED1|FL_FINALIZE).
	  [Bug #13775]

	* test/ruby/test_object.rb: add a test (note that this test will fail
	  only when RGENGC_CHECK_MODE >= 2).

------------------------------------------------------------------------
r59517 | nagachika | 2017-08-05 15:46:23 +0900 (Sat, 05 Aug 2017) | 6 lines

merge revision(s) 59368: [Backport #13753]

	random.c: ensure initialized

	* random.c (get_rnd, try_get_rnd): ensure initialized to get rid
	  of crash in forked processes.  [ruby-core:82100] [Bug #13753]
------------------------------------------------------------------------
r59516 | nagachika | 2017-08-05 15:35:02 +0900 (Sat, 05 Aug 2017) | 30 lines

merge revision(s) 59462,59474: [Backport #13772]

	release VM stack properly.

	* cont.c: r55766 change the handling method of Fiber's VM stack.
	  Resumed Fiber points NULL as VM stack and running Thread has
	  responsibility to manage it (marking and releasing).

	  However, thread_start_func_2()@thread.c and thread_free()@vm.c
	  doesn't free the VM stack if corresponding root Fiber is exist.
	  This causes memory leak. [Bug #13772]

	* cont.c (root_fiber_alloc): fib->cont.saved_thread.ec.stack should be NULL
	  because running thread has responsibility to manage this stack.

	* vm.c (rb_thread_recycle_stack_release): assert given stack is not NULL
	  (callers should care it).

	fix stack storing for root fibers.

	* cont.c (root_fiber_alloc): this function is called by fiber_current()
	  and fiber_store(). fiber_current() should clear VM stack information
	  in a fiber data because runnning thread knows stack information and has
	  responsibility to manage it. However fiber_store() requires to remain
	  VM stack information in a fiber data because the responsibility to manage
	  VM stack is moved to the Fiber from the Thread (and switch to another
	  fiber).

	* cont.c (root_fiber_alloc): save thread's fiber and root_fiber information.

------------------------------------------------------------------------
r59515 | nagachika | 2017-08-05 12:24:54 +0900 (Sat, 05 Aug 2017) | 8 lines

merge revision(s) 59128: [Backport #13669]

	Fix Enumerable#uniq with non single yield arguments

	* enum.c (uniq_func, uniq_iter): need packed value as the unique
	  key.  [ruby-core:81734] [Bug #13669] [Fix GH-1658]

	Author:    Kenichi Kamiya <kachick1@gmail.com>
------------------------------------------------------------------------
r59514 | nagachika | 2017-08-05 11:43:08 +0900 (Sat, 05 Aug 2017) | 10 lines

merge revision(s) 58810,58894: [Backport #13578]

	compile.c: fix catch-table labels optimization

	* compile.c (remove_unreachable_chunk): do not eliminate chunks
	  followed by labels in catch-table entries.
	compile.c: fix possible use of uninitialized value

	LABEL::unremovable added by r58810 is not initialized by
	new_label_body(), making the optimization unstable.
------------------------------------------------------------------------
r59513 | nagachika | 2017-08-05 11:22:37 +0900 (Sat, 05 Aug 2017) | 7 lines

merge revision(s) 58561: [Backport #13540]

	parse.y: make shared string modifiable

	* parse.y (dedent_string): ensure that the string is modifiable,
	  not to set the length of shared string.
	  [ruby-core:80987] [Bug #13540]
------------------------------------------------------------------------
r59512 | nagachika | 2017-08-05 10:56:55 +0900 (Sat, 05 Aug 2017) | 11 lines

merge revision(s) 58205: [Backport #13380]

	Remove unused Init_frozen_strings declaration

	Init_frozen_strings definition is removed in r51511.
	https://bugs.ruby-lang.org/issues/11423

	Patch by Kohei Suzuki <eagletmt@gmail.com>

	* internal.h: Remove declaration of unexist function
	  [Fix GH-1558]
------------------------------------------------------------------------
r59511 | nagachika | 2017-08-05 10:53:44 +0900 (Sat, 05 Aug 2017) | 11 lines

merge revision(s) 57501,58576: [Backport #13539]

	escape.c: check argument

	* ext/cgi/escape/escape.c (optimized_unescape): check
	  accept_charset encoding argument.
	share `@@accept_charset`

	* lib/cgi/{core,util}.rb: include CGI::Util not only extending, to
	  share `@@accept_charset` class variable, so that it is always
	  accessible.  [ruby-core:80986] [Bug #13539]
------------------------------------------------------------------------
r59510 | nagachika | 2017-08-05 10:45:39 +0900 (Sat, 05 Aug 2017) | 9 lines

merge revision(s) 58523: [Backport #13528]

	rational.c: canonicalization case

	* rational.c (float_numerator, float_denominator): fix for
	  canonicalization case where `Float#to_r` could return an Integer
	  not a Rational.  although mathn.rb has been removed in the
	  trunk, fix for the backport purpose.
	  [ruby-core:80942] [Bug #13528]
------------------------------------------------------------------------
r59507 | nagachika | 2017-08-05 01:13:13 +0900 (Sat, 05 Aug 2017) | 7 lines

merge revision(s) 59374: [Backport #13755]

	compile.c: restore stack at return

	* compile.c (iseq_compile_each0): restore the stack depth after
	  return to the previous depth, to fix the stack depth at
	  returning from rescue iseq.  [ruby-core:82108] [Bug #13755]
------------------------------------------------------------------------
r59506 | nagachika | 2017-08-05 00:55:45 +0900 (Sat, 05 Aug 2017) | 7 lines

merge revision(s) 59384: [Backport #13759]

	strscan.c: fix segfault in aref

	* ext/strscan/strscan.c (strscan_aref): fix segfault after
	  get_byte or getch which do not apply regexp.
	  [ruby-core:82116] [Bug #13759]
------------------------------------------------------------------------
r59505 | nagachika | 2017-08-05 00:29:45 +0900 (Sat, 05 Aug 2017) | 6 lines

merge revision(s) 58913: [Backport #13599]

	numeric.c: fix for small number

	* numeric.c (flo_floor, flo_ceil): should not return zero for small
	  number.  [ruby-core:81394] [Bug #13599]
------------------------------------------------------------------------
r59504 | svn | 2017-08-05 00:06:23 +0900 (Sat, 05 Aug 2017) | 1 line

* 2017-08-05
------------------------------------------------------------------------
r59503 | nagachika | 2017-08-05 00:06:22 +0900 (Sat, 05 Aug 2017) | 9 lines

merge revision(s) 59063: [Backport #13605]


	* proc.c (get_local_variable_ptr): return found env ptr. Returned env
	  will be used by write barrier at `bind_local_variable_set()'.
	  [Bug #13605]

	* test/ruby/test_proc.rb: add a test for this issue.

------------------------------------------------------------------------
r59501 | nagachika | 2017-08-04 23:39:29 +0900 (Fri, 04 Aug 2017) | 6 lines

merge revision(s) 58287: [Backport #13411]

	configure.in: rpath with OPTDIR

	* configure.in: add rpath flags which is needed for OPTDIR as well
	  as -L options, when it is given.  [ruby-dev:50065] [Bug #13411]
------------------------------------------------------------------------
r59500 | nagachika | 2017-08-04 23:31:52 +0900 (Fri, 04 Aug 2017) | 16 lines

merge revision(s) 59357,59358: [Backport #13391] [Backport #13404]

	proc.c: rb_block_min_max_arity

	* proc.c (rb_block_min_max_arity): new function to get arity range
	  from the current block.
	vm_eval.c: rb_lambda_call

	* enum.c (enum_collect): make the block arity same as the given
	  block.  [Bug #13391]

	* internal.h (vm_ifunc): store arity instead of unused id.

	* proc.c (rb_vm_block_min_max_arity): return ifunc arity.

	* vm_eval.c (rb_lambda_call): call method with lambda block.
------------------------------------------------------------------------
r59493 | nagachika | 2017-08-04 01:00:34 +0900 (Fri, 04 Aug 2017) | 15 lines

merge revision(s) 59183,59184: [Backport #13682]

	fix return in toplevel rescue/ensure

	* compile.c (iseq_compile_each0): throw TAG_RETURN at return in
	  toplevel rescue/ensure to adjust VM stack properly.
	  [ruby-core:81777] [Bug #13682]

	* vm_insnhelper.c (vm_throw_start): allow return in toplevel
	  rescue/ensure.
	fix return in toplevel ensure

	* compile.c (iseq_compile_each0): adjust stack after return in
	  toplevel ensure, when the value is used.
	  [ruby-core:81777] [Bug #13682]
------------------------------------------------------------------------
r59492 | nagachika | 2017-08-04 00:41:24 +0900 (Fri, 04 Aug 2017) | 8 lines

merge revision(s) 59202: [Backport #13690]

	compile.c: disallow next in once

	* compile.c (iseq_compile_each0): turned dregx context in "once"
	  into "guarded" type from "block" type, to disallow `next`,
	  `break`, `redo` as well as outside "once".
	  [ruby-core:81805] [Bug #13690]
------------------------------------------------------------------------
r59491 | nagachika | 2017-08-04 00:40:10 +0900 (Fri, 04 Aug 2017) | 8 lines

merge revision(s) 59181: [Backport #13680]

	vm_insnhelper.c: break in once

	* vm_insnhelper.c (vm_throw_start): size of catch table has been
	  included in iseq_catch_table struct, which could be NULL, since
	  2.2.  e.g., proc-closure in `once'.
	  [ruby-core:81775] [Bug #13680]
------------------------------------------------------------------------
r59490 | nagachika | 2017-08-03 23:00:41 +0900 (Thu, 03 Aug 2017) | 7 lines

merge revision(s) 59169: [Backport #13678]

	compile.c: toplevel return in argument

	* compile.c (iseq_compile_each0): adjust the stack before return
	  in an evstr/argument (reported by Balazs <balazs@kutilovi.cz>)
	  to fix stack consistency error.  [ruby-core:81761] [Bug #13678]
------------------------------------------------------------------------
r59489 | nagachika | 2017-08-03 22:43:01 +0900 (Thu, 03 Aug 2017) | 43 lines

merge revision(s) 58742,59081: [Backport #11033]

	Search SSL libraries by testing various filename patterns

	* ext/openssl/extconf.rb (find_openssl_library): should search by more flexible
	  method, especially for LibreSSL on Windows.

	openssl: import v2.0.4

	Import Ruby/OpenSSL 2.0.4. Only bug (and typo) fixes. The full commit
	history since v2.0.3 (imported at r57482) can be found at:

	  https://github.com/ruby/openssl/compare/v2.0.3...v2.0.4

	This contains the fix for [Bug #11033].

	----------------------------------------------------------------
	Jun Aruga (1):
	      Update .travis.yml and Dockerfile

	Kazuki Yamaguchi (9):
	      test/test_pkey_ec: do not use dummy 0 order
	      test/test_ssl: fix typo in test_sysread_and_syswrite
	      ssl: check return value of SSL_set_fd()
	      Fix typos
	      test/test_x509store: skip OpenSSL::TestX509Store#test_set_errors
	      tool/sync-with-trunk: 'LASY' -> 'LAST'
	      x509store: clear error queue after calling X509_LOOKUP_load_file()
	      extconf.rb: simplify searching libraries logic
	      Ruby/OpenSSL 2.0.4

	SHIBATA Hiroshi (1):
	      Fix typos

	Vladimir Rybas (1):
	      Fix documentation for OpenSSL::Cipher#final

	nobu (2):
	      openssl: fix broken openssl check
	      openssl: fix broken openssl check

	usa (1):
	      Search SSL libraries by testing various filename patterns
------------------------------------------------------------------------
r59488 | nagachika | 2017-08-03 22:29:12 +0900 (Thu, 03 Aug 2017) | 8 lines

merge revision(s) 58503: [Backport #13523]

	node.h: sign-extend

	* node.h (nd_line): should sign-extend.  shifting `VALUE` extends
	  with zero bits if `sizeof(VALUE)` equals to `sizeof(int)`.  the
	  zero bits are truncated if `sizeof(VALUE)` is bigger enough.
	  [ruby-core:80920] [Bug #13523]
------------------------------------------------------------------------
r59409 | nagachika | 2017-07-23 17:59:07 +0900 (Sun, 23 Jul 2017) | 9 lines

merge revision(s) 58641: [Backport #13547]

	parse.y: brace after literal arg

	* parse.y (symbol, dsym, parser_set_number_literal, parser_yylex):
	  set state to END too not only ENDARG and after a literal, so
	  that a left brace after it should be a primary block bound to
	  the literal, which causes syntax error.
	  [ruby-core:81037] [Bug #13547]
------------------------------------------------------------------------
r59408 | nagachika | 2017-07-23 17:49:34 +0900 (Sun, 23 Jul 2017) | 11 lines

merge revision(s) 58902: [Backport #13595]

	attempt to fix rb_alloc_tmp_buffer2 for ALLOCV_N

	This is a confusing function to my arithmetic-challenged mind,
	but nobu seems alright with this.  Anyways this lets me use
	large values of elsize without segfaulting, and "make exam"
	passes.

	* include/ruby/ruby.h (rb_alloc_tmp_buffer2): attempt to fix
	  [ruby-core:81388] [ruby-core:81391] [Bug #13595]
------------------------------------------------------------------------
r59407 | nagachika | 2017-07-23 17:39:46 +0900 (Sun, 23 Jul 2017) | 13 lines

merge revision(s) 58077,58229: [Backport #13358]

	ostruct.rb: fix OpenStruct.allocate

	* lib/ostruct.rb (OpenStruct.allocate): initialize an instance
	  variable directly, without calling `intialize` method which may
	  be overridden in a subclass.  [ruby-core:80292] [Bug #13358]
	ostruct.rb: improve fix for OpenStruct.allocate + #respond_to?

	* lib/ostruct.rb (OpenStruct#respond_to_missing?): this makes
	  OpenStruct#respond_to? works on any OpenStruct instance,
	  just like Kernel#respond_to? does, without workarounds.
	  [ruby-core:80292] [Bug #13358]
------------------------------------------------------------------------
r59406 | nagachika | 2017-07-23 17:15:57 +0900 (Sun, 23 Jul 2017) | 12 lines

merge revision(s) 58638,58640: [Backport #11873]

	test_syntax.rb: test_brace_after_local_variable

	* test/ruby/test_syntax.rb (test_brace_after_local_variable):
	  another test using braces.  [Bug #11873]
	parse.y: do after cmdarg in paren

	* parse.y (parser_yylex): set state to ENDARG after a string
	  literal, so that `do` after a literal should be `do_block` and
	  bound to the outer method, as well as a numeric/symbol literal.
	  [ruby-core:72482] [Bug #11873]
------------------------------------------------------------------------
r59405 | nagachika | 2017-07-23 17:05:15 +0900 (Sun, 23 Jul 2017) | 9 lines

merge revision(s) 59307: [Backport #13284]

	a64: fix crash on register stack mark/sweep pass

	* thread_pthread.c: move 'register_stack_start' earlier.
	  [ruby-core:79928] [Bug #13284] [Fix GH-1625]

	Author:    Sergei Trofimovich <slyfox@gentoo.org>

------------------------------------------------------------------------
r59404 | nagachika | 2017-07-23 16:50:10 +0900 (Sun, 23 Jul 2017) | 7 lines

merge revision(s) 57530: [Backport #13191]

	sample/pty/shl.rb: update sample

	* Specify frozen_string_literal: true.
	* Fix TypeError of raise.
	* Use a character literal instead of Integer.
------------------------------------------------------------------------
r59403 | nagachika | 2017-07-23 16:48:31 +0900 (Sun, 23 Jul 2017) | 7 lines

merge revision(s) 59002: [Backport #13621]

	string.c: docs for String#split

	* string.c: [DOC] clarify docs for String#split when called
	  with limit and capture groups.
	  Reported by Cichol Tsai.  [ruby-core:81505] [Bug #13621]
------------------------------------------------------------------------
r59402 | nagachika | 2017-07-23 16:46:05 +0900 (Sun, 23 Jul 2017) | 6 lines

merge revision(s) 57446: [Backport #13413]

	mkmf.rb: fix script installation

	* lib/mkmf.rb (MakeMakefile): fix condition to install script
	  files.
------------------------------------------------------------------------
r59401 | nagachika | 2017-07-23 16:44:56 +0900 (Sun, 23 Jul 2017) | 7 lines

merge revision(s) 59161: [Backport #13672]

	parse.y: check multibyte char

	* parse.y (parser_precise_mbclen): check invalid multibyte char at
	  skipping strings following `?x` literal string, not to stuck in
	  a infinite loop.  [ruby-core:81746] [Bug #13672]
------------------------------------------------------------------------
r59400 | nagachika | 2017-07-23 16:36:10 +0900 (Sun, 23 Jul 2017) | 8 lines

merge revision(s) 59102: [Backport #13515]

	pathname.rb: UNC root pathname needs a separator

	* ext/pathname/lib/pathname.rb (Pathname#plus): UNC root pathname
	  needs a separator.  File.basename returns "/" on UNC root, as
	  well as sole drive letter, even if it does not end with a
	  separator.  [ruby-core:80900] [Bug #13515]
------------------------------------------------------------------------
r59399 | nagachika | 2017-07-23 16:33:07 +0900 (Sun, 23 Jul 2017) | 9 lines

merge revision(s) 59033,59034: [Backport #13636]

	rexml: add close tag check on end of document to StreamParser

	[ruby-core:81593] [Bug #13636]

	Reported by Anton Sivakov. Thanks!!!

	* properties.
------------------------------------------------------------------------
r59398 | nagachika | 2017-07-23 16:30:43 +0900 (Sun, 23 Jul 2017) | 6 lines

merge revision(s) 58693: [Backport #13558]

	array.c: check position to insert

	* array.c (rb_ary_insert): check position to insert even if no
	  elements to be inserted.  [ruby-core:81125] [Bug #13558]
------------------------------------------------------------------------
r59397 | nagachika | 2017-07-23 16:21:04 +0900 (Sun, 23 Jul 2017) | 9 lines

merge revision(s) 58643: [Backport #13231]

	date_core.c: fix docs for %Z format

	* ext/date/date_core.c: [DOC] fix documentation for %Z format
	  of {Date,DateTime}.strftime.

	  Reported by Damon Timm.  Based on a patch by nano.
	  [ruby-core:79602] [Bug #13231] [Fix GH-1565]
------------------------------------------------------------------------
r59396 | nagachika | 2017-07-23 16:20:05 +0900 (Sun, 23 Jul 2017) | 10 lines

merge revision(s) 58552: [Backport #13531]

	rss: Accept empty text element as valid element

	Parser has been accepted it but XML serializer wasn't accepted.

	Reported by stefano frabetti. Thanks!!!

	[ruby-core:80965] [Bug #13531]

------------------------------------------------------------------------
r59395 | nagachika | 2017-07-23 16:02:29 +0900 (Sun, 23 Jul 2017) | 8 lines

merge revision(s) 59080,59082: [Backport #13656]

	proc.c: skip prepended modules

	* proc.c (method_super_method): skip prepended modules and
	  continue from the super class of the original class.
	  [ruby-core:81666] [Bug #13656]
	test/ruby/test_method.rb: refined  [ruby-core:81666] [Bug #13656]
------------------------------------------------------------------------
r59363 | nagachika | 2017-07-18 21:42:38 +0900 (Tue, 18 Jul 2017) | 9 lines

merge revision(s) 59056: [Backport #13648] [Backport #13699]

	enumerator.c: fix nested maps

	* enumerator.c (lazy_map_proc, lazy_grep_iter_proc): marks values
	  returned by blocks are not packed in the case of nested maps, so
	  that the result will be same as non-lazy version.  based on the
	  patch by akihikodaki (Akihiko Odaki) at [ruby-core:81638],
	  without GCC extension.  [Bug#13648]
------------------------------------------------------------------------
r59316 | nagachika | 2017-07-12 23:06:21 +0900 (Wed, 12 Jul 2017) | 6 lines

merge revision(s) 59312: [Backport #13739]

	optparse.rb: get rid of eval

	* lib/optparse.rb: try Float() and Integer() instead of eval,
	  which does too much things.
------------------------------------------------------------------------
r59303 | nagachika | 2017-07-10 05:46:10 +0900 (Mon, 10 Jul 2017) | 28 lines

merge revision(s) 58696: [Backport #11384]

	autoload: always wait on loading thread

	We cannot assume autoload_provided/rb_feature_provided returning
	TRUE means it is safe to proceed without waiting.  Another
	thread may call rb_provide_feature before setting the constant
	(via autoload_const_set).  So we must wait until autoload is
	completed by another thread.

	Note: this patch was tested with an explicit rb_thread_schedule
	in rb_provide_feature to make the race condition more apparent
	as suggested by <s.wanabe@gmail.com>:
	> --- a/load.c
	> +++ b/load.c
	> @@ -563,6 +563,7 @@ rb_provide_feature(VALUE feature)
	>      rb_str_freeze(feature);
	>
	>      rb_ary_push(features, rb_fstring(feature));
	> +rb_thread_schedule();
	>      features_index_add(feature, INT2FIX(RARRAY_LEN(features)-1));
	>      reset_loaded_features_snapshot();
	>  }

	* variable.c (check_autoload_required): do not assume a provided
	  feature means autoload is complete, always wait if autoload is
	  being performed by another thread.
	  [ruby-core:81105] [Bug #11384] Thanks to <s.wanabe@gmail.com>
------------------------------------------------------------------------
r59302 | nagachika | 2017-07-10 05:24:02 +0900 (Mon, 10 Jul 2017) | 13 lines

merge revision(s) 56558,59116,59136: [Backport #12670]

	* gc.c (heap_page_resurrect): do not return tomb_pages when
	  page->freelist == NULL.
	  [Bug #12670]

	test for [Bug #12670]

	heap corruption by deferred free.
	gc.c: expand sorted pages

	* gc.c (heap_page_allocate): expand sorted pages before inserting
	  allocated new page.  [Bug #12670]
------------------------------------------------------------------------
r59301 | nagachika | 2017-07-10 05:06:31 +0900 (Mon, 10 Jul 2017) | 10 lines

merge revision(s) 58825,58826: [Backport #5339]

	erb.rb: Allow explicit trimming carriage return

	when trim_mode is "-", for Windows environments.

	[ruby-core:39625] [Bug #5339]
	erb.rb: Allow trimming CR in all trim_modes

	to unify a behavior with r58823 and r58825.
------------------------------------------------------------------------
r59300 | nagachika | 2017-07-10 05:04:25 +0900 (Mon, 10 Jul 2017) | 7 lines

merge revision(s) 58823: [Backport #11464]

	erb.rb: Allow trimming carriage return

	when trim_mode is "<>", for Windows environments.

	[Bug #11464]
------------------------------------------------------------------------
r59299 | nagachika | 2017-07-10 05:02:04 +0900 (Mon, 10 Jul 2017) | 6 lines

merge revision(s) 58210: [Backport #8916]

	vsnprintf.c: prefix with precision

	* vsnprintf.c (BSD_vfprintf): sign and hex-prefix should not be
	  counted in precision.  [ruby-dev:47714] [Bug #8916]
------------------------------------------------------------------------
r59298 | nagachika | 2017-07-10 04:51:43 +0900 (Mon, 10 Jul 2017) | 5 lines

merge revision(s) 58796: [Backport #13545]

	Merge latest dtoa.c [Bug #13545]

	Apply some part of http://www.netlib.org/fp/dtoa.c with my eyes...
------------------------------------------------------------------------
r59297 | nagachika | 2017-07-10 04:49:03 +0900 (Mon, 10 Jul 2017) | 22 lines

merge revision(s) 58334,58346,58349: [Backport #13425] [Backport #13432]

	thread.c: disable VM events when stack overflow

	* thread.c (ruby_thread_stack_overflow): disable VM events when
	  stack overflow occurred; it causes another stack overflow again
	  in making backtrace object, and crashes.
	  [ruby-core:80662] [Bug #13425]
	increase timeout seconds.

	* test/ruby/test_trace.rb (test_trace_stackoverflow): on some platforms
	  this test fails because of timeout.

	disable rewind hooks.

	* vm.c (hook_before_rewind): skip rewind hooks if err is SystemStackError
	  because rewind hooks can cause stack overflow again and again.

	* thread.c (ruby_thread_stack_overflow): do not disable all hooks.
	  Additionally, clearing ruby_vm_event_flags is not suitable way
	  to disable hooks.

------------------------------------------------------------------------
r59296 | nagachika | 2017-07-10 04:47:28 +0900 (Mon, 10 Jul 2017) | 18 lines

merge revision(s) 58262,5826: [Backport #13369]

	fix TracePoint#return_value with non-local exits

	* vm.c: get return_value from imemo_throw_data object (THROW_DATA_VAL()).
	  imemo_throw_data (TAG_BREAK) contains returned value.
	  However, imemo_throw_data (TAG_BREAK) can skip several frames so that
	  we need to use it only once (at most internal frame). To record it,
	  we introduced THROW_DATA_CONSUMED and check it.

	* internal.h: define THROW_DATA_CONSUMED flag.

	* test/ruby/test_settracefunc.rb: add tests for [Bug #13369]

	* vm_insnhelper.h: add THROW_DATA_CONSUMED_P() and
	  THROW_DATA_CONSUMED_SET().
	  unless File::FNM_DOTMATCH is set. (like '*/') [ruby-dev:23014]

------------------------------------------------------------------------
r59295 | nagachika | 2017-07-10 04:36:49 +0900 (Mon, 10 Jul 2017) | 13 lines

merge revision(s) 59030,59031: [Backport #13638]

	thread.c: avoid busy looping on rb_thread_fd_close

	We no longer use it this function, but extensions do, and
	we need to ensure it continues to work for them.

	* thread.c (rb_thread_fd_close): schedule other threads in loop
	* ext/-test-/thread_fd_close/thread_fd_close.c: new file
	* ext/-test-/thread_fd_close/depend: ditto
	* ext/-test-/thread_fd_close/extconf.rb: ditto
	* test/-ext-/thread_fd_close/test_thread_fd_close.rb: new test
	* properties.
------------------------------------------------------------------------
r59294 | nagachika | 2017-07-10 04:27:57 +0900 (Mon, 10 Jul 2017) | 6 lines

merge revision(s) 57248: [Backport #13573]

	 dir.c: getattrlist on OSX 10.5

	* dir.c (is_case_sensitive): use getattrlist() if fgetattrlist()
	  is unavailable, on OSX 10.5.  [ruby-core:68829] [Bug #11054]
------------------------------------------------------------------------
r59293 | nagachika | 2017-07-10 04:02:35 +0900 (Mon, 10 Jul 2017) | 7 lines

merge revision(s) 58658: [Backport #13554]

	process.c: temporary string for buffer

	* process.c (obj2uid, obj2gid): use temporary string as the buffer
	  instead of `rb_alloc_tmp_buffer`, which is `NODE_ALLOCA` since
	  r51492.  [ruby-core:81084] [Bug #13554]
------------------------------------------------------------------------
r59286 | nagachika | 2017-07-08 11:21:36 +0900 (Sat, 08 Jul 2017) | 55 lines

merge revision(s) 58284,58812,59028: [Backport #13632]

	vm_core.h: ruby_error_stream_closed

	* vm_core.h (ruby_special_exceptions): renamed
	  ruby_error_closed_stream as ruby_error_stream_closed, like the
	  message.
	speed up IO#close with many threads

	Today, it increases IO#close performance with many threads:

	  Execution time (sec)
	  name            trunk   after
	  vm_thread_close 4.276   3.018

	  Speedup ratio: compare with the result of `trunk' (greater is better)
	  name            after
	  vm_thread_close 1.417

	This speedup comes because rb_notify_fd_close only scans threads
	inside rb_thread_io_blocking_region, not all threads in the VM.

	In the future, this type data structure may allow us to notify
	waiters of multiple FDs on a single thread (when using
	Fibers).

	* thread.c (struct waiting_fd): declare
	  (rb_thread_io_blocking_region): use on-stack list waiter
	  (rb_notify_fd_close): walk vm->waiting_fds instead
	  (call_without_gvl): remove old field setting
	  (th_init): ditto
	* vm_core.h (typedef struct rb_vm_struct): add waiting_fds list
	* (typedef struct rb_thread_struct): remove waiting_fd field
	  (rb_vm_living_threads_init): initialize waiting_fds list

	I am now kicking myself for not thinking about this 3 years ago
	when I introduced ccan/list in [Feature #9632] to optimize this
	same function :<
	IO#close: do not enqueue redundant interrupts (take #2)

	Enqueuing multiple errors for one event causes spurious errors
	down the line, as reported by Nikolay Vashchenko in
	https://bugs.ruby-lang.org/issues/13632

	This should fix bad interactions with test_race_gets_and_close
	in test/ruby/test_io.rb since we ensure rb_notify_fd_close
	continues returning the busy flag after enqueuing the interrupt.

	Backporting changes to 2.4 and earlier releases will be more
	challenging...

	* thread.c (rb_notify_fd_close): do not enqueue multiple interrupts
	  [ruby-core:81581] [Bug #13632]
	* test/ruby/test_io.rb (test_single_exception_on_close):
	  new test based on script from Nikolay
------------------------------------------------------------------------
r59247 | nagachika | 2017-07-01 20:51:13 +0900 (Sat, 01 Jul 2017) | 13 lines

merge revision(s) 58545,58584: [Backport #13536]

	ripper/lexer.rb: nested indented heredoc

	* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): fix for
	  nested indedented here documents, where `Elem`s are nested too.
	  [ruby-core:80977] [Bug #13536]
	ripper/lexer.rb: nested indented heredoc

	* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): insert
	  stripped leading spaces as `on_ignored_sp` elements, so that the
	  original source can be reconsructed.
	  [ruby-core:80977] [Bug #13536]
------------------------------------------------------------------------
r58637 | nagachika | 2017-05-10 00:42:52 +0900 (Wed, 10 May 2017) | 13 lines

merge revision(s) 58587,58588: [Backport #13526]

	variable.c: cleanup waitq upon thread death

	* variable.c (autoload_reset): use idempotent list_del_init
	  (autoload_sleep): moved code from rb_autoload_load
	  (autoload_sleep_done): cleanup for use with rb_ensure
	  (rb_autoload_load): ensure list delete happens in case the
	  thread dies during sleep
	* test/ruby/bug-13526.rb: new script for separate execution
	* test/ruby/test_autoload.rb (test_bug_13526): new test
	  [ruby-core:81016] [Bug #13526]
	* properties.
------------------------------------------------------------------------
r58636 | nagachika | 2017-05-10 00:30:19 +0900 (Wed, 10 May 2017) | 11 lines

merge revision(s) 58359: [Backport #13439]

	fix RSTRUCT_LEN macro in public C API

	rb_struct_size returns an Integer VALUE, so it must be converted
	to a `long` for compatibility with previous Ruby C API versions.

	* ext/-test-/struct/len.c: new
	* test/-ext-/struct/test_len.rb: new
	* include/ruby/ruby.h (RSTRUCT_LEN): use NUM2LONG
	  [ruby-core:80692] [Bug #13439]
------------------------------------------------------------------------
r58635 | nagachika | 2017-05-10 00:24:13 +0900 (Wed, 10 May 2017) | 7 lines

merge revision(s) 58211: [Backport #13387]

	string.c: Supress logical-op-parentheses warning

	* string.c(rb_str_upcase_bang): Supress logical-op-parentheses warning
	  Patch by Fukuo Kadota <fukuo-kadota@cookpad.com>,
	  Closes [GH-1570] [Bug #13387].
------------------------------------------------------------------------
r58634 | nagachika | 2017-05-10 00:13:55 +0900 (Wed, 10 May 2017) | 7 lines

merge revision(s) 58398: [Backport #13444]

	compile.c: wrong optimization

	* compile.c (compile_branch_condition): expression which has side
	  effects should not be eliminated.
	  [ruby-core:80740] [Bug #13444]
------------------------------------------------------------------------
r58633 | svn | 2017-05-10 00:06:00 +0900 (Wed, 10 May 2017) | 1 line

* 2017-05-10
------------------------------------------------------------------------
r58632 | nagachika | 2017-05-10 00:05:59 +0900 (Wed, 10 May 2017) | 11 lines

merge revision(s) 58082,58083: [Backport #13236]

	class.c: ensure_includable

	* class.c (ensure_includable): extract checks to include and
	  prepend.
	class.c: prohibit refinement module

	* class.c (ensure_includable): cannot include refinement
	  module, or the type and the class do not match.
	  [ruby-core:79632] [Bug #13236]
------------------------------------------------------------------------
r58631 | nagachika | 2017-05-09 23:56:38 +0900 (Tue, 09 May 2017) | 8 lines

merge revision(s) 57640: [Backport #13214]

	fileutils.rb: do not make root

	* lib/fileutils.rb (FileUtils#mkdir_p): no need to make root
	  directory which should be exist and cannot be made with mkdir
	  recent Cygwin can make a directory contains a colon.
	  [Bug #13214]
------------------------------------------------------------------------
r58630 | nagachika | 2017-05-09 23:55:29 +0900 (Tue, 09 May 2017) | 13 lines

merge revision(s) 57265,57266: [Backport #13081]

	win32/resolv.rb: ad hoc workaround

	* ext/win32/lib/win32/resolv.rb (Win32::Resolv::SZ): an ad hoc
	  workaround for broken registry.  SearchList and other registry
	  values must be REG_SZ, or Windows ignores anything in those
	  values otherwise.  [ruby-dev:49924] [Bug #13081]
	  https://github.com/rubygems/rubygems/issues/1700
	win32/registry.rb: registry type names

	* ext/win32/lib/win32/registry.rb (Win32::Registry#read): show
	  registry type names instead of numeric values.
------------------------------------------------------------------------
r58629 | nagachika | 2017-05-09 23:53:44 +0900 (Tue, 09 May 2017) | 6 lines

merge revision(s) 58037: [Backport #10944]

	docs for creating arrays

	* array.c: [DOC] add example for Array.new with block and index.
	  Reported by Don Cruickshank.  [ruby-core:68442] [Bug #10944]
------------------------------------------------------------------------
r58628 | nagachika | 2017-05-09 23:51:48 +0900 (Tue, 09 May 2017) | 12 lines

merge revision(s) 58008: [Backport #9294]

	io.c: improve docs

	* io.c: [DOC] improve and harmonize docs for IO#read and ARGF#read;
	  fix invalid example code for IO#read to make it syntax highlighted.

	* io.c: [DOC] various improvements for docs of IO, ARGF, and Kernel:
	  fix indent to ensure correct code block detection; sync "outbuf"
	  paragraph for {IO,ARGF}#read, {IO,ARGF}#readpartial, and IO#sysread;
	  fix formatting of call-seq's; improve Kernel#open example to use nil?;
	  fix RDoc markup and typos.
------------------------------------------------------------------------
r58627 | nagachika | 2017-05-09 23:50:45 +0900 (Tue, 09 May 2017) | 7 lines

merge revision(s) 57490: [Backport #13175]

	configure.in: use AC_SEARCH_LIBS

	* configure.in (--with-gmp, --with-jemalloc): use AC_SEARCH_LIBS
	  to check if no library is required, instead of AC_CHECK_LIB.
	  [ruby-core:79368] [Bug #13175]
------------------------------------------------------------------------
r58626 | nagachika | 2017-05-09 23:48:49 +0900 (Tue, 09 May 2017) | 6 lines

merge revision(s) 57180: [Backport #13247]

	memory_status.c: support old Mac OS

	* ext/-test-/memory_status/memory_status.c (read_status): use
	  TASK_BASIC_INFO instead of MACH_TASK_BASIC_INFO on old Mac OS.
------------------------------------------------------------------------
r58625 | nagachika | 2017-05-09 23:46:24 +0900 (Tue, 09 May 2017) | 11 lines

merge revision(s) 58453,58454: [Backport #13499]

	Fix space flag when Inf/NaN and width==3

	* sprintf.c (rb_str_format): while `"% 2f"` and `"% 4f"` result in
	  `" Inf"` and `" Inf"` respectively, `"% 3f"` results in
	  `"Inf"` (no space).
	Refactor "%f" % Inf/NaN

	* sprintf.c (rb_str_format): as for non-finite float, calculate
	  the exact needed size with the space flag.
------------------------------------------------------------------------
r58624 | nagachika | 2017-05-09 23:28:21 +0900 (Tue, 09 May 2017) | 6 lines

merge revision(s) 57359: [Backport #13442]

	uri/generic.rb: fix exception on non-IP format

	* lib/uri/generic.rb (URI::Generic#find_proxy): match IP address
	  no_proxy against resolved self IP address.  [Fix GH-1513]
------------------------------------------------------------------------
r58623 | nagachika | 2017-05-09 23:24:20 +0900 (Tue, 09 May 2017) | 11 lines

merge revision(s) 58370,58382: [Backport #13530]

	thread_win32.c: no GVL for interrupt_event

	* thread_win32.c (w32_wait_events): do not acquire GVL, to fix
	  deadlock at read/close race condition.  instead, just ignore
	  interrupt_event if it is closed.
	thread_win32.c: fix index

	* thread_win32.c (w32_wait_events): fix wait object index in the
	  case of interrupt_event is not usable.
------------------------------------------------------------------------
r58622 | nagachika | 2017-05-09 23:21:37 +0900 (Tue, 09 May 2017) | 6 lines

merge revision(s) 58534: [Backport #13533]

	nogvl_wait_for_single_fd must wait as its name

	poll(fds, n, 0) mean no timeout and immediately return. If you want to
	wait something, you need to use -1 instead.
------------------------------------------------------------------------
r58620 | nagachika | 2017-05-09 23:11:14 +0900 (Tue, 09 May 2017) | 19 lines

merge revision(s) 57531,57532,57533,57537: [Backport #13191]

	pty/shl.rb: update [ci skip]

	* sample/pty/shl.rb: stop writer loop when the child exited.
	  PTY::ChildExited no longer raises asynchronously since r20298.
	  [ruby-dev:49974] [Bug #13191]
	pty/shl.rb: update [ci skip]

	* sample/pty/shl.rb: use io/console instead of stty.
	  [ruby-dev:49974] [Bug #13191]
	pty/shl.rb: update [ci skip]

	* sample/pty/shl.rb: do not manage array length separately.
	  [ruby-dev:49974] [Bug #13191]
	pty/shl.rb: update [ci skip]

	* sample/pty/shl.rb: leap exited child process.
	  [ruby-dev:49974] [Bug #13191]
------------------------------------------------------------------------
r58619 | nagachika | 2017-05-09 23:09:44 +0900 (Tue, 09 May 2017) | 6 lines

merge revision(s) 58084: [Backport #13361]

	configure.in: syscall is deprecated on macOS

	* configure.in: syscall is no longer supported on macOS since
	  10.12.  [ruby-core:80300] [Bug #13361]
------------------------------------------------------------------------
r58445 | nagachika | 2017-04-22 16:29:01 +0900 (Sat, 22 Apr 2017) | 7 lines

merge revision(s) 58323,58324:

	Merge json-2.0.4.

	  * https://github.com/flori/json/releases/tag/v2.0.4
	  * https://github.com/flori/json/blob/09fabeb03e73ed88dc8ce8f19d76ac59e51dae20/CHANGES.md#2017-03-23-204
	Use `assert_raise` instead of `assert_raises`.
------------------------------------------------------------------------
r58444 | nagachika | 2017-04-22 16:20:22 +0900 (Sat, 22 Apr 2017) | 1 line

bump teeny version to 2.4.2
------------------------------------------------------------------------
r58079 | naruse | 2017-03-24 23:06:24 +0900 (Fri, 24 Mar 2017) | 3 lines

merge revision(s) 58078:

	export_changelog must specify the branch's url
------------------------------------------------------------------------
r58052 | naruse | 2017-03-22 14:54:22 +0900 (Wed, 22 Mar 2017) | 11 lines

merge revision(s) 58040,58041:

	stringio.c: check character code

	* ext/stringio/stringio.c (strio_ungetc): check if the character
	  code is valid in the encoding.  reported by Ahmad Sherif
	  (ahmadsherif) at https://hackerone.com/reports/209593.
	stringio.c: check range

	* ext/stringio/stringio.c (strio_ungetc): raise RangeError instead
	  of TypeError at too big value, as well as IO#ungetc.
------------------------------------------------------------------------
r58047 | naruse | 2017-03-22 01:22:21 +0900 (Wed, 22 Mar 2017) | 2 lines

Bump up version to 2.4.1

------------------------------------------------------------------------
r58046 | naruse | 2017-03-21 23:11:42 +0900 (Tue, 21 Mar 2017) | 8 lines

merge revision(s) 58042: [Backport #13339]

	string.c: use the usable size

	* string.c (rb_str_change_terminator_length): when called after
	  the content has been copied, old terminator length no longer
	  makes sense.  use the whole usable size instead of capacity
	  without terminator.  [ruby-core:80257] [Bug #13339]
------------------------------------------------------------------------
r58045 | naruse | 2017-03-21 23:04:23 +0900 (Tue, 21 Mar 2017) | 20 lines

merge revision(s) 57192,57464,58016,58018,58019: [Backport #12705]

	[Bug #12705]
	add a ticket number.

	test_lambda.rb: refine test

	* test/ruby/test_lambda.rb (test_lambda_as_iterator): refine a
	  test for the intention of the original report.
	  [ruby-core:61340] [Bug #9605]
	test_lambda.rb: remove duplcate tests
	vm_args.c: arity check of lambda

	* vm_eval.c (rb_yield_lambda): new function which yields an array
	  to a proc and splat to a lambda.  mainly for Enumerable only.

	* vm_args.c (setup_parameters_complex): remove special lambda
	  splatting for [Bug #9605].  [ruby-core:77065] [Bug #12705]

	* vm_insnhelper.c (vm_callee_setup_block_arg): ditto.
------------------------------------------------------------------------
r58022 | naruse | 2017-03-19 23:29:22 +0900 (Sun, 19 Mar 2017) | 6 lines

merge revision(s) 58015: [Backport #13325]

	vm_args.c: pass block

	* vm_args.c (refine_sym_proc_call): pass block to the method when
	  using refinements.  [ruby-core:80219] [Bug #13325]
------------------------------------------------------------------------
r58013 | naruse | 2017-03-18 21:02:27 +0900 (Sat, 18 Mar 2017) | 7 lines

merge revision(s) 57972: [Backport #13198]

	Fix bug of Tempfile#size if nothing is written [Bug #13198]

	* lib/tempfile.rb (Tempfile#size): Fix its behavior when nothing
	  is written. Tempfile#size should return 0 in this case.
	  The patch is from nobu <nobu@ruby-lang.org>.
------------------------------------------------------------------------
r58003 | naruse | 2017-03-17 16:06:50 +0900 (Fri, 17 Mar 2017) | 17 lines

merge revision(s) 57968,57969,57970: [Backport #13313]

	thread.c: thread_do_start

	* thread.c (thread_do_start): extract from a macro in
	  thread_start_func_2 for debugger.
	thread.c: Thread.start with Symbol

	* thread.c (thread_do_start): fix segfault at start with Symbol.
	  proc created by Symbol#to_proc does not have environment unless
	  using refinements.  [ruby-core:80147] [Bug #13313]
	Fiber also has same issue. [Bug #13313]

	* thread.c (rb_vm_proc_local_ep): added.

	* cont.c (rb_fiber_start): use rb_vm_proc_local_ep().

------------------------------------------------------------------------
r58002 | naruse | 2017-03-17 13:44:13 +0900 (Fri, 17 Mar 2017) | 6 lines

merge revision(s) 57956:

	Raise error if spec is nil

	With parallel test-all, the spec is sometimes nil.
	To debug it raise more detailed error.
------------------------------------------------------------------------
r58001 | naruse | 2017-03-17 13:36:49 +0900 (Fri, 17 Mar 2017) | 13 lines

merge revision(s) 57523,57998: [Backport #13322]

	test_gem.rb: exclude default gems

	* test/rubygems/test_gem.rb: check difference to exclude default
	  gems from the expected results.  [Feature #13186]
	Merge rubygems-2.6.11

	  This version fixed regression of rubygems-2.6.10.
	  https://github.com/rubygems/rubygems/pull/1856

	  See details of changelogs for 2.6.11 release:
	  https://github.com/rubygems/rubygems/blob/adfcf40502716080bd9cdfdd2e43bd4296872784/History.txt#L3
------------------------------------------------------------------------
r57959 | naruse | 2017-03-13 18:28:35 +0900 (Mon, 13 Mar 2017) | 10 lines

merge revision(s) 57948,57950: [Backport #13304]

	thread.c: rb_thread_fd_close [ci skip]

	* thread.c (rb_thread_fd_close): re-define only for abi-check,
	  abort if called.  [ruby-core:80078] [Bug #13304]
	thread.c: rb_thread_fd_close [ci skip]

	* thread.c (rb_thread_fd_close): remove deprecated. a couple of
	  external libraries used it.  [ruby-core:80078] [Bug #13304]
------------------------------------------------------------------------
r57957 | naruse | 2017-03-13 18:05:46 +0900 (Mon, 13 Mar 2017) | 6 lines

merge revision(s) 57603: [Backport #12997]

	Merge Onigmo 6.1.1

	* Support absent operator https://github.com/k-takata/Onigmo/issues/82
	* https://github.com/k-takata/Onigmo/blob/Onigmo-6.1.1/HISTORY
------------------------------------------------------------------------
r57954 | naruse | 2017-03-13 16:30:30 +0900 (Mon, 13 Mar 2017) | 33 lines

merge revision(s) 57410,57619,57621,57631,57634: [Backport #13150]

	Prevent GC by volatile [Bug #13150]

	test/ruby/test_marshal.rb test_context_switch (load) and test_gc (dump)
	are failed on FreeBSD 10.3 and gcc7 (FreeBSD Ports Collection) 7.0.0
	20170115 (experimental); RB_GC_GUARD looks not worked well.
	ruby.h: RB_GC_GUARD stronger than gcc7

	* include/ruby/ruby.h (RB_GC_GUARD): prevent guarded pointer from
	  optimization by using as an input to inline asm.
	ruby.h: remove comment

	* include/ruby/ruby.h (RB_GC_GUARD): remove comment unsupported by
	  Solaris AS.
	marshal.c: use hidden objects to allow recycling

	Hidden objects (klass == 0) are not visible to Ruby code invoked
	from other threads or signal handlers, so they can never be
	accessed from other contexts.  This makes it safe to call
	rb_gc_force_recycle on the object slot after releasing malloc
	memory.

	* marshal.c (rb_marshal_dump_limited): hide dump_arg and recycle when done
	  (rb_marshal_load_with_proc): hide load_arg and recycle when done
	  [ruby-core:79518]
	marshal.c: revert r57631 partially

	* marshal.c (rb_marshal_dump_limited): do not free dump_arg, which
	  may be dereferenced in check_dump_arg due to continuation, and
	  get rid of dangling pointers.

	* marshal.c (rb_marshal_load_with_proc): ditto for load_arg.
------------------------------------------------------------------------
r57953 | naruse | 2017-03-13 16:03:32 +0900 (Mon, 13 Mar 2017) | 10 lines

merge revision(s) 57269,57277:

	bignum.c: fix rb_cstr_parse_inum endp

	* bignum.c (rb_cstr_parse_inum): stores the address of the first
	  invalid character when str is too big or contains an underscore.
	bignum.c: unnecessary check

	* bignum.c (rb_cstr_parse_inum): remove unnecessary check.
	  successive sign is rejected by conv_digit.
------------------------------------------------------------------------
r57952 | naruse | 2017-03-13 15:58:19 +0900 (Mon, 13 Mar 2017) | 6 lines

merge revision(s) 57412: [Backport #13308]

	Update Rubygems 2.6.10

	 * https://github.com/rubygems/rubygems/commit/2ee5bf9fd3bd7649d3e244bc40107ff32070ef47
	 * https://github.com/rubygems/rubygems/commit/be510dd4097e65c6a256a6e173d6b724a3a96472
------------------------------------------------------------------------
r57945 | naruse | 2017-03-13 03:41:38 +0900 (Mon, 13 Mar 2017) | 8 lines

merge revision(s) 57767,57943: [Backport #10403]

	io.c: documentation for puts

	* io.c: [DOC] clarify that the 'record separator' between
	  arguments passed to 'puts' is always a newline.
	  Based on a patch by Mark Amery. [ruby-core:65801] [Misc #10403]
	* 2017-03-13
------------------------------------------------------------------------
r57941 | naruse | 2017-03-13 03:15:33 +0900 (Mon, 13 Mar 2017) | 66 lines

merge revision(s) 57469,57471,57472,57503,57508: [Backport #13299]

	io.c: recycle garbage on write

	* string.c (STR_IS_SHARED_M): new flag to mark shared mulitple times
	  (STR_SET_SHARED): set STR_IS_SHARED_M
	  (rb_str_tmp_frozen_acquire, rb_str_tmp_frozen_release): new functions
	  (str_new_frozen): set/unset STR_IS_SHARED_M as appropriate
	* internal.h: declare new functions
	* io.c (fwrite_arg, fwrite_do, fwrite_end): new
	  (io_fwrite): use new functions

	Introduce rb_str_tmp_frozen_acquire and rb_str_tmp_frozen_release
	to manage a hidden, frozen string.  Reuse one bit of the embed
	length for shared strings as STR_IS_SHARED_M to indicate a string
	has been shared multiple times.  In the common case, the string
	is only shared once so the object slot can be reclaimed immediately.

	minimum results in each 3 measurements. (time and size)

	Execution time (sec)
	name                            trunk   built
	io_copy_stream_write            0.682   0.254
	io_copy_stream_write_socket     1.225   0.751

	Speedup ratio: compare with the result of `trunk' (greater is better)
	name    built
	io_copy_stream_write            2.680
	io_copy_stream_write_socket     1.630

	Memory usage (last size) (B)
	name                            trunk           built
	io_copy_stream_write            95436800.000    6512640.000
	io_copy_stream_write_socket     117628928.000   7127040.000

	Memory consuming ratio (size) with the result of `trunk' (greater is better)
	name    built
	io_copy_stream_write            14.654
	io_copy_stream_write_socket     16.505
	string.c (rb_str_tmp_frozen_release): release embedded strings

	Handle the embedded case first, since we may have an embedded
	duplicate and non-embedded original string.

	* string.c (rb_str_tmp_frozen_release): handled embedded strings
	* test/ruby/test_io.rb (test_write_no_garbage): new test
	  [ruby-core:78898] [Bug #13085]
	io.c (rb_io_syswrite): avoid leaving garbage after write

	As with IO#write, IO#syswrite also generates garbage which can
	be harmful in hand-coded read-write loops.

	* io.c (swrite_arg, swrite_do, swrite_end): new
	  (rb_io_syswrite): use new functions to cleanup garbage
	  [ruby-core:78898] [Bug #13085]
	Add class name to assert messages
	io.c: remove rb_ensure usage for rb_str_tmp_frozen_* calls

	Using rb_ensure pessimizes the common case and makes the code
	more difficult to read and follow.  If we hit an exceptions
	during write, just let the GC handle cleanup as the exception
	is already bad for garbage.

	* io.c (io_fwrite): call rb_str_tmp_frozen{acquire,release} directly
	  (rb_io_syswrite): ditto
	  (fwrite_do, fwrite_end, swrite_do, swrite_end): remove
------------------------------------------------------------------------
r57940 | naruse | 2017-03-13 03:01:40 +0900 (Mon, 13 Mar 2017) | 11 lines

merge revision(s) 57811: [Backport #9829]

	docs for FileUtils.ln methods

	* lib/fileutils.rb: [DOC] add clarifying call-seq's for FileUtil.ln,
	  ln_s, and ln_sf, with better argument names for the created link and
	  link target.  Reported by Mike Vastola. [ruby-core:62532] [Bug #9829]

	* lib/fileutils.rb: [DOC] further improve descriptions of FileUtils.ln
	  and related methods; improve examples: relative links probably won't
	  work in other dir, avoid `include', use more generic homedir name.
------------------------------------------------------------------------
r57939 | naruse | 2017-03-13 03:01:22 +0900 (Mon, 13 Mar 2017) | 11 lines

merge revision(s) 57415,57463,57474:

	eval.c: copy special exception

	* eval.c (setup_exception): make unfrozen copy of special
	  exception before setting up a cause.
	reduce iterations for slower machines
	test_io.rb: separate a test

	* test/ruby/test_io.rb (test_closed_stream_in_rescue): run in a
	  separated process.
------------------------------------------------------------------------
r57938 | naruse | 2017-03-13 02:51:21 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57427: [Backport #13030]

	skip T_IMEMO for VMDEBUG

	* vm_dump.c (vm_stack_dump_each): skip T_IMEMO object to display
	  for VMDEBUG=3. [Bug #13030]

------------------------------------------------------------------------
r57937 | naruse | 2017-03-13 02:26:03 +0900 (Mon, 13 Mar 2017) | 5 lines

merge revision(s) 57809: [Backport #13291]

	fix paren

	* string.c (str_byte_substr): fix misplaced parenthesis at r56155.
------------------------------------------------------------------------
r57936 | naruse | 2017-03-13 02:23:03 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57741: [Backport #13254]

	disable critical-error-handler

	* win32/win32.c (rb_w32_sysinit): disable critical-error-handler
	  message box even on mswin, regardless of runtime DLL version.
	  [ruby-dev:49988] [Bug #13254]
------------------------------------------------------------------------
r57935 | naruse | 2017-03-13 02:22:20 +0900 (Mon, 13 Mar 2017) | 15 lines

merge revision(s) 57816,57817: [Backport #13292]

	fix UTF-32 valid_encoding?

	* enc/utf_32be.c (utf32be_mbc_enc_len): check arguments precisely.
	  [ruby-core:79966] [Bug #13292]

	* enc/utf_32le.c (utf32le_mbc_enc_len): ditto.

	* regenc.h (UNICODE_VALID_CODEPOINT_P): predicate for valid
	  Unicode codepoints.
	fix UTF-32 valid_encoding?

	* test/ruby/test_io_m17n.rb (TestIO_M17N#test_puts_widechar): do
	  not use invalid codepoint.  [ruby-core:79966] [Bug #13292]
------------------------------------------------------------------------
r57934 | naruse | 2017-03-13 02:14:38 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57801: [Backport #13287]

	parse.y: remove trace

	* parse.y (reg_named_capture_assign_iter): do not insert trace
	  instructions before local variable assinments.  putobject is
	  expected at first.  [ruby-core:79940] [Bug #13287]
------------------------------------------------------------------------
r57933 | naruse | 2017-03-13 02:10:14 +0900 (Mon, 13 Mar 2017) | 6 lines

merge revision(s) 57802:

	string.c: [DOC] Fix a typo in String#dump

	[Fix GH-1531][ci skip]
	Author:    Alex Semyonov <alex@semyonov.us>
------------------------------------------------------------------------
r57932 | naruse | 2017-03-13 02:10:01 +0900 (Mon, 13 Mar 2017) | 2 lines

RbConfig::Limits is Ruby 2.5 feature

------------------------------------------------------------------------
r57931 | naruse | 2017-03-13 01:51:47 +0900 (Mon, 13 Mar 2017) | 17 lines

merge revision(s) 57797,57799,57800: [Backport #13289]

	string.c: fix integer overflow

	* string.c (rb_str_subpos): fix integer overflow which can happen
	  only when SHARABLE_MIDDLE_SUBSTRING is enabled.  incorpolate
	  https://github.com/mruby/mruby/commit/7db0786abdd243ba031e24683f
	string.c: fix integer overflow

	* string.c (str_byte_substr): fix another integer overflow which
	  can happen only when SHARABLE_MIDDLE_SUBSTRING is enabled.
	  [ruby-core:79951] [Bug #13289]

	string.c: negation of LONG_MIN

	* string.c (rb_str_update): do not use negation of LONG_MIN, which
	  is negative too.
------------------------------------------------------------------------
r57930 | naruse | 2017-03-13 01:31:18 +0900 (Mon, 13 Mar 2017) | 11 lines

merge revision(s) 57781:

	docs for IO.{write,read}

	* io.c: [DOC] improve docs for IO
	  * IO.{write,read}: fix errors (:open_args is not an array of
	    strings, it might include a perm or options hash argument;
	    IO.write has no length argument, drop corresponding statement),
	    improve formatting, call-seq, grammar.
	  * IO#sync=: remove unnecessary "produces no output".
	  * other improvements.
------------------------------------------------------------------------
r57929 | naruse | 2017-03-13 01:30:08 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57780: [Backport #12975]

	docs for IO#print

	* io.c: [DOC] split documentation for IO#print into smaller paragraphs,
	  delete duplicate sentence, fix call-seq.
	  Based on a patch by Dario Daic. [ruby-core:78291] [Bug #12975]
------------------------------------------------------------------------
r57928 | naruse | 2017-03-13 01:29:47 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57778,57779:

	string.c: [DOC] fix doc formatting for String#==, #===
	math.c: more accuracy

	* math.c (math_log10): calculate log10(2) for more accuracy.
	  [ruby-core:79907] [Bug #13279]
------------------------------------------------------------------------
r57927 | naruse | 2017-03-13 01:29:12 +0900 (Mon, 13 Mar 2017) | 6 lines

merge revision(s) 57777:

	rdoc for String class

	* lib/unicode_normalize.rb: [DOC] prevent a comment from
	  showing up in the class documentation for String.
------------------------------------------------------------------------
r57926 | naruse | 2017-03-13 01:28:42 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57775: [Backport #13281]

	nodoc OptParse

	* lib/optparse.rb: [DOC] nodoc OptParse, introduced with r46126,
	  to avoid leaking of its documentation (OptionParser's docs) into
	  the class documentation of Object.  [ruby-core:79909] [Bug #13281]
------------------------------------------------------------------------
r57925 | naruse | 2017-03-13 01:27:45 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57771:

	documentation for sort methods

	* array.c: [DOC] fix grammar in Array#sort, #sort!, #sort_by!,
	  move references below the code example, add a missing reference.
	* enum.c: [DOC] fix grammar in Enumerable#sort, #sort_by.
------------------------------------------------------------------------
r57924 | naruse | 2017-03-13 01:27:30 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57770:

	enum.c: documentation for Enumerable#sort_by

	* enum.c: [DOC] improve structure of docs for Enumerable#sort_by,
	  adopt explanation of the comparison block from Array#sort_by,
	  drop mention of 1.8, fix typos.
------------------------------------------------------------------------
r57923 | naruse | 2017-03-13 01:23:09 +0900 (Mon, 13 Mar 2017) | 13 lines

merge revision(s) 57765: [Backport #13273]

	proc.c: documentation for Proc#{call,yield,[]}

	* proc.c: [DOC] fix and improve docs for Proc#{call,yield,[]}:

	  * change order of Document-method directives as workaround for an
	    RDoc rendering problem where the documentation for Proc#call displays
	    a "Document-method: []" code block.  [ruby-core:79887] [Bug #13273]
	  * add missing call-seq and example for Proc#yield
	  * remove pointless cross reference to Proc#yield
	  * update description for handling of extra or missing arguments,
	    improve examples and add cross reference to #lambda?
------------------------------------------------------------------------
r57922 | naruse | 2017-03-13 01:22:05 +0900 (Mon, 13 Mar 2017) | 6 lines

merge revision(s) 57763:

	fix for mingw64

	* util.c: define MINGW_HAS_SECURE_API for qsort_s on recent
	  mingw64.
------------------------------------------------------------------------
r57921 | naruse | 2017-03-13 01:21:43 +0900 (Mon, 13 Mar 2017) | 8 lines

merge revision(s) 57762: [Backport #13267]

	broken mingw

	* configure.in: check whether frexp and modf are broken.

	* include/ruby/win32.h (frexp, modf): ignore bad declarations when
	  compiling as C++.  [ruby-core:79859] [Bug #13267]
------------------------------------------------------------------------
r57920 | naruse | 2017-03-13 01:20:56 +0900 (Mon, 13 Mar 2017) | 4 lines

merge revision(s) 57761:

	[DOC] update doc.

------------------------------------------------------------------------
r57919 | naruse | 2017-03-13 01:20:09 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57758: [Backport #13268]

	string.c: restore documentation for String#<<

	* string.c: [DOC] restore documentation for String#<<
	  which became undocumented with r56021; fix a typo.
	  [ruby-core:79865] [Bug #13268]
------------------------------------------------------------------------
r57918 | naruse | 2017-03-13 01:20:03 +0900 (Mon, 13 Mar 2017) | 13 lines

merge revision(s) 57751,57753,57755:

	fileutils.rb: improve rdoc for FileUtils

	* lib/fileutils.rb: [DOC] fix invalid example code to make it
	  syntax highlighted, fix rdoc for lists, nodoc internal methods,
	  avoid a dangerous example.
	hash.c: [DOC] fix book title in example
	struct.c: improve rdoc for Struct

	* struct.c: [DOC] improve examples for ::new, improve #dig example,
	  simplify #select example, use consistent style for return values,
	  fix typos and example code style, remove duplicate cross reference.
------------------------------------------------------------------------
r57917 | naruse | 2017-03-13 01:18:06 +0900 (Mon, 13 Mar 2017) | 11 lines

merge revision(s) 57737: [Backport #13225]

	date_core.c: expand docs for Date shifting

	* ext/date/date_core.c: [DOC] expand docs for Date shifting

	  * add examples for Date#>> and Date#<< that clarify some edge cases
	  * add examples for Date#next_year and Date#prev_year
	  * add cross references to Date#>> and Date#<<

	  [ruby-core:79584] [Bug #13225]
------------------------------------------------------------------------
r57916 | naruse | 2017-03-13 00:51:23 +0900 (Mon, 13 Mar 2017) | 9 lines

merge revision(s) 57735: [Backport #13148]

	Fix doc for Hash#dig and Struct#dig

	* hash.c (rb_hash_dig): [DOC] correct argument name
	  in method description; fix formatting in examples.
	* struct.c (rb_struct_dig): ditto.

	[ruby-core:79221] [Bug #13148]
------------------------------------------------------------------------
r57915 | svn | 2017-03-13 00:02:31 +0900 (Mon, 13 Mar 2017) | 1 line

* 2017-03-13
------------------------------------------------------------------------
r57914 | naruse | 2017-03-13 00:02:30 +0900 (Mon, 13 Mar 2017) | 7 lines

merge revision(s) 57589: [Backport #13205]

	parallel.rb: fix intervention

	* test/lib/test/unit/parallel.rb (_report): send a response and a
	  newline atomically, to get rid of intervention with "p" which
	  runs in a separate thread.
------------------------------------------------------------------------
r57913 | naruse | 2017-03-12 23:57:21 +0900 (Sun, 12 Mar 2017) | 16 lines

merge revision(s) 57255,57256,57257: [Backport #13111]

	forwardable.rb: use defined?

	* lib/forwardable.rb (_delegator_method): use defined? operator
	  instead of binding and calling unbound Kernel#respond_to?.  a
	  remedy for an performance bottleneck.
	forwardable.rb: use defined?

	* lib/forwardable.rb (_delegator_method): use defined? operator
	  instead of binding and calling unbound Kernel#respond_to?.  a
	  remedy for an performance bottleneck.
	forwardable.rb: fix branches

	* lib/forwardable.rb (instance_delegate, single_delegate): fix
	  inverted branches.
------------------------------------------------------------------------
r57912 | naruse | 2017-03-12 23:39:18 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57717: [Backport #13253]

	parse.y: indent at invalid identifier

	* parse.y (parser_heredoc_identifier): set indent only when valid
	  identifier, not to dedent non-existent contents later.
	  [ruby-core:79772] [Bug #13253]
------------------------------------------------------------------------
r57911 | naruse | 2017-03-12 23:18:02 +0900 (Sun, 12 Mar 2017) | 10 lines

merge revision(s) 57688,57689: [Backport #13242]

	rational.c: infinity in power

	* rational.c (nurat_expt): return Infinity due to overflow.
	  [ruby-core:79686] [Bug #13242]:
	rational.c: infinity in power

	* rational.c (nurat_expt): return 0 due to overflow.
	  [ruby-core:79686] [Bug #13242]:
------------------------------------------------------------------------
r57910 | naruse | 2017-03-12 23:06:33 +0900 (Sun, 12 Mar 2017) | 14 lines

merge revision(s) 57665: [Backport #13229]

	extension.rdoc: add document title

	* doc/extension.rdoc, doc/extension.ja.rdoc: [DOC]
	  add title and adapt subheading levels.

	* doc/extension.rdoc: [DOC] fix subheading level of section
	  about "Ruby Constants That Can Be Accessed From C".

	* doc/extension.ja.rdoc: [DOC] add missing subheading.

	[ruby-core:79590] [Bug #13229]
	Author:    Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r57909 | naruse | 2017-03-12 23:03:16 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57660: [Backport #13234]

	regparse.c: initialize return values

	* regparse.c (parse_char_class): initialize return values before
	  depth limit check.  returned values will be freed in callers
	  regardless the error.  [ruby-core:79624] [Bug #13234]
------------------------------------------------------------------------
r57907 | naruse | 2017-03-12 22:46:55 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57655: [Backport #13227]

	vm_insnhelper.c: super to module in refinement

	* vm_insnhelper.c (vm_call_zsuper): method defined in module in
	  refinement is not callable as-is.  dispatch again.
	  [ruby-core:79588] [Bug #13227]
------------------------------------------------------------------------
r57906 | naruse | 2017-03-12 21:55:00 +0900 (Sun, 12 Mar 2017) | 4 lines

merge revision(s) 57595: [Backport #8996]

	check thread deadness correctly.

------------------------------------------------------------------------
r57905 | naruse | 2017-03-12 17:09:45 +0900 (Sun, 12 Mar 2017) | 9 lines

merge revision(s) 57584: [Backport #13202]

	[DOC] Update an obsolete example for slice_before.

	The argument for Enumerable#slice_before is is removed at Ruby 2.3.

	Reported by Shyouhei Urabe.  [Bug #13202]


------------------------------------------------------------------------
r57904 | naruse | 2017-03-12 17:04:28 +0900 (Sun, 12 Mar 2017) | 15 lines

merge revision(s) 57549: [Backport #13193]

	date_core.c: [DOC] revise docs [ci skip]

	* fix malformed rdoc for Date#today, Date._strptime,
	  and DateTime._strptime
	* add code examples for Date#<< and Date#>> to demonstrate
	  that different dates can result in the same return value
	* use Date::ITALY in call-seq instead of only ITALY
	* fix some copy/paste mistakes where Date should be DateTime
	* fix various errors and grammar
	* fix cross references and formatting

	[ruby-core:79433] [Bug #13193]
	Author:    Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r57903 | naruse | 2017-03-12 17:02:52 +0900 (Sun, 12 Mar 2017) | 8 lines

merge revision(s) 57543: [Backport #13194]

	rbinstall.rb: default umask

	* tool/rbinstall.rb: revert r49841 and default umask to just
	  prohibit all from writing.  symlink(2) has no argument to set
	  permissions but is affected by umask.
	  [ruby-dev:49975] [Bug #13194]
------------------------------------------------------------------------
r57902 | naruse | 2017-03-12 17:01:46 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57539: [Backport #11752]

	rational.c: fix rdoc [ci skip]

	* rational.c (rb_rational_plus): [DOC] fix an example.
	  A patch by Trygve Flathen <at.ruby-lang AT flathen.net> in
	  [ruby-core:71755].  [Bug #11752]
------------------------------------------------------------------------
r57901 | naruse | 2017-03-12 16:54:43 +0900 (Sun, 12 Mar 2017) | 16 lines

merge revision(s) 57522: [Backport #13189]

	doc: restore class documentation for Struct

	* struct.c: restore class documentation for Struct
	  that disappeared with r46663.

	Due to r46663, the class documentation for Struct disappeared.
	(The revision inserted the definition of `InitVM_Struct` between
	the rdoc and the definition of `Init_Struct`.)

	The docs are rendered for 2.1: <https://docs.ruby-lang.org/en/2.1.0/Struct.html>,
	but not for later versions, see: <https://docs.ruby-lang.org/en/2.2.0/Struct.html>
	(Same for `ri` pages).

	[ruby-core:79416] [Bug #13189]
------------------------------------------------------------------------
r57900 | naruse | 2017-03-12 16:53:34 +0900 (Sun, 12 Mar 2017) | 44 lines

merge revision(s) 57690-57694:

	rational.c: infinity in power

	* rational.c (nurat_expt): return 0 due to overflow.
	  [ruby-core:79686] [Bug #13242]:
	------------------------------------------------------------------------
	r57690 | nobu | 2017-02-23 10:15:27 +0900 (Thu, 23 Feb 2017) | 7 lines

	[DOC] {read,write}_nonblock with exception: false

	Update docs to reflect EOF behavior change of read_nonblock and
	write_nonblock when using `exception: false`.

	[Fix GH-1527]
	Author:    Russell Davis <russell-stripe@users.noreply.github.com>
	------------------------------------------------------------------------
	r57691 | nobu | 2017-02-23 10:54:13 +0900 (Thu, 23 Feb 2017) | 11 lines

	socket.rb: [DOC] fix nonblock methods

	* ext/socket/lib/socket.rb (BasicSocket#recv_nonblock): fix
	  exception class and symbol.

	* ext/socket/lib/socket.rb (BasicSocket#recvmsg_nonblock): ditto.

	* ext/socket/lib/socket.rb (Socket#recvfrom_nonblock): fix the
	  method name.

	* ext/socket/lib/socket.rb (UDPSocket#recvfrom_nonblock): both.
	------------------------------------------------------------------------
	r57692 | nobu | 2017-02-23 11:00:28 +0900 (Thu, 23 Feb 2017) | 1 line

	[DOC] keyword argument _exception_
	------------------------------------------------------------------------
	r57693 | nobu | 2017-02-23 11:11:16 +0900 (Thu, 23 Feb 2017) | 1 line

	[DOC] mark up literals
	------------------------------------------------------------------------
	r57694 | nobu | 2017-02-23 11:40:17 +0900 (Thu, 23 Feb 2017) | 3 lines

	Revert r57690 except for read_nonblock

	https://github.com/ruby/ruby/pull/1527#issuecomment-281867551
------------------------------------------------------------------------
r57899 | naruse | 2017-03-12 16:52:32 +0900 (Sun, 12 Mar 2017) | 9 lines

merge revision(s) 57750:

	openssl: avoid segfault during running tests on Ubuntu trusty

	Import the commit 6693a549d673 ("test/test_pkey_ec: do not use dummy 0
	order", 2017-02-03) from upstream. Hopefully this will fix the segfault
	on RubyCI icc16-x64:

	  http://rubyci.org/logs/rubyci.s3.amazonaws.com/icc-x64/ruby-trunk/log/20170301T050002Z.fail.html.gz
------------------------------------------------------------------------
r57898 | naruse | 2017-03-12 16:51:35 +0900 (Sun, 12 Mar 2017) | 14 lines

merge revision(s) 57590,57591,57592: [Backport #13200]

	extmk.rb: split notes

	* ext/extmk.rb: split notes and echo per lines, for multiple lines
	  messages.  [ruby-core:79475] [Bug #13200]
	openssl: fix broken openssl check

	* ext/openssl/extconf.rb: check for broken OpenSSL only on mac OS.
	  [ruby-core:79475] [Bug #13200]
	openssl: fix broken openssl check

	* ext/openssl/deprecation.rb: check for broken OpenSSL only on mac
	  OS.  [ruby-core:79475] [Bug #13200]
------------------------------------------------------------------------
r57897 | naruse | 2017-03-12 16:46:26 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57289: [Backport #13114]

	test_io_console.rb: fix of old CentOS5

	* test/io/console/test_io_console.rb (test_winsize): on old CentOS5
	  window size seems unable to be set across a pty.
------------------------------------------------------------------------
r57896 | naruse | 2017-03-12 16:46:13 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57520: [Backport #13184]

	ruby.h: unused parameter

	* include/ruby/ruby.h (rb_scan_args_set): remove unused parameter
	  for more pedantic extension libraries.
	  [ruby-core:79399] [Feature #13184]
------------------------------------------------------------------------
r57895 | naruse | 2017-03-12 16:36:02 +0900 (Sun, 12 Mar 2017) | 10 lines

merge revision(s) 57517: [Backport #13190]

	doc: Fix error for escape sequences in string literals

	Backslash goes first in escape sequences, so it must be
	"any other character following a backslash is interpreted as ...",
	while the doc says "...followed by...".

	Author: Marcus Stollsteimer <sto.mar@web.de>
	[ruby-core:79418] [Bug #13190]
------------------------------------------------------------------------
r57894 | naruse | 2017-03-12 16:34:58 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57492:

	test_queue.rb: fix portability

	* test/thread/test_queue.rb (test_queue_with_trap): fix
	  portability.  use SIGINT instead of SIGUSR2 which is supported
	  on not all platforms.
------------------------------------------------------------------------
r57893 | naruse | 2017-03-12 16:34:42 +0900 (Sun, 12 Mar 2017) | 5 lines

merge revision(s) 57515: [Backport #13169]

	lib/ostruct.rb: Fix returned value of each_pair.

	From a patch by Marcus Stollsteimer. [Fixes #13169]
------------------------------------------------------------------------
r57885 | naruse | 2017-03-12 04:18:45 +0900 (Sun, 12 Mar 2017) | 10 lines

merge revision(s) 57510,57511: [Backport #13176]

	eval.c: hide internal objects

	* eval.c (rb_ensure): veil internal exception objects not to leak
	  in ensure functions.  [ruby-core:79371] [Bug #13176]
	ensured.c: fix conflict

	* ext/-test-/exception/ensured.c (exc_raise): get rid of conflict
	  with raise(2) in the standard.  [ruby-core:79371] [Bug #13176]
------------------------------------------------------------------------
r57884 | naruse | 2017-03-12 04:06:22 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57483:

	Describe about RUBY_CODESIGN

	With RUBY_CODESIGN people can avoid pushing many OK button of firewall
	dialogs on macOS through test-all.
------------------------------------------------------------------------
r57882 | naruse | 2017-03-12 03:59:50 +0900 (Sun, 12 Mar 2017) | 3 lines

merge revision(s) 57165:

	Add ruby_2_4 branch to test on travis [skip ci]
------------------------------------------------------------------------
r57881 | naruse | 2017-03-12 03:59:22 +0900 (Sun, 12 Mar 2017) | 26 lines

merge revision(s) 57482: [Backport #13080] [Backport #13170]

	openssl: import v2.0.3

	Import Ruby/OpenSSL 2.0.3. Only bugfixes. The full commit log since
	2.0.2 (imported at r57146) can be found at:

	  https://github.com/ruby/openssl/compare/v2.0.2...v2.0.3

	----------------------------------------------------------------
	Corey Bonnell (1):
	      Fix for ASN1::Constructive 'each' implementation

	Kazuki Yamaguchi (10):
	      Fix build with static OpenSSL libraries on Windows
	       ([ruby-core:78878] [Bug #13080])
	      Merge pull request #96 from CBonnell/master
	      Merge branch 'topic/windows-static-linking-without-pkg-config' into maint
	      appveyor.yml: update OpenSSL version to 1.0.2j
	      buffering: fix typo in doc
	      test/envutil: fix assert_raise_with_message
	      x509: fix OpenSSL::X509::Name#eql?
	       ([ruby-core:79310] [Bug #13170])
	      ruby-openssl-docker: update versions of Ruby and OpenSSL
	      .travis.yml: test with Ruby 2.4
	      Ruby/OpenSSL 2.0.3
------------------------------------------------------------------------
r57880 | naruse | 2017-03-12 03:46:17 +0900 (Sun, 12 Mar 2017) | 5 lines

merge revision(s) 57480:

	mkmf.rb: message format string

	* lib/mkmf.rb (checking_for): message needs format string.
------------------------------------------------------------------------
r57879 | naruse | 2017-03-12 03:45:34 +0900 (Sun, 12 Mar 2017) | 17 lines

merge revision(s) 57477,57478,57479: [Backport #12405]

	use TRUE/FALSE.

	define rb_thread_sleep_deadly_allow_spurious_wakeup().

	* thread.c, thread_sync.c: define new function
	  rb_thread_sleep_deadly_allow_spurious_wakeup() and use it instead of
	  using sleep_forever() directly.

	allow Queue operation in trap.

	* thread_sync.c: allow spurious wakeup to check Queue status just after trap.
	  [Bug #12405]

	* test/thread/test_queue.rb: add a test for it.

------------------------------------------------------------------------
r57878 | naruse | 2017-03-12 03:16:14 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57437:

	leakchecker.rb: get rid of uninitialized Tempfile

	* test/lib/leakchecker.rb (LeakChecker#find_tempfiles): get rid of
	  errors on uninitialized Tempfile, which can be left when
	  Dir.tmpdir failed or by Tempfile.allocate.
------------------------------------------------------------------------
r57877 | naruse | 2017-03-12 03:15:50 +0900 (Sun, 12 Mar 2017) | 5 lines

merge revision(s) 57436:

	enum.c: write barrier

	* enum.c (rb_nmin_run): set the class with write barrier.
------------------------------------------------------------------------
r57876 | naruse | 2017-03-12 03:11:06 +0900 (Sun, 12 Mar 2017) | 11 lines

merge revision(s) 57434: [Backport #13161]

	Enumerable#{min,min_by,max,max_by} [ci skip]

	* enum.c: [DOC] Enumerable#{min,min_by,max,max_by} return a sorted
	  array when +n+ argument is used.

	* enum.c: Small typo : minimum -> maximum

	[Bug #13161]
	Author:    Eric Duminil <eric.duminil@gmail.com>
------------------------------------------------------------------------
r57875 | naruse | 2017-03-12 03:10:55 +0900 (Sun, 12 Mar 2017) | 3 lines

merge revision(s) 57431:

	[DOC] Use Integer instead of Fixnum [ci skip]
------------------------------------------------------------------------
r57874 | naruse | 2017-03-12 03:09:45 +0900 (Sun, 12 Mar 2017) | 8 lines

merge revision(s) 57428:

	Add document for lib/rss/atom.rb

	[fix GH-1520]

	Patch by Tsehau Chao. Thanks!!!

------------------------------------------------------------------------
r57873 | naruse | 2017-03-12 03:07:38 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57423:

	Fix function name for DBM on extension document.

	  Patch by Yuji Yaginuma, @y-yagi <yuuji.yaginuma@gmail.com>
	  [ci skip][fix GH-1519]
------------------------------------------------------------------------
r57872 | naruse | 2017-03-12 03:07:19 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57422: [Backport #13158]

	io.c: close before wait

	* io.c (io_close_fptr): notify then close, and wait for other
	  threads before free fptr.  [ruby-core:79262] [Bug #13158]
------------------------------------------------------------------------
r57871 | naruse | 2017-03-12 02:56:02 +0900 (Sun, 12 Mar 2017) | 5 lines

merge revision(s) 57421:

	[DOC] Add empty example to enum.all? and any?

	[ci skip]
------------------------------------------------------------------------
r57870 | naruse | 2017-03-12 02:55:02 +0900 (Sun, 12 Mar 2017) | 5 lines

merge revision(s) 57411: [Backport #13147]

	Fix typo of URI#escape [Bug #13147]

	patched by Steve Hill <sghill.dev@gmail.com>
------------------------------------------------------------------------
r57869 | naruse | 2017-03-12 02:51:05 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57407: [Backport #13145]

	object.c: no TypeError at Symbol

	* object.c (special_object_p): uninterned Symbol also should not
	  raise a TypeError but return itself instead, as well as interned
	  Symbols.  [ruby-core:79216] [Bug #13145]
------------------------------------------------------------------------
r57868 | naruse | 2017-03-12 02:45:18 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57406: [Backport #13149]

	csv.rb: fix field_size_limit check

	* lib/csv.rb (CSV#shift): the last column is an Array in extended
	  column since r55985.  [ruby-dev:49964] [Bug #13149]
------------------------------------------------------------------------
r57867 | naruse | 2017-03-12 02:40:39 +0900 (Sun, 12 Mar 2017) | 8 lines

merge revision(s) 57405:

	error.c: fixed doc [ci skip]

	* error.c (exc_message): fixed doc regarding the presence of
	  to_str.  [Fix GH-1517]

	Author:    Marc Gauthier <marcg.gauthier@gmail.com>
------------------------------------------------------------------------
r57866 | naruse | 2017-03-12 02:40:32 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57390:

	Hash#fetch: fix grammar in documentation.

	[Fix GH-1515][ci skip]
	Author:    Alyssa Ross <hi+services.github@alyssa.is>
------------------------------------------------------------------------
r57865 | naruse | 2017-03-12 02:37:46 +0900 (Sun, 12 Mar 2017) | 3 lines

merge revision(s) 57375:

	More description about the protected attribute of a method
------------------------------------------------------------------------
r57864 | naruse | 2017-03-12 02:35:03 +0900 (Sun, 12 Mar 2017) | 5 lines

merge revision(s) 57374: [Backport #13135]

	string.c: rindex(//) should set $~.

	This seems a bug introduced by r520 (1.4.0).  [ruby-core:79110] [Bug #13135]
------------------------------------------------------------------------
r57863 | naruse | 2017-03-12 02:28:49 +0900 (Sun, 12 Mar 2017) | 5 lines

merge revision(s) 57372:

	Fix documentation of options for all of methods in FileUtils.

	Patch by galia traub( @galiat ). [Fix GH-1510][ci skip]
------------------------------------------------------------------------
r57862 | naruse | 2017-03-12 02:22:39 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57362: [Backport #13096]

	vm_method.c: resolve refined method to undef

	* vm_method.c (rb_undef): resolve the method entry which refines a
	  prepended method entry.  [ruby-core:78944] [Bug #13096]
------------------------------------------------------------------------
r57861 | naruse | 2017-03-12 02:17:23 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57360: [Backport #12884]

	class.c: non-keyword hash class

	* class.c (rb_extract_keywords): keep the class of non-keyword
	  elements hash as the original.  [ruby-core:77813] [Bug #12884]
------------------------------------------------------------------------
r57860 | naruse | 2017-03-12 02:10:01 +0900 (Sun, 12 Mar 2017) | 11 lines

merge revision(s) 57352: [Backport #13132]

	doc: improve documentation for Binding [ci skip]

	* remove explicit return from code examples
	* grammar fixes
	* other small fixes

	Patch by: Marcus Stollsteimer <sto.mar@web.de>

	[ruby-core:79082] [Bug #13132]
------------------------------------------------------------------------
r57859 | naruse | 2017-03-12 02:09:43 +0900 (Sun, 12 Mar 2017) | 9 lines

merge revision(s) 57335:

	s/SaveStringValue/SafeStringValue/

	Fix a typo in extension.rdoc.

	Signed-off-by: Akira Matsuda <ronnie@dio.jp>

	closes #1512
------------------------------------------------------------------------
r57858 | naruse | 2017-03-12 02:07:53 +0900 (Sun, 12 Mar 2017) | 11 lines

merge revision(s) 57317,57318:

	error.c: moved

	* error.c (preface_dump, postscript_dump): moved from
	  rb_vm_bugreport to place the last important message at the very
	  last after [NOTE].
	error.c: moved

	* error.c (preface_dump, postscript_dump): CrashReporter directory
	  was used before Mac OS X 10.6.
------------------------------------------------------------------------
r57857 | naruse | 2017-03-12 02:06:18 +0900 (Sun, 12 Mar 2017) | 6 lines

merge revision(s) 57315:

	vm_dump.c: postscript_dump

	* vm_dump.c (postscript_dump): mention crash report log twice
	  because important.
------------------------------------------------------------------------
r57856 | naruse | 2017-03-12 01:44:40 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57305: [Backport #13114] [Backport #13120]

	variable.c: fix the condition to cache

	* variable.c (rb_const_set): fix the condition to cache the class
	  path and cache permanent or temporary path corresponding to the
	  outer klass.  [ruby-core:79039] [Bug #13120]
------------------------------------------------------------------------
r57855 | naruse | 2017-03-12 01:38:53 +0900 (Sun, 12 Mar 2017) | 14 lines

merge revision(s) 57302,57303,57304: [Backport #13119]

	string.c: block for scrub with ASCII-incompatible

	* string.c (rb_enc_str_scrub): honor the given block with
	  ASCII-incompatible encoding.  [ruby-core:79039] [Bug #13120]
	string.c: yield invalid part

	* string.c (rb_enc_str_scrub): yield the invalid part only with
	  ASCII-incompatible.  [ruby-core:79039] [Bug #13120]
	string.c: replacement and block

	* string.c (rb_enc_str_scrub): only one of replacement and block
	  is allowed.  [ruby-core:79038] [Bug #13119]
------------------------------------------------------------------------
r57854 | naruse | 2017-03-12 01:29:51 +0900 (Sun, 12 Mar 2017) | 10 lines

merge revision(s) 57300,57368: [Backport #12613]

	compile.c: check compile

	* compile.c (iseq_compile_each): check if sub nodes succeeded.
	  [ruby-core:76531] [Bug #12613]
	compile.c: check err_info

	* compile.c (iseq_setup): bail out if any errors found.
	  [ruby-core:76531] [Bug #12613]
------------------------------------------------------------------------
r57853 | naruse | 2017-03-12 01:24:17 +0900 (Sun, 12 Mar 2017) | 7 lines

merge revision(s) 57293: [Backport #13107]

	vm_insnhelper.c: block argument at tailcall

	* vm_insnhelper.c (vm_call_iseq_setup_tailcall): check interrupts
	  after set up the new frame, not the passed block to be clobbered
	  by invoked finalizers and so on.  [ruby-core:78981] [Bug #13107]
------------------------------------------------------------------------
r57850 | naruse | 2017-03-12 00:03:50 +0900 (Sun, 12 Mar 2017) | 8 lines

merge revision(s) 57283,57284: [Backport #13113]

	benchmarks for [Bug #13113] [ci skip]
	variable.c: resolve permanent name only

	* variable.c (rb_const_set): resolve and cache class name
	  immediately only if the outer class/module has the name,
	  otherwise just set the ID.  [ruby-core:79007] [Bug #13113]
------------------------------------------------------------------------
r57849 | naruse | 2017-03-11 23:59:43 +0900 (Sat, 11 Mar 2017) | 10 lines

merge revision(s) 57280,57282: [Backport #13112]

	console.c: OOB access

	* ext/io/console/console.c (console_set_winsize): fix
	  out-of-bounds access.  [ruby-core:79004] [Bug #13112]
	console.c: unpaired size

	* ext/io/console/console.c (console_set_winsize): reject unpaired
	  pixel size.
------------------------------------------------------------------------
r57848 | naruse | 2017-03-11 23:48:04 +0900 (Sat, 11 Mar 2017) | 11 lines

merge revision(s) 57278,57279: [Backport #12855]

	fix optimization for hash aset/aref with fstring

	Patch by Eric Wong [ruby-core:78797].
	I don't like the idea of making insns.def any bigger to support
	a corner case, and "test_hash_aref_fstring_identity" shows
	how contrived this is.

	[ruby-core:78783] [Bug #12855]
	adjust indent [ci skip]
------------------------------------------------------------------------
r57847 | naruse | 2017-03-11 23:25:54 +0900 (Sat, 11 Mar 2017) | 8 lines

merge revision(s) 57240: [Backport #13090]

	vm.c: fix return in lambda

	* vm.c (invoke_block_from_c_splattable): pass lambda-ness.

	* vm_eval.c (yield_under): invoke lambda proc properly.
	  [ruby-core:78917] [Bug #13090]
------------------------------------------------------------------------
r57846 | naruse | 2017-03-11 23:20:51 +0900 (Sat, 11 Mar 2017) | 7 lines

merge revision(s) 57236: [Backport #13089]

	rational.c: memory leak in gcd

	* rational.c (rb_gcd_gmp): fix memory leak.  patched by KISHIMOTO,
	  Makoto <ksmakoto AT dd.iij4u.or.jp> in [ruby-dev:49934].
	  [Bug #13089]
------------------------------------------------------------------------
r57845 | naruse | 2017-03-11 22:36:26 +0900 (Sat, 11 Mar 2017) | 6 lines

merge revision(s) 57205:

	cont.c: change fiber stack size doc [ci skip]

	It's many years since we had tiny 4KB fiber stacks :<
	point to the manpage instead for current, larger sizes.
------------------------------------------------------------------------
r57844 | naruse | 2017-03-11 22:35:55 +0900 (Sat, 11 Mar 2017) | 3 lines

merge revision(s) 57246: [Backport #13091]

	fix typo [Bug #13091]
------------------------------------------------------------------------
r57843 | naruse | 2017-03-11 22:35:22 +0900 (Sat, 11 Mar 2017) | 6 lines

merge revision(s) 57232: [Backport #13084]

	rational.c: fix for mathn

	* rational.c (read_num, read_rat_nos): dispatch by the type of numerator, for
	  mathn.  [ruby-core:78893] [Bug #13084]
------------------------------------------------------------------------
r57841 | naruse | 2017-03-11 22:23:42 +0900 (Sat, 11 Mar 2017) | 5 lines

merge revision(s) 57204:

        r57203 needs r57204.
	io.c: use io_close to close ARGF

------------------------------------------------------------------------
r57840 | naruse | 2017-03-11 22:03:46 +0900 (Sat, 11 Mar 2017) | 6 lines

merge revision(s) 57227: [Backport #13078]

	numeric.c: reduce fdiv

	* numeric.c (rb_int_fdiv_double): reduce first for more precise
	  result.  [ruby-core:78886] [Bug #13078]
------------------------------------------------------------------------
r57839 | naruse | 2017-03-11 22:02:37 +0900 (Sat, 11 Mar 2017) | 6 lines

merge revision(s) 57203:

	io.c: ARGF fd leak

	* io.c (argf_next_argv): fix leak of fd after breaking in #each
	  method.
------------------------------------------------------------------------
r57838 | naruse | 2017-03-11 22:02:01 +0900 (Sat, 11 Mar 2017) | 22 lines

merge revision(s) 57199,57202,57206,57224: [Backport #13076]

	io.c: fix race between read and close

	* io.c (io_fillbuf): fix race between read and close, in the case
	  the IO gets closed before the reading thread achieve the lock.
	  [ruby-core:78845] [Bug #13076]
	thread.c: fix race between read and close

	* thread.c (rb_thread_fd_close): wait until all threads using the
	  fd finish the operation, not to free the buffer in use.
	  [ruby-core:78845] [Bug #13076]
	revert a part of r57199

	* io.c (io_fillbuf): revert a part of r57199 because it broke IO#getch.
	  see also [Bug #13076]

	io.c: fix race between read and close

	* io.c (io_fillbuf): fix race between read and close and bail out
	  in the case the IO gets closed before the reading thread achieve
	  the lock.  [ruby-core:78845] [Bug #13076]
------------------------------------------------------------------------
r57837 | naruse | 2017-03-11 21:53:45 +0900 (Sat, 11 Mar 2017) | 6 lines

merge revision(s) 57198: [Backport #13073]

	parse.y: preserve cmdarg stack

	* parse.y (do_body): preserve cmdarg stack around do/end block.
	  [ruby-core:78837] [Bug #13073]
------------------------------------------------------------------------
r57834 | naruse | 2017-03-11 20:06:39 +0900 (Sat, 11 Mar 2017) | 6 lines

merge revision(s) 57194: [Backport #13074]

	vm_eval.c: Symbol#to_proc and instance_exec

	* vm_eval.c (yield_under): should evaluate the proc on the first
	  argument.  [ruby-core:78839] [Bug #13074]
------------------------------------------------------------------------
r57833 | naruse | 2017-03-11 19:44:13 +0900 (Sat, 11 Mar 2017) | 18 lines

merge revision(s) 57187,57234: [Backport #13075]

	pack.c: avoid returning uninitialized String

	Fix unpacking with 'b', 'B', 'h' and 'H' format. Do not return an
	uninitialized String to Ruby before filling the content bytes.
	Fixes r11175 ("pack.c (pack_unpack): execute block if given with
	unpacked value instead of creating an array", 2006-10-15).
	[ruby-core:78841] [Bug #13075]
	test/ruby/test_pack.rb: fix test case added by r57187

	The test case for String#unpack added by r57187 is not properly testing
	because the String will be filled after the block invocation.
	[ruby-core:78841] [Bug #13075]

	Thanks to nagachika for pointing this out:

  http://d.hatena.ne.jp/nagachika/20161226/ruby_trunk_changes_57184_57194#r57187
------------------------------------------------------------------------
r57832 | naruse | 2017-03-11 19:37:09 +0900 (Sat, 11 Mar 2017) | 5 lines

merge revision(s) 57179:

	bignum.c: precise fdiv

	* bignum.c (big_fdiv): more precise calculation.  [ruby-dev:49915]
------------------------------------------------------------------------
r57831 | naruse | 2017-03-11 19:28:14 +0900 (Sat, 11 Mar 2017) | 24 lines

merge revision(s) 57173-57175: [Backport #13068]

	------------------------------------------------------------------------
	r57173 | nobu | 2016-12-24 22:19:50 +0900 (Sat, 24 Dec 2016) | 4 lines

	compile.c: constify

	* compile.c (method_for_self): constify an argument of build
  function for VC6.
	------------------------------------------------------------------------
	r57174 | nobu | 2016-12-24 22:21:30 +0900 (Sat, 24 Dec 2016) | 4 lines

	hash.c: split long long literals

	* hash.c (prime1, prime2): split long long literals for platforms
  where LL suffix is not supported, e.g., VC6.
	------------------------------------------------------------------------
	r57175 | nobu | 2016-12-24 22:22:53 +0900 (Sat, 24 Dec 2016) | 4 lines

	regint.h: version for secure functions

	* regint.h (xvsnprintf): secure version functions are not
  supported on old VC.

------------------------------------------------------------------------
r57830 | naruse | 2017-03-11 19:17:35 +0900 (Sat, 11 Mar 2017) | 21 lines

merge revision(s) 57170-57172: [Backport #13066]

	test/unit.rb: restore parallel option

	* test/lib/test/unit.rb (_run_parallel): restore parallel option
  after retrying for --repeat-count option.
	------------------------------------------------------------------------
	r57170 | nobu | 2016-12-24 20:56:12 +0900 (Sat, 24 Dec 2016) | 1 line

	time.c: fix typo in value_insane_p
	------------------------------------------------------------------------
	r57171 | nobu | 2016-12-24 21:19:23 +0900 (Sat, 24 Dec 2016) | 1 line

	time.c: remove debug code
	------------------------------------------------------------------------
	r57172 | nobu | 2016-12-24 21:21:52 +0900 (Sat, 24 Dec 2016) | 4 lines

	time.c: fix type of usec2subsecx

	* time.c (usec2subsecx): fix return type, which is a numeric
  object but not a long int.  [ruby-dev:49912] [Bug #13066]
------------------------------------------------------------------------
r57163 | svn | 2016-12-24 01:03:40 +0900 (Sat, 24 Dec 2016) | 1 line

* 2016-12-24
------------------------------------------------------------------------
r57162 | naruse | 2016-12-24 01:03:39 +0900 (Sat, 24 Dec 2016) | 2 lines

v2.4.0p0

------------------------------------------------------------------------
r57161 | naruse | 2016-12-24 00:44:33 +0900 (Sat, 24 Dec 2016) | 1 line

Release branch of Ruby 2.4
------------------------------------------------------------------------
r57160 | naruse | 2016-12-23 23:54:04 +0900 (Fri, 23 Dec 2016) | 3 lines

Increase timeout

http://rubyci.org/logs/rubyci.s3.amazonaws.com/aix71_ppc/ruby-trunk/log/20161223T113301Z.fail.html.gz
------------------------------------------------------------------------
r57159 | nobu | 2016-12-23 12:22:36 +0900 (Fri, 23 Dec 2016) | 5 lines

assertions.rb: prepare_syntax_check

* test/lib/test/unit/assertions.rb (prepare_syntax_check): extract
  common preparation of arguments from assert_valid_syntax and
  assert_syntax_error.
------------------------------------------------------------------------
r57158 | nobu | 2016-12-23 12:22:35 +0900 (Fri, 23 Dec 2016) | 8 lines

assertions.rb: syntax check by iseq

* test/lib/test/unit/assertions.rb (assert_valid_syntax): use
  RubyVM::InstructionSequence.compile to get rid of executing the
  code, instead of catch&throw.  sample/trick2015/kinaba/entry.rb
  no longer raises an Invalid return.

* test/lib/test/unit/assertions.rb (assert_syntax_error): ditto.
------------------------------------------------------------------------
r57157 | nobu | 2016-12-23 09:05:40 +0900 (Fri, 23 Dec 2016) | 4 lines

time.c: inquire suspicious values

* time.c (time_arg): dump sec and subsec arguments if subsecx is
  insane.
------------------------------------------------------------------------
r57156 | nobu | 2016-12-23 08:20:00 +0900 (Fri, 23 Dec 2016) | 5 lines

test_modify_expand.rb: skip if no overflow

* test/-ext-/string/test_modify_expand.rb (test_integer_overflow):
  no longer happens on platforms where size_t is larger than long,
  e.g. 64bit windows, since r57122.
------------------------------------------------------------------------
r57155 | nobu | 2016-12-23 07:34:18 +0900 (Fri, 23 Dec 2016) | 1 line

time.c: inquire suspicious values
------------------------------------------------------------------------
r57154 | nobu | 2016-12-23 07:16:19 +0900 (Fri, 23 Dec 2016) | 4 lines

string.c: suppress a warning

* string.c (rb_str_casecmp_p): [DOC] use Unicode escape form to
  get rid of warning C4819 by Microsoft Visual C++.
------------------------------------------------------------------------
r57153 | svn | 2016-12-23 05:58:55 +0900 (Fri, 23 Dec 2016) | 1 line

* 2016-12-23
------------------------------------------------------------------------
r57152 | nobu | 2016-12-23 05:58:55 +0900 (Fri, 23 Dec 2016) | 1 line

get rid of implicit signedness conversions
------------------------------------------------------------------------
r57151 | yui-knk | 2016-12-22 19:29:40 +0900 (Thu, 22 Dec 2016) | 4 lines

test_float.rb: add test cases for Float#round

* test_float.rb: add test cases for Float#round with
  half nil. Follow up r57130.
------------------------------------------------------------------------
r57150 | naruse | 2016-12-22 18:44:30 +0900 (Thu, 22 Dec 2016) | 3 lines

suppress warning: implicit conversion changes signedness

It causes [Bug #13060]
------------------------------------------------------------------------
r57149 | rhe | 2016-12-22 13:40:28 +0900 (Thu, 22 Dec 2016) | 4 lines

io.c: [DOC] update outdated documentation of ARGF.close

As of Ruby 2.3, IO#close no longer raises IOError if the file is already
closed.
------------------------------------------------------------------------
r57148 | hsbt | 2016-12-22 12:53:53 +0900 (Thu, 22 Dec 2016) | 1 line

Update xmlrpc-0.2.1 for Ruby 2.4.0 release.
------------------------------------------------------------------------
r57147 | nobu | 2016-12-22 11:00:02 +0900 (Thu, 22 Dec 2016) | 4 lines

test_rinda.rb: ipv6_mc

* test/rinda/test_rinda.rb (RingIPv6#ipv6_mc): extract IPv6
  multicast setup and cleanup, and ignore ENETDOWN.
------------------------------------------------------------------------
r57146 | rhe | 2016-12-22 10:43:41 +0900 (Thu, 22 Dec 2016) | 14 lines

openssl: import v2.0.2

Import Ruby/OpenSSL 2.0.2. This release contains only bugfixes. The full
commit log since 2.0.1 (imported at r57041) can be found at:

  https://github.com/ruby/openssl/compare/v2.0.1...v2.0.2

----------------------------------------------------------------
Kazuki Yamaguchi (5):
      ssl: check for SSL_CTX_clear_options()
      Rename functions in openssl_missing.c
      ssl: use SSL_SESSION_get_protocol_version()
      pkey: allow instantiating OpenSSL::PKey::PKey with unsupported key type
      Ruby/OpenSSL 2.0.2
------------------------------------------------------------------------
r57145 | mrkn | 2016-12-22 00:35:29 +0900 (Thu, 22 Dec 2016) | 5 lines

bigdecimal: version 1.3.0

Import bigdecimal version 1.3.0.  The full commit log is here:

  https://github.com/ruby/bigdecimal/compare/v1.3.0.pre.2...v1.3.0
------------------------------------------------------------------------
r57144 | svn | 2016-12-22 00:21:20 +0900 (Thu, 22 Dec 2016) | 1 line

* 2016-12-22
------------------------------------------------------------------------
r57143 | ngoto | 2016-12-22 00:21:19 +0900 (Thu, 22 Dec 2016) | 5 lines

regcomp.c: Fix compile error with old version of fcc on Solaris

* regcomp.c (get_min_match_length): Fix compile error with old version
  of fcc (Fujitsu C Compiler) on Solaris 10. [Bug #13059][ruby-dev:49909]

------------------------------------------------------------------------
r57142 | nobu | 2016-12-21 22:46:46 +0900 (Wed, 21 Dec 2016) | 1 line

time.c: debug print
------------------------------------------------------------------------
r57141 | yui-knk | 2016-12-21 22:26:16 +0900 (Wed, 21 Dec 2016) | 4 lines

numeric.c: remove not used lines

* numeric.c (rb_num_get_rounding_option): remove not used
  lines. After r57130 these lines are never reached.
------------------------------------------------------------------------
r57140 | nobu | 2016-12-21 21:06:40 +0900 (Wed, 21 Dec 2016) | 4 lines

time.c: refine num_exact error message

* time.c (num_exact): show the original argument when conversion
  failed, instead of intermediate nil.
------------------------------------------------------------------------
r57139 | nobu | 2016-12-21 21:05:41 +0900 (Wed, 21 Dec 2016) | 4 lines

time.c: use RB_TYPE_P

* time.c (time_timespec): use RB_TYPE_P instead of switching by
  TYPE.
------------------------------------------------------------------------
r57138 | nobu | 2016-12-21 20:20:02 +0900 (Wed, 21 Dec 2016) | 4 lines

st.c: suppress a warning

* st.c (st_hash): suppress unused label warning on 32bit
  platforms.  fix up r57134.
------------------------------------------------------------------------
r57137 | nobu | 2016-12-21 20:12:39 +0900 (Wed, 21 Dec 2016) | 4 lines

eval.c: fix circular cause

* eval.c (exc_setup_cause): always set cause of cause to get rid
  of circular references.  [ruby-core:78688] [Bug #13043]
------------------------------------------------------------------------
r57136 | usa | 2016-12-21 17:13:42 +0900 (Wed, 21 Dec 2016) | 2 lines

* win32/win32.c (winnt_stat): use `numberof` macro instead of constant.

------------------------------------------------------------------------
r57135 | usa | 2016-12-21 16:50:14 +0900 (Wed, 21 Dec 2016) | 8 lines

Fixed potentially buffer overrun.

* win32/win32.c (winnt_stat): the return value of `get_final_path` is the
  expected buffer length, not the actuall filled length.

* win32/win32.c (winnt_stat): `finalname` may be accessed in the outer block of
  its definition via `path`.

------------------------------------------------------------------------
r57134 | nobu | 2016-12-21 15:22:16 +0900 (Wed, 21 Dec 2016) | 29 lines

st.c: fix st_hash* functions [Bug #13019]

Previous implementation had an issues:
- macros murmur1 assumes murmur_step takes rotation value
  as a second argument
- but murmur_step second argument is "next block"
- this makes st_hash_uint and st_hash_end to not mix high bits of
  hash value into lower bits
- this leads to pure hash behavior on doubles and mixing hashes using
  st_hash_uint.
  It didn't matter when bins amount were prime numbers, but it hurts
  when bins are powers of two.

Mistake were created cause of attempt to co-exist Murmur1 and Murmur2
in a same code.

Change it to single hash-function implementation.
- block function is in a spirit of Murmur functions,
  but handles inter-block dependency a bit better (imho).
- final block is read in bit more optimal way on CPU with unaligned word access,
- final block is mixed in simple way,
- finalizer is taken from MurmurHash3 (it makes most of magic :) )
  (64bit finalizer is taken from
  http://zimbry.blogspot.ru/2011/09/better-bit-mixing-improving-on.html)

Also remove ST_USE_FNV1: it lacks implementation of many functions,
and looks to be abandoned

Author: Sokolov Yura aka funny_falcon <funny.falcon@gmail.com>
------------------------------------------------------------------------
r57133 | akr | 2016-12-21 14:26:35 +0900 (Wed, 21 Dec 2016) | 2 lines

[DOC] itemize values for half option of Float#round.

------------------------------------------------------------------------
r57132 | nobu | 2016-12-21 10:58:32 +0900 (Wed, 21 Dec 2016) | 4 lines

compile.c: toplevel return

* compile.c (iseq_compile_each): stop execution of the current source
  by toplevel return.  [ruby-core:36785] [Feature #4840]
------------------------------------------------------------------------
r57131 | nobu | 2016-12-21 10:29:58 +0900 (Wed, 21 Dec 2016) | 3 lines

numeric.c: rdoc of half option [ci skip]

* numeric.c (flo_round): [DOC] mention half option.  [Bug #12548]
------------------------------------------------------------------------
r57130 | nobu | 2016-12-21 10:29:57 +0900 (Wed, 21 Dec 2016) | 4 lines

numeric.c: allow nil as rounding mode option

* numeric.c (rb_num_get_rounding_option): allow nil same as the
  default behavior, per [ruby-core:77961].  [Bug #12548]
------------------------------------------------------------------------
r57129 | nobu | 2016-12-21 02:15:37 +0900 (Wed, 21 Dec 2016) | 4 lines

rdoc for r57126 [ci skip]

* ext/zlib/zlib.c: [DOC] update as keyword arguments.
  [Feature #13020]
------------------------------------------------------------------------
r57128 | svn | 2016-12-21 01:02:22 +0900 (Wed, 21 Dec 2016) | 1 line

* 2016-12-21
------------------------------------------------------------------------
r57127 | naruse | 2016-12-21 01:02:22 +0900 (Wed, 21 Dec 2016) | 1 line

suppress warning: attempt to close unfinished zstream; reset forced.
------------------------------------------------------------------------
r57126 | naruse | 2016-12-21 01:02:21 +0900 (Wed, 21 Dec 2016) | 1 line

Zlib.gzip uses kwargs instead of argc [Feature #13020]
------------------------------------------------------------------------
r57125 | nobu | 2016-12-20 17:25:03 +0900 (Tue, 20 Dec 2016) | 4 lines

io.c: update argf lineno

* io.c (argf_rewind): rewind line number in non-global ARGF
  instance.
------------------------------------------------------------------------
r57124 | nobu | 2016-12-20 17:25:02 +0900 (Tue, 20 Dec 2016) | 4 lines

io.c: update argf lineno

* io.c (argf_block_call_line): update line number in non-global
  ARGF instance.  [ruby-core:78728] [Bug #13051]
------------------------------------------------------------------------
r57123 | rhe | 2016-12-20 16:32:23 +0900 (Tue, 20 Dec 2016) | 5 lines

re.c: consider the case of RMatch::regexp is nil

Follow r49675, r57098 and r57110. Don't assume RMatch::regexp always
contains a valid Regexp instance; it will be Qnil if the MatchData is
created by rb_backref_set_string().  [ruby-core:78741] [Bug #13054]
------------------------------------------------------------------------
r57122 | rhe | 2016-12-20 15:53:45 +0900 (Tue, 20 Dec 2016) | 5 lines

string.c: add missing size_t cast

Add size_t cast to avoid signed integer overflow. r56157 ("string.c:
avoid signed integer overflow", 2016-09-13) missed this. Suppresses
UBSan.
------------------------------------------------------------------------
r57121 | rhe | 2016-12-20 15:53:44 +0900 (Tue, 20 Dec 2016) | 6 lines

array.c: do not resize to less than 0

Shrinking the Array from the block invoked by Array#select! or
Array#reject! causes the Array to be a negative number size. Ensure that
the resulting Array won't be smaller than 0.
[ruby-core:78739] [Bug #13053]
------------------------------------------------------------------------
r57120 | yuki | 2016-12-20 15:53:17 +0900 (Tue, 20 Dec 2016) | 2 lines

* gems/bundled_gems: Upgrade the did_you_mean gem to 1.1.0

------------------------------------------------------------------------
r57119 | rhe | 2016-12-20 14:26:08 +0900 (Tue, 20 Dec 2016) | 8 lines

array.c: check array length every time after yielding

Since the Array may be modified during rb_yield(), the length before
invoking the block can't be trusted. Fix possible out-of-bounds read in
Array#combination and Array#repeated_combination.

It may better to make a defensive copy of the Array, but for now let's
follow what Array#permutation does.  [ruby-core:78738] [Bug #13052]
------------------------------------------------------------------------
r57118 | rhe | 2016-12-20 14:26:07 +0900 (Tue, 20 Dec 2016) | 10 lines

proc.c: assume rb_iseq_location_t::first_lineno is always a Fixnum

Do not check for the value of rb_iseq_constant_body::line_info_table as
it is no longer related. The checks seem to be the remains from the day
before the dedicated 'first_lineno' field was introduced. Remove them.

Note, rb_iseq_constant_body::line_info_table can be NULL only when the
iseq does not contain any instructions that originate from Ruby code,
for example, an iseq created with 'proc {}' under a non-default compile
options where trace instructions are disabled.
------------------------------------------------------------------------
r57117 | svn | 2016-12-20 14:09:18 +0900 (Tue, 20 Dec 2016) | 1 line

* 2016-12-20
------------------------------------------------------------------------
r57116 | nobu | 2016-12-20 14:09:18 +0900 (Tue, 20 Dec 2016) | 4 lines

test/unit.rb: separator [ci skip]

* test/lib/test/unit.rb (ExcludesOption#setup_options): add
  separator for --excludes-dir in help message.
------------------------------------------------------------------------
r57115 | nobu | 2016-12-19 17:36:21 +0900 (Mon, 19 Dec 2016) | 4 lines

time.c: refine error message

* time.c (validate_vtm): separate validation failure messages for
  each members.
------------------------------------------------------------------------
r57114 | nobu | 2016-12-19 13:07:40 +0900 (Mon, 19 Dec 2016) | 4 lines

re.c: RB_TYPE_P

* re.c (match_backref_number, namev_to_backref_number): use
  RB_TYPE_P instead of switching by TYPE.
------------------------------------------------------------------------
r57113 | svn | 2016-12-19 12:11:58 +0900 (Mon, 19 Dec 2016) | 1 line

* 2016-12-19
------------------------------------------------------------------------
r57112 | nobu | 2016-12-19 12:11:57 +0900 (Mon, 19 Dec 2016) | 4 lines

re.c: NAME_TO_NUMBER

* re.c (namev_to_backref_number, rb_reg_regsub): extract name to
  backref number check as NAME_TO_NUMBER.
------------------------------------------------------------------------
r57111 | ktsj | 2016-12-18 21:29:34 +0900 (Sun, 18 Dec 2016) | 1 line

doc/standard_library.rdoc: Tk is removed from stdlib
------------------------------------------------------------------------
r57110 | nobu | 2016-12-18 20:43:51 +0900 (Sun, 18 Dec 2016) | 4 lines

re.c: use name_to_backref_number

* re.c (match_backref_number): use name_to_backref_number for
  casts.
------------------------------------------------------------------------
r57109 | naruse | 2016-12-18 20:28:01 +0900 (Sun, 18 Dec 2016) | 3 lines

Increase timeout

http://rubyci.s3.amazonaws.com/unstable10s/ruby-trunk/log/20161215T021909Z.fail.html.gz
------------------------------------------------------------------------
r57108 | nobu | 2016-12-18 03:04:30 +0900 (Sun, 18 Dec 2016) | 4 lines

sprintf.c: fix width underflow

* sprintf.c (rb_str_format): fix memory corruption by width
  underflow.  https://github.com/mruby/mruby/issues/3347
------------------------------------------------------------------------
r57107 | svn | 2016-12-18 01:10:57 +0900 (Sun, 18 Dec 2016) | 1 line

* 2016-12-18
------------------------------------------------------------------------
r57106 | naruse | 2016-12-18 01:10:56 +0900 (Sun, 18 Dec 2016) | 3 lines

Increase timeout

http://rubyci.org/logs/13.78.52.201/vc12-x64/ruby-trunk/log/20161217T103523Z.log.html.gz
------------------------------------------------------------------------
r57105 | rhe | 2016-12-17 17:25:34 +0900 (Sat, 17 Dec 2016) | 3 lines

compile.c: do not emit numeric literal range in void context

A fix-up for r56316. Fix stack consistency error on '1..3; nil'.
------------------------------------------------------------------------
r57104 | nobu | 2016-12-17 16:48:58 +0900 (Sat, 17 Dec 2016) | 1 line

Reapply r57093,r57094,r57097 "dtrace build fixes on FreeBSD"
------------------------------------------------------------------------
r57103 | nobu | 2016-12-17 16:48:57 +0900 (Sat, 17 Dec 2016) | 3 lines

Reapply r57092 "configure.in: repeated checks"

Needs DTRACE_OBJ when "$rb_cv_prog_dtrace_g" = rebuild, too.
------------------------------------------------------------------------
r57102 | nobu | 2016-12-17 14:27:05 +0900 (Sat, 17 Dec 2016) | 1 line

Revert r57092 "configure.in: repeated checks"
------------------------------------------------------------------------
r57101 | naruse | 2016-12-17 14:14:14 +0900 (Sat, 17 Dec 2016) | 1 line

Revert r57093,r57094,r57097 "dtrace build fixes on FreeBSD"
------------------------------------------------------------------------
r57100 | nobu | 2016-12-17 09:58:47 +0900 (Sat, 17 Dec 2016) | 4 lines

test_mailto.rb: overwritten methods

* test/uri/test_mailto.rb (URI::TestMailTo#test_to_mailtext):
  merge overwritten methods.  [Bug #10774]
------------------------------------------------------------------------
r57099 | nobu | 2016-12-17 09:58:46 +0900 (Sat, 17 Dec 2016) | 1 line

test_mailto.rb: adjust scope
------------------------------------------------------------------------
r57098 | nobu | 2016-12-17 09:52:47 +0900 (Sat, 17 Dec 2016) | 4 lines

re.c: non-regexp name reference

* re.c (rb_reg_regsub): other than regexp has no name references.
  [ruby-core:78686] [Bug #13042]
------------------------------------------------------------------------
r57097 | nobu | 2016-12-17 09:01:42 +0900 (Sat, 17 Dec 2016) | 4 lines

configure.in: fix r57093

* configure.in (RUBY_DTRACE_AVAILABLE): try -xnolibs first.
  [ruby-core:78676] [Bug #13041]
------------------------------------------------------------------------
r57096 | svn | 2016-12-17 07:57:02 +0900 (Sat, 17 Dec 2016) | 1 line

* 2016-12-17
------------------------------------------------------------------------
r57095 | nobu | 2016-12-17 07:57:01 +0900 (Sat, 17 Dec 2016) | 4 lines

fix r57089

* parse.y (parser_heredoc_identifier): fix multiline here document
  identifier condition.
------------------------------------------------------------------------
r57094 | nobu | 2016-12-16 21:28:19 +0900 (Fri, 16 Dec 2016) | 3 lines

garbage space [ci skip]

* configure.in (RUBY_DTRACE_AVAILABLE): remove a garbage space.
------------------------------------------------------------------------
r57093 | nobu | 2016-12-16 21:16:33 +0900 (Fri, 16 Dec 2016) | 5 lines

dtrace build fixes on FreeBSD

* configure.in (RUBY_DTRACE_AVAILABLE, RUBY_DTRACE_POSTPROCESS):
  incorporate dtrace build fix on FreeBSD, dtrace needs -xnolibs
  in a jail.  [ruby-core:78676] [Bug #13041]
------------------------------------------------------------------------
r57092 | nobu | 2016-12-16 20:59:57 +0900 (Fri, 16 Dec 2016) | 4 lines

configure.in: repeated checks

* configure.in (enable_dtrace): reduce repeated
  RUBY_DTRACE_AVAILABLE checks.
------------------------------------------------------------------------
r57091 | nobu | 2016-12-16 14:05:42 +0900 (Fri, 16 Dec 2016) | 4 lines

no crypt.h on FreeBSD 12

* string.c (crypt.h): crypt_r() was added in FreeBSD 12.0 but is
  declared in unistd.h.  [ruby-core:78664] [Bug #13038]
------------------------------------------------------------------------
r57090 | nobu | 2016-12-16 12:30:26 +0900 (Fri, 16 Dec 2016) | 4 lines

configure.in: no crypt.h on FreeBSD 12

* configure.in (crypt.h): crypt_r() was added in FreeBSD 12.0 but
  is declared in unistd.h.  [ruby-core:78664] [Bug #13038]
------------------------------------------------------------------------
r57089 | nobu | 2016-12-16 10:27:47 +0900 (Fri, 16 Dec 2016) | 4 lines

multiline heredoc identifier

* parse.y (parser_heredoc_identifier): reject multiline here
  document identifier, which never matches single line.
------------------------------------------------------------------------
r57088 | nobu | 2016-12-16 10:12:09 +0900 (Fri, 16 Dec 2016) | 6 lines

fix chomping newline only line

* string.c (chomp_newline): fix chomping newline only line.
  rb_enc_prev_char return NULL if no previous character and must
  not call rb_enc_ascget on it.  a patch by Ary Borenszweig
  <asterite AT gmail.com> at [ruby-core:78666].  [Bug #13037]
------------------------------------------------------------------------
r57087 | svn | 2016-12-16 01:08:34 +0900 (Fri, 16 Dec 2016) | 1 line

* 2016-12-16
------------------------------------------------------------------------
r57086 | mrkn | 2016-12-16 01:08:33 +0900 (Fri, 16 Dec 2016) | 1 line

NEWS: Fix the default rounding mode
------------------------------------------------------------------------
r57085 | nobu | 2016-12-15 21:58:59 +0900 (Thu, 15 Dec 2016) | 4 lines

parse.y: newline in heredoc identifier

* parse.y (parser_heredoc_identifier): warn newline in here
  document identifier.
------------------------------------------------------------------------
r57084 | hsbt | 2016-12-15 20:00:41 +0900 (Thu, 15 Dec 2016) | 1 line

Added entry of psych 2.2.2
------------------------------------------------------------------------
r57083 | hsbt | 2016-12-15 20:00:40 +0900 (Thu, 15 Dec 2016) | 3 lines

Update psych-2.2.2

 * It fixed only JRuby dependency issue.
------------------------------------------------------------------------
r57082 | nobu | 2016-12-15 15:22:09 +0900 (Thu, 15 Dec 2016) | 1 line

parse.y: one warning, one line [ci skip]
------------------------------------------------------------------------
r57081 | usa | 2016-12-15 02:53:20 +0900 (Thu, 15 Dec 2016) | 5 lines

Removed the obstacle to running test-all with VC14.

* test/fiddle/test_import.rb (LIBC.fprintf): VC14's `fprintf` is very distinct
  name, then, just ignore this test.

------------------------------------------------------------------------
r57080 | svn | 2016-12-15 02:49:27 +0900 (Thu, 15 Dec 2016) | 1 line

* 2016-12-15
------------------------------------------------------------------------
r57079 | usa | 2016-12-15 02:49:26 +0900 (Thu, 15 Dec 2016) | 6 lines

Fixed link error with VC14.

* win32/mkexports.rb (Exports::Mswin#each_exports): should ignore `vsprintf_s_l`
  and the like just like `vsprintf_l`.
  [ruby-dev:49899] [Bug #13033]

------------------------------------------------------------------------
r57078 | rhe | 2016-12-14 21:32:42 +0900 (Wed, 14 Dec 2016) | 9 lines

encoding.c: handle needmore error from rb_enc_precise_mbclen()

rb_enc_ascget() erroneously reports success even if the given byte
sequence is incomplete, for non-ASCII compatible encoding strings.

rb_enc_precise_mbclen() may return a negative value on error, and thus
rb_enc_ascget() must not store the return value in 'unsigned int';
otherwise the subsequent MBCLEN_CHARFOUND_P() check won't catch the
error.  [ruby-core:78646] [Bug #13034]
------------------------------------------------------------------------
r57077 | nobu | 2016-12-14 17:25:56 +0900 (Wed, 14 Dec 2016) | 5 lines

vcs.rb: no ext/date in vcs.rb

* tool/vcs.rb (VCS::GIT#export_changelog): do not require date
  extension library so that miniruby can run.
  [ruby-core:78641] [Bug #13032]
------------------------------------------------------------------------
r57076 | nobu | 2016-12-14 17:06:55 +0900 (Wed, 14 Dec 2016) | 4 lines

constify

* vm_dump.c (rb_vmdebug_debug_print_pre): constify pc argument for
  VMDEBUG.
------------------------------------------------------------------------
r57075 | nobu | 2016-12-14 16:30:41 +0900 (Wed, 14 Dec 2016) | 4 lines

parse.y: curtail scanning

* parse.y (parser_yyerror): curtail scanning range, not to exceed
  the max margin.
------------------------------------------------------------------------
r57074 | svn | 2016-12-14 13:35:29 +0900 (Wed, 14 Dec 2016) | 1 line

* 2016-12-14
------------------------------------------------------------------------
r57073 | nobu | 2016-12-14 13:35:28 +0900 (Wed, 14 Dec 2016) | 4 lines

parse.y: fix yyerror message

* parse.y (parser_yyerror): show the error line even if the error
  is at the end.
------------------------------------------------------------------------
r57072 | usa | 2016-12-13 14:17:48 +0900 (Tue, 13 Dec 2016) | 7 lines

declare `rb_w32_sysinit` in header.

* include/ruby/win32.h (rb_w32_sysinit): declare.
  [ruby-core:78444] [Bug #12994]

* ruby.c (ruby_sysinit): follow above change.

------------------------------------------------------------------------
r57071 | nobu | 2016-12-13 12:55:14 +0900 (Tue, 13 Dec 2016) | 1 line

require "irb/output-method" for StdioOutputMethod
------------------------------------------------------------------------
r57070 | nobu | 2016-12-13 12:55:13 +0900 (Tue, 13 Dec 2016) | 1 line

make-snapshot: fix circular dependency
------------------------------------------------------------------------
r57069 | hsbt | 2016-12-13 11:01:34 +0900 (Tue, 13 Dec 2016) | 1 line

Update description of XMLRPC section.
------------------------------------------------------------------------
r57068 | usa | 2016-12-13 01:18:45 +0900 (Tue, 13 Dec 2016) | 5 lines

get rid of a test failure with VC10.

* numeric.c (round_half_up, round_half_down): use `round` always because it's
  defined in this file even if doesn't exist.

------------------------------------------------------------------------
r57067 | svn | 2016-12-13 00:24:29 +0900 (Tue, 13 Dec 2016) | 1 line

* 2016-12-13
------------------------------------------------------------------------
r57066 | naruse | 2016-12-13 00:24:28 +0900 (Tue, 13 Dec 2016) | 4 lines

Use URI.decode_www_form_component [Bug #10774]

`parser` refered RFC2396_Parser, but it is separated.
test is contributed by Dominik Menke
------------------------------------------------------------------------
r57065 | naruse | 2016-12-12 23:55:15 +0900 (Mon, 12 Dec 2016) | 4 lines

st: Add 'static const'

patched by Ken Takata [ruby-core:78558]
https://github.com/k-takata/Onigmo/commit/44e3c0a16da1116be641ea807c1202434b743ace
------------------------------------------------------------------------
r57062 | naruse | 2016-12-12 22:37:27 +0900 (Mon, 12 Dec 2016) | 1 line

fix command
------------------------------------------------------------------------
r57060 | naruse | 2016-12-12 22:20:00 +0900 (Mon, 12 Dec 2016) | 3 lines

Use 7z if exist

7z can compress with higher ratio than gzip/zip.
------------------------------------------------------------------------
r57059 | kazu | 2016-12-12 22:12:08 +0900 (Mon, 12 Dec 2016) | 1 line

NEWS: Add String#match? and Symbol#match? [ci skip]
------------------------------------------------------------------------
r57058 | kazu | 2016-12-12 22:12:06 +0900 (Mon, 12 Dec 2016) | 1 line

NEWS: Use spaces instead of tab [ci skip]
------------------------------------------------------------------------
r57057 | kazu | 2016-12-12 22:12:05 +0900 (Mon, 12 Dec 2016) | 1 line

NEWS: Sort entries [ci skip]
------------------------------------------------------------------------
r57056 | nobu | 2016-12-12 16:12:07 +0900 (Mon, 12 Dec 2016) | 4 lines

string.c: fix method name in rdoc [ci skip]

* string.c (rb_str_equal): [DOC] fix fallback method name. the
  peer's == method will be used, not ===.
------------------------------------------------------------------------
r57055 | nobu | 2016-12-12 12:19:52 +0900 (Mon, 12 Dec 2016) | 1 line

test for Symbol#match?  [Feature #12898]
------------------------------------------------------------------------
r57054 | nobu | 2016-12-12 12:07:47 +0900 (Mon, 12 Dec 2016) | 4 lines

test_m17n.rb: escape

* test/ruby/test_m17n.rb (test_regexp_ascii_none): escape regexp
  meta characters.
------------------------------------------------------------------------
r57053 | nobu | 2016-12-12 11:56:12 +0900 (Mon, 12 Dec 2016) | 5 lines

String#match? and Symbol#match?

* string.c (rb_str_match_m_p): inverse of Regexp#match?.  based on
  the patch by Herwin Weststrate <herwin@snt.utwente.nl>.
  [Fix GH-1483] [Feature #12898]
------------------------------------------------------------------------
r57052 | svn | 2016-12-12 11:38:54 +0900 (Mon, 12 Dec 2016) | 1 line

* 2016-12-12
------------------------------------------------------------------------
r57051 | nobu | 2016-12-12 11:38:53 +0900 (Mon, 12 Dec 2016) | 4 lines

re.c: char boundary

* re.c (rb_reg_match_m_p): consider char boundary.  rb_str_subpos
  does not adjust to the boundary if len == 0.
------------------------------------------------------------------------
r57050 | nobu | 2016-12-11 18:20:27 +0900 (Sun, 11 Dec 2016) | 4 lines

parse.y: zero codepoints

* parse.y (parser_tokadd_utf8): relax restriction to allow zero or
  more codepoints.
------------------------------------------------------------------------
r57049 | naruse | 2016-12-11 15:13:02 +0900 (Sun, 11 Dec 2016) | 1 line

fix Zlib.gzip/gunzip document
------------------------------------------------------------------------
r57048 | naruse | 2016-12-11 03:34:07 +0900 (Sun, 11 Dec 2016) | 7 lines

Updated documentation examples for Hash#value?

The same code is used for has_value? and value?, but according to
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/43765
has_value is deprecated. Use the non-deprecated syntax in the examples.
by Herwin Weststrate <herwin@snt.utwente.nl>
fix https://github.com/ruby/ruby/pull/1491
------------------------------------------------------------------------
r57047 | naruse | 2016-12-11 03:23:33 +0900 (Sun, 11 Dec 2016) | 7 lines

Add missing :nodoc: comment

We were missing a `:nodoc:` magic comment that was making automated tools show
that this method was missing documentation, when it really didn't need to be
documented.
by Devon Estes <devon.c.estes@gmail.com>
https://github.com/ruby/ruby/pull/1482 fix GH-1482
------------------------------------------------------------------------
r57046 | svn | 2016-12-11 02:47:06 +0900 (Sun, 11 Dec 2016) | 1 line

* 2016-12-11
------------------------------------------------------------------------
r57045 | naruse | 2016-12-11 02:47:04 +0900 (Sun, 11 Dec 2016) | 8 lines

Merge Onigmo 6.0.0

* https://github.com/k-takata/Onigmo/blob/Onigmo-6.0.0/HISTORY
* fix for ruby 2.4: https://github.com/k-takata/Onigmo/pull/78
* suppress warning: https://github.com/k-takata/Onigmo/pull/79
* include/ruby/oniguruma.h: include onigmo.h.
* template/encdb.h.tmpl: ignore duplicated definition of EUC-CN in
  enc/euc_kr.c. It is defined in enc/gb2313.c with CRuby macro.
------------------------------------------------------------------------
r57044 | mrkn | 2016-12-10 17:56:05 +0900 (Sat, 10 Dec 2016) | 5 lines

bigdecimal: version 1.3.0.pre.2

Import bigdecimal version 1.3.0.pre.2.  The full commit log is here:

  https://github.com/ruby/bigdecimal/compare/v1.3.0.pre...v1.3.0.pre.2
------------------------------------------------------------------------
r57043 | nobu | 2016-12-10 17:54:40 +0900 (Sat, 10 Dec 2016) | 4 lines

stringio.c: chomp CR

* ext/stringio/stringio.c (strio_getline): chomp CR not only LF,
  as well as String#chomp.
------------------------------------------------------------------------
r57042 | nobu | 2016-12-10 17:26:40 +0900 (Sat, 10 Dec 2016) | 5 lines

zlib.c: replace with substring

* ext/zlib/zlib.c (zstream_discard_input): replace with unread
  portion substring, not modifying the input buffer directly.
  [ruby-core:78567] [Bug #13021]
------------------------------------------------------------------------
r57041 | rhe | 2016-12-10 17:12:02 +0900 (Sat, 10 Dec 2016) | 9 lines

openssl: import v2.0.1

Import Ruby/OpenSSL 2.0.1. The full commit history since 2.0.0 (imported
at r56946) can be found at:

  https://github.com/ruby/openssl/compare/v2.0.0...v2.0.1

This release contains only bug fixes. Note, the first two commits since
v2.0.0 are already imported at r56953 to make Travis and RubyCI green.
------------------------------------------------------------------------
r57040 | mrkn | 2016-12-10 16:49:15 +0900 (Sat, 10 Dec 2016) | 6 lines

bigdecimal: import version 1.3.0.pre

Import bigdecimal version 1.3.0.pre.  The full commit log of this
changes can be found at:

    https://github.com/ruby/bigdecimal/compare/5c43a9e...v1.3.0.pre
------------------------------------------------------------------------
r57039 | nobu | 2016-12-10 15:25:26 +0900 (Sat, 10 Dec 2016) | 1 line

Fix grammer [ci skip]
------------------------------------------------------------------------
r57038 | mrkn | 2016-12-10 11:36:16 +0900 (Sat, 10 Dec 2016) | 10 lines

internal.h: change the default rounding mode to half-up

* internal.h (ROUND_DEFAULT): changed to RUBY_NUM_ROUND_HALF_UP.
  [Bug #12958] [ruby-core:78204]

* test/ruby/test_integer.rb: fix assertions for the above change.

* test/ruby/test_rational.rb: ditto.

* test/test_mathn.rb: ditto.
------------------------------------------------------------------------
r57037 | kazu | 2016-12-10 11:16:55 +0900 (Sat, 10 Dec 2016) | 5 lines

Fix document of gunzip and gzip [ci skip]

- fix a typo (`GzipReadr` -> `GzipReader`)
- `Zlib::GzipReader.new` does not take block
- fix encoding
------------------------------------------------------------------------
r57036 | svn | 2016-12-10 07:45:39 +0900 (Sat, 10 Dec 2016) | 1 line

* 2016-12-10
------------------------------------------------------------------------
r57035 | naruse | 2016-12-10 07:45:39 +0900 (Sat, 10 Dec 2016) | 3 lines

Zlib.gzip and Zlib.gunzip [Feature #13020]

Encode and Decode gzip data without creating files.
------------------------------------------------------------------------
r57034 | naruse | 2016-12-10 07:45:38 +0900 (Sat, 10 Dec 2016) | 4 lines

Suppress warning: this use of "defined" may not be portable

Use of defined() in macro expansion is considered non portable.
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01577.html
------------------------------------------------------------------------
r57033 | nobu | 2016-12-09 12:25:20 +0900 (Fri, 09 Dec 2016) | 4 lines

ruby.h: add prefix

* include/ruby/ruby.h (RB_TEST, RB_NIL_P): prefix RB to get rid of
  name conflicts with other headers.
------------------------------------------------------------------------
r57032 | nobu | 2016-12-09 11:59:55 +0900 (Fri, 09 Dec 2016) | 1 line

Adjust indent [ci skip]
------------------------------------------------------------------------
r57031 | svn | 2016-12-09 11:57:58 +0900 (Fri, 09 Dec 2016) | 1 line

* 2016-12-09
------------------------------------------------------------------------
r57030 | nobu | 2016-12-09 11:57:57 +0900 (Fri, 09 Dec 2016) | 6 lines

remove core#hash_merge_ary

* compile.c (compile_array_): remove m_core_hash_merge_ary which
  seems unreachable, and wrong number of arguments.

* vm.c (m_core_hash_merge_ary): removed because it is never used.
------------------------------------------------------------------------
r57029 | nobu | 2016-12-08 22:51:34 +0900 (Thu, 08 Dec 2016) | 4 lines

compile.c: static_literal_value

* compile.c (static_literal_value): separate getter from predicate
  function.
------------------------------------------------------------------------
r57028 | kazu | 2016-12-08 21:58:26 +0900 (Thu, 08 Dec 2016) | 10 lines

extension.rdoc: add ANYARGS to method definitions

* doc/extension.rdoc (rb_define_method, rb_define_singleton_method,
  rb_define_private_method, rb_define_protected_method,
  rb_define_module_function, rb_define_global_function): set ANYARGS
  as arguments to their underlying functions.

[ci skip]
Patch by: Dmitry Gritsay <unseductable@gmail.com>
[Fix GH-1473]
------------------------------------------------------------------------
r57027 | nobu | 2016-12-08 17:31:01 +0900 (Thu, 08 Dec 2016) | 5 lines

ruby-lex.rb: fix for label

* lib/irb/ruby-lex.rb (identify_identifier): treat identifier just
  followed by a colon as a lable.  this is not a precise solution
  but enough for the time being.  [ruby-core:78526] [Bug #13012]
------------------------------------------------------------------------
r57026 | nobu | 2016-12-08 17:25:21 +0900 (Thu, 08 Dec 2016) | 4 lines

test/unit.rb: fix -n option

* test/lib/test/unit.rb (non_options): turn name patterns into
  Regexps.
------------------------------------------------------------------------
r57025 | nobu | 2016-12-08 16:54:58 +0900 (Thu, 08 Dec 2016) | 5 lines

compile.c: optimize literal nodes

* compile.c (static_literal_node_p): optimize literal nodes for
  true, false, and nil, which are static literals in specific
  nodes but not in NODE_LIT.
------------------------------------------------------------------------
r57024 | nobu | 2016-12-08 15:19:06 +0900 (Thu, 08 Dec 2016) | 4 lines

vm.c: check type of hash to merge

* vm.c (core_hash_merge): check the type of the target hash to
  merge.  [ruby-core:78536] [Bug #13015]
------------------------------------------------------------------------
r57023 | nobu | 2016-12-08 14:16:33 +0900 (Thu, 08 Dec 2016) | 4 lines

vm_insnhelper.c: zsuper in refinements

* vm_insnhelper.c (vm_call_zsuper): prevent infinite recursion
  zsuper in refinements.  [ruby-core:77161] [Bug #12729]
------------------------------------------------------------------------
r57022 | nobu | 2016-12-08 09:45:13 +0900 (Thu, 08 Dec 2016) | 4 lines

parse.y: ripper generic input

* parse.y (ripper_initialize): allow generic input as source, if
  it has #gets method.
------------------------------------------------------------------------
r57021 | shugo | 2016-12-08 08:47:59 +0900 (Thu, 08 Dec 2016) | 12 lines

Add volatile to a suppress warning.

Without the fix, the following warning is shown:

    compiling cont.c
    cont.c: In function 'rb_callcc':
    cont.c:949:39: warning: passing argument 1 of 'cont_capture' discards 'volatile' qualifier from pointer target type [-Wdiscarded-qualifiers]
	 volatile VALUE val = cont_capture(&called);
					   ^
    cont.c:473:1: note: expected 'int * volatile' but argument is of type 'volatile int *'
     cont_capture(int *volatile stat)
     ^
------------------------------------------------------------------------
r57020 | shugo | 2016-12-08 08:27:51 +0900 (Thu, 08 Dec 2016) | 5 lines

Add clang volatile fixes from FreeBSD and NetBSD.

Use volatile instead of optnone to avoid optimization which causes
segmentation faults.
Patch by Dimitry Andric.  [ruby-core:78531] [Bug #13014]
------------------------------------------------------------------------
r57019 | svn | 2016-12-08 00:30:02 +0900 (Thu, 08 Dec 2016) | 1 line

* 2016-12-08
------------------------------------------------------------------------
r57018 | kazu | 2016-12-08 00:30:01 +0900 (Thu, 08 Dec 2016) | 9 lines

fix typo in `IO#write_nonblock` example [ci skip]

This example explains when writing a value greater than 65536,
so the value specify must be greater than 65536.

This seems to be wrong in cee7f69

Patch by: Yuji Yaginuma <yuuji.yaginuma@gmail.com>
[Fix GH-1496]
------------------------------------------------------------------------
r57017 | nobu | 2016-12-07 23:39:24 +0900 (Wed, 07 Dec 2016) | 4 lines

ruby.c: dump option

* ruby.c (process_options): dump specified informations all, not
  only first one.
------------------------------------------------------------------------
r57016 | nobu | 2016-12-07 23:26:44 +0900 (Wed, 07 Dec 2016) | 4 lines

assertions.rb: defered message in FailDesc

* test/lib/test/unit/assertions.rb (FailDesc): allow to defer
  message generation, as well as other assertion methods.
------------------------------------------------------------------------
r57015 | svn | 2016-12-07 21:59:49 +0900 (Wed, 07 Dec 2016) | 1 line

* properties.
------------------------------------------------------------------------
r57014 | shugo | 2016-12-07 21:59:48 +0900 (Wed, 07 Dec 2016) | 5 lines

Delay Utils.getservername until needed.

There is no need to call Utils.getservername when the :ServerName option is
specified, so delay Utils.getservername until needed to avoid unnecessary
DNS lookups.  [ruby-core:78492] [Bug #13007]
------------------------------------------------------------------------
r57013 | nobu | 2016-12-07 17:44:34 +0900 (Wed, 07 Dec 2016) | 6 lines

compile.c: remove dead code

* compile.c (DECL_ANCHOR, INIT_ANCHOR): make anchor name an array
  and unassignable.

* compile.c (iseq_compile_each): ret is never 0.
------------------------------------------------------------------------
r57012 | nobu | 2016-12-07 13:25:50 +0900 (Wed, 07 Dec 2016) | 4 lines

hash.c: hash should be long

* hash.c (any_hash): should return `long', because ruby assumes
  the hash value of the object id of an object is `long'.
------------------------------------------------------------------------
r57011 | nobu | 2016-12-07 12:19:33 +0900 (Wed, 07 Dec 2016) | 4 lines

win32.c: suppress warning

* win32/win32.c (rb_w32_home_dir): suppress sequence-point
  warning, REALLOC_N re-assigns the variable.
------------------------------------------------------------------------
r57010 | shugo | 2016-12-07 11:41:00 +0900 (Wed, 07 Dec 2016) | 3 lines

Extend timeout for Solaris unstable10s.

http://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10s/ruby-trunk/log/20161206T181910Z.fail.html.gz
------------------------------------------------------------------------
r57009 | nobu | 2016-12-07 11:19:29 +0900 (Wed, 07 Dec 2016) | 4 lines

file.c: cygwin behavior

* file.c: recent cygwin hides NTFS specific features.
  [ruby-core:78497] [Bug #13008]
------------------------------------------------------------------------
r57008 | svn | 2016-12-07 11:03:41 +0900 (Wed, 07 Dec 2016) | 1 line

* 2016-12-07
------------------------------------------------------------------------
r57007 | usa | 2016-12-07 11:03:40 +0900 (Wed, 07 Dec 2016) | 4 lines

const pointer is not able to be free.

* win32/file.c (rb_default_home_dir): should not be marked as const.

------------------------------------------------------------------------
r57006 | kazu | 2016-12-07 00:33:49 +0900 (Wed, 07 Dec 2016) | 4 lines

untabify [ci skip]

based on the patch by W <wolf@wolfsden.cz>
[Fix GH-1497]
------------------------------------------------------------------------
r57005 | kazu | 2016-12-07 00:33:47 +0900 (Wed, 07 Dec 2016) | 1 line

Fix indent [ci skip]
------------------------------------------------------------------------
r57004 | svn | 2016-12-06 22:57:57 +0900 (Tue, 06 Dec 2016) | 1 line

* properties.
------------------------------------------------------------------------
r57003 | kou | 2016-12-06 22:57:56 +0900 (Tue, 06 Dec 2016) | 2 lines

rexml: REXML::Element#[] accepts String or Symbol as attribute name

------------------------------------------------------------------------
r57002 | nobu | 2016-12-06 22:57:23 +0900 (Tue, 06 Dec 2016) | 6 lines

Make `trace_running` an integer flag again

* vm_core.h (rb_vm_struct): trace_running should be a counter but
  not a bit flag.  [ruby-core:78514] [Bug #13011]

Author: David Rodriguez <deivid.rodriguez@gmail.com>
------------------------------------------------------------------------
r57001 | mrkn | 2016-12-06 22:40:31 +0900 (Tue, 06 Dec 2016) | 9 lines

array.c, enum.c: change sum algorithm

* array.c (rb_ary_sum): change the algorithm to Kahan-Babuska balancing
  summation to be more precise.
  [Feature #12871] [ruby-core:77771]

* enum.c (sum_iter, enum_sum): ditto.

* test_array.rb, test_enum.rb: add an assertion for the above change.
------------------------------------------------------------------------
r57000 | mrkn | 2016-12-06 21:54:19 +0900 (Tue, 06 Dec 2016) | 6 lines

numeric.c: fix exception message for nil rounding

* numeric.c (rb_num_get_rounding_option): fix exception message
  for the case of nil rounding mode.

* test_float.rb: add an assertion for the above change.
------------------------------------------------------------------------
r56999 | kazu | 2016-12-06 21:49:46 +0900 (Tue, 06 Dec 2016) | 4 lines

Fix typos

Patch by: Koichi ITO <koic.ito@gmail.com>
[Fix GH-1498]
------------------------------------------------------------------------
r56998 | hsbt | 2016-12-06 20:57:19 +0900 (Tue, 06 Dec 2016) | 4 lines

Update latest bundled gems.

  * Rake 12.0.0
  * minitest 5.10.1
------------------------------------------------------------------------
r56997 | nobu | 2016-12-06 16:46:14 +0900 (Tue, 06 Dec 2016) | 4 lines

EPERM by symlink

* test/ruby/test_file.rb (test_realpath_encoding): EPERM can raise
  on cygwin.
------------------------------------------------------------------------
r56996 | nobu | 2016-12-06 16:21:55 +0900 (Tue, 06 Dec 2016) | 4 lines

file.c: isADS

* file.c (isADS): add macro to tell if Alternate Data Stream
  separator, to distinguish from drive letter.
------------------------------------------------------------------------
r56995 | nobu | 2016-12-06 15:16:57 +0900 (Tue, 06 Dec 2016) | 4 lines

EPERM by symlink

* test/ruby/test_file_exhaustive.rb (symlinkfile): EPERM can raise
  on cygwin.
------------------------------------------------------------------------
r56994 | rhe | 2016-12-06 15:14:17 +0900 (Tue, 06 Dec 2016) | 5 lines

re.c: check that MatchData is initialized

Follow r16757 ("* re.c: fix SEGV by Regexp.allocate.names,
Match.allocate.names, etc.", 2008-06-02). Don't do null dereference if
MatchData#hash or #== is called against an uninitialized instance.
------------------------------------------------------------------------
r56993 | rhe | 2016-12-06 15:14:16 +0900 (Tue, 06 Dec 2016) | 4 lines

test/ruby/test_hash.rb: suppress syntax warning

Avoid "ambiguous first argument; put parentheses or a space even after
`-' operator" warning in assert_in_out_err. Fixes r56992.
------------------------------------------------------------------------
r56992 | nobu | 2016-12-06 13:43:48 +0900 (Tue, 06 Dec 2016) | 23 lines

switching hash removal

* st.h (struct st_hash_type): Remove strong_hash.
  (struct st_table): Remove inside_rebuild_p and curr_hash.
* st.c (do_hash): Use type->hash instead of curr_hash.
  (make_tab_empty): Remove setting up curr_hash.
  (st_init_table_with_size): Remove setting up inside_rebuild_p.
  (rebuild_table): Remove clearing inside_rebuild_p.
  (reset_entry_hashes, HIT_THRESHOULD_FOR_STRONG_HASH): Remove code
  recognizing a denial attack and switching to strong hash.
* hash.c (rb_dbl_long_hash, rb_objid_hash, rb_ident_hash): Use
  rb_hash_start to randomize the hash.
  (str_seed): Remove.
  (any_hash): Remove strong_p and use always rb_str_hash for
  strings.
  (any_hash_weak, rb_any_hash_weak): Remove.
  (st_hash_type objhash): Remove rb_any_hash_weak.

based on the patch by Vladimir N Makarov <vmakarov@redhat.com> at
[ruby-core:78490].  [Bug #13002]

* test/ruby/test_hash.rb (test_wrapper): objects other than special
  constants should be able to be wrapped.
------------------------------------------------------------------------
r56991 | nobu | 2016-12-06 12:36:52 +0900 (Tue, 06 Dec 2016) | 5 lines

remove unnecessary variable

* st.c (do_hash): remove unnecessary variable and cast.

* hash.c, numeric.c, st.c: adjust style and indent.
------------------------------------------------------------------------
r56990 | nobu | 2016-12-06 12:25:21 +0900 (Tue, 06 Dec 2016) | 4 lines

random.c: pack hash seeds

* random.c (seed_keys_t, init_seed): pack seed for rb_hash_start and
  rb_memhash, and fill them at once.
------------------------------------------------------------------------
r56989 | svn | 2016-12-06 08:37:25 +0900 (Tue, 06 Dec 2016) | 1 line

* 2016-12-06
------------------------------------------------------------------------
r56988 | shugo | 2016-12-06 08:37:25 +0900 (Tue, 06 Dec 2016) | 1 line

Add a comment.
------------------------------------------------------------------------
r56987 | kazu | 2016-12-05 21:35:03 +0900 (Mon, 05 Dec 2016) | 1 line

Remove closed checks and use `&.`
------------------------------------------------------------------------
r56986 | kazu | 2016-12-05 21:35:02 +0900 (Mon, 05 Dec 2016) | 1 line

NEWS: mention chomp option of String and StringIO
------------------------------------------------------------------------
r56985 | shugo | 2016-12-05 20:10:05 +0900 (Mon, 05 Dec 2016) | 5 lines

Don't insert an entry to loading_tbl if another thread succeed to load.

If rb_thread_shield_wait() returns Qfalse, the file has been successfully
loaded by another thread, so there is no need to insert a new entry into
loading_tbl.  [ruby-core:78464] [Bug #12999]
------------------------------------------------------------------------
r56984 | nobu | 2016-12-05 09:03:45 +0900 (Mon, 05 Dec 2016) | 4 lines

random.c: private rand

* random.c (rb_random_ulong_limited): do not call private method
  rand.  [ruby-dev:49892] [Misc #13003]
------------------------------------------------------------------------
r56983 | svn | 2016-12-05 08:14:47 +0900 (Mon, 05 Dec 2016) | 1 line

* 2016-12-05
------------------------------------------------------------------------
r56982 | naruse | 2016-12-05 08:14:46 +0900 (Mon, 05 Dec 2016) | 4 lines

Increase timeout of TestRequire#test_require_with_loaded_features_pop

unstable10s fails it because of timeout
http://rubyci.s3.amazonaws.com/unstable10s/ruby-trunk/log/20161201T161908Z.fail.html.gz
------------------------------------------------------------------------
r56981 | nobu | 2016-12-04 17:50:29 +0900 (Sun, 04 Dec 2016) | 5 lines

class.c: missing unknown_keyword_error

* class.c (rb_get_kwargs): when values are stored, corresponding
  keys have been remove from the keyword hash, and the hash should
  be empty in that case.  [ruby-dev:49893] [Bug #13004]
------------------------------------------------------------------------
r56980 | nobu | 2016-12-04 17:50:28 +0900 (Sun, 04 Dec 2016) | 5 lines

extension.rdoc: fix rb_get_kwargs [ci skip]

* doc/extension.rdoc: [DOC] optional keyword arguments are
  defaulted to Qundef.  ignored keys are kept in the hash but a
  new Hash is not created.  [ruby-dev:49893] [Bug #13004]
------------------------------------------------------------------------
r56979 | ktsj | 2016-12-04 14:40:18 +0900 (Sun, 04 Dec 2016) | 4 lines

Revert changes on rb_frame_method_id_and_class()

r56593 introduced backwards incompatible changes in the API.
[ruby-core:78471] [Feature #12747]
------------------------------------------------------------------------
r56978 | shugo | 2016-12-04 14:05:54 +0900 (Sun, 04 Dec 2016) | 1 line

Specify the socktype explicitly.
------------------------------------------------------------------------
r56977 | shugo | 2016-12-04 13:53:33 +0900 (Sun, 04 Dec 2016) | 1 line

Use 127.0.0.1 if getaddrinfo fails.
------------------------------------------------------------------------
r56976 | duerst | 2016-12-04 10:58:54 +0900 (Sun, 04 Dec 2016) | 10 lines

remove special processing for U+03B9/U+03BC/U+A64B

* enc/unicode.c: Remove special processing for U+03B9/U+03BC/U+A64B
  (GREEK SMALL LETTERs IOTA/MU, CYRILLIC SMALL LETTER MONOGRAPH UK)
  from onigenc_unicode_case_map and simplify code.

* enc/unicode/case-folding.rb: Remove check for U+03B9/U+03BC/U+A64B.

This and the previous few related commits make sure that we won't hit
the equivalent of bug #12990 anymore for future updates of Unicode versions.
------------------------------------------------------------------------
r56975 | duerst | 2016-12-04 10:17:34 +0900 (Sun, 04 Dec 2016) | 6 lines

Reorder codepoints in some entries of CaseUnfold_11_Table

* enc/unicode/case-folding.rb: Reorder codepoints so that the upper-case
  mapping comes first.
* enc/unicode/9.0.0/casefold.h: Codepoints reordered, upper-case mapping
  flag added.
------------------------------------------------------------------------
r56974 | svn | 2016-12-04 00:41:15 +0900 (Sun, 04 Dec 2016) | 1 line

* 2016-12-04
------------------------------------------------------------------------
r56973 | shugo | 2016-12-04 00:41:14 +0900 (Sun, 04 Dec 2016) | 3 lines

Use IPv6 if it's preferred.

I hope this fix makes tests faster on Windows.
------------------------------------------------------------------------
r56972 | nobu | 2016-12-03 23:18:03 +0900 (Sat, 03 Dec 2016) | 3 lines

string.c: chomp option

* string.c (rb_str_enumerate_lines): implement chomp option.
------------------------------------------------------------------------
r56971 | kazu | 2016-12-03 20:18:44 +0900 (Sat, 03 Dec 2016) | 8 lines

Cleanup ruby method definitions in hash.c

Always add a space between a comma and the next element. These spaces
were there sometimes, but not always. This keeps to code consistent.

Patch by: Herwin Weststrate <herwin@snt.utwente.nl>

[ruby-core:78297] [Misc #12977] [GH-1492]
------------------------------------------------------------------------
r56970 | nobu | 2016-12-03 20:01:25 +0900 (Sat, 03 Dec 2016) | 3 lines

stringio: chomp option

* ext/stringio/stringio.c (strio_getline): implement chomp option.
------------------------------------------------------------------------
r56969 | nobu | 2016-12-03 20:01:24 +0900 (Sat, 03 Dec 2016) | 4 lines

test_stringio.rb: paragraph mode

* test/stringio/test_stringio.rb (test_gets, test_each):
  assertions for paragraph mode.
------------------------------------------------------------------------
r56968 | duerst | 2016-12-03 16:18:41 +0900 (Sat, 03 Dec 2016) | 5 lines

add tests againts regressions for upcoming codepoint reordering in unfolding table

* test/ruby/enc/test_case_mapping.rb: Add method test_reorder_unfold to test against
  problems when reordering codepoints in some entries in
  CaseUnfold_11_Type CaseUnfold_11_Table.
------------------------------------------------------------------------
r56967 | svn | 2016-12-03 14:09:10 +0900 (Sat, 03 Dec 2016) | 1 line

* 2016-12-03
------------------------------------------------------------------------
r56966 | duerst | 2016-12-03 14:09:09 +0900 (Sat, 03 Dec 2016) | 5 lines

change test class name because it is not only about folding

* test/ruby/enc/test_case_comprehensive.rb: Change test class name from
  TestComprehensiveCaseFold to TestComprehensiveCaseMapping because the
  tests are about mapping in general, not only folding
------------------------------------------------------------------------
r56965 | nobu | 2016-12-02 15:12:56 +0900 (Fri, 02 Dec 2016) | 1 line

test/ruby/test_string.rb: ensure restoring $/
------------------------------------------------------------------------
r56964 | nobu | 2016-12-02 12:33:54 +0900 (Fri, 02 Dec 2016) | 4 lines

parse.y: simplify parsing utf-8 string

* parse.y (parser_tokadd_codepoint): move error checks and add
  char.
------------------------------------------------------------------------
r56963 | nobu | 2016-12-02 11:47:11 +0900 (Fri, 02 Dec 2016) | 4 lines

parse.y: relax spaces

* parse.y (parser_tokadd_utf8): relax restriction spaces inside
  "\u{...}".
------------------------------------------------------------------------
r56962 | rhe | 2016-12-02 11:24:45 +0900 (Fri, 02 Dec 2016) | 5 lines

re.c: count associated Regexp object in MatchData#hash

Don't discard the hash value computed for the regexp object. It seems it
was simply missed out in r24754, when MatchData#hash was initially
implemented.
------------------------------------------------------------------------
r56961 | svn | 2016-12-02 02:43:42 +0900 (Fri, 02 Dec 2016) | 1 line

* 2016-12-02
------------------------------------------------------------------------
r56960 | naruse | 2016-12-02 02:43:41 +0900 (Fri, 02 Dec 2016) | 1 line

Remove unused variable
------------------------------------------------------------------------
r56959 | naruse | 2016-12-01 23:18:32 +0900 (Thu, 01 Dec 2016) | 3 lines

String#unpack1 [Feature #12752]

Returns the first value of String#unpack.
------------------------------------------------------------------------
r56958 | usa | 2016-12-01 22:20:47 +0900 (Thu, 01 Dec 2016) | 4 lines

Remove `offset:` from `Array#pack`

* pack.c (pack_pack): can use `@` instead of `offset:`.

------------------------------------------------------------------------
r56957 | usa | 2016-12-01 22:08:20 +0900 (Thu, 01 Dec 2016) | 5 lines

Supports `buffer` and `offset` in `Array#pack`

* pack.c (pack_pack): Supports `buffer` and `offset` in `Array#pack`.
  [Feature #12754] [ruby-dev:49798]

------------------------------------------------------------------------
r56956 | nobu | 2016-12-01 17:26:39 +0900 (Thu, 01 Dec 2016) | 4 lines

parse.y: reject invalid codepoint

* parse.y (parser_tokadd_codepoint): reject invalid codepoint,
  surrogate blocks and surrogate pair, as well as mruby.
------------------------------------------------------------------------
r56955 | hsbt | 2016-12-01 14:24:00 +0900 (Thu, 01 Dec 2016) | 4 lines

Update bundled_gems

  * minitest-5.10.0
  * test-unit-3.2.3
------------------------------------------------------------------------
r56954 | shugo | 2016-12-01 13:51:42 +0900 (Thu, 01 Dec 2016) | 10 lines

Wait until excpetion handling is ready.

Because RubyCI on Solaris 10 failed as follows:

    1) Failure:
  TestProcess#test_execopts_redirect_open_fifo_interrupt_raise [/export/home/rubyci/unstable10s/tmp/build/20161130T201909Z/ruby/test/ruby/test_process.rb:646]:
  <"ok\n"> expected but was
  <"">.

The argument of sleep (0.5) can be smaller, but I'm not sure.
------------------------------------------------------------------------
r56953 | rhe | 2016-12-01 13:42:10 +0900 (Thu, 01 Dec 2016) | 27 lines

openssl: import fixes from upstream

Import the following two commits from upstream:

  commit 72126d6c8b88abd69c3565fc3bbbd5ed1e401611
  Author: Kazuki Yamaguchi <k@rhe.jp>
  Date:   Thu Dec 1 22:27:03 2016 +0900

      pkey: check existence of EVP_PKEY_get0()

      EVP_PKEY_get0() did not exist in early OpenSSL 0.9.8 series. So define
      ourselves if needed.

  commit 94a1c4e0c5705ad1e9a4ca08cacaa6cba8b1e6f5
  Author: Kazuki Yamaguchi <k@rhe.jp>
  Date:   Thu Dec 1 22:13:22 2016 +0900

      test/test_cipher: fix test with OpenSSL 1.0.1 before 1.0.1d

      Set the authentication tag before the AAD when decrypting.

      Before OpenSSL commit 96f7fafa2431 ("Don't require tag before ciphertext
      in AESGCM mode", 2012-10-16, at OpenSSL_1_0_1-stable branch, included in
      OpenSSL 1.0.1d), the authentication tag must be set before any calls of
      EVP_CipherUpdate().

They should fix build on CentOS 5 and Ubuntu 12.04 respectively.
------------------------------------------------------------------------
r56952 | nobu | 2016-12-01 09:34:42 +0900 (Thu, 01 Dec 2016) | 1 line

Use offsetof macro and shrink table size
------------------------------------------------------------------------
r56951 | nobu | 2016-12-01 09:34:41 +0900 (Thu, 01 Dec 2016) | 1 line

constify CaseMappingSpecials
------------------------------------------------------------------------
r56950 | svn | 2016-12-01 02:29:20 +0900 (Thu, 01 Dec 2016) | 1 line

* 2016-12-01
------------------------------------------------------------------------
r56949 | naruse | 2016-12-01 02:29:19 +0900 (Thu, 01 Dec 2016) | 22 lines

Regexp supports Unicoe 9.0.0's \X

* meta character \X matches Unicode 9.0.0 characters with some workarounds
  for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences.
  [Feature #12831] [ruby-core:77586]

The term "character" can have many meanings bytes, codepoints, combined
characters, and so on. "grapheme cluster" is highest one of such words,
which means user-perceived characters.
Unicode Standard Annex #29 UNICODE TEXT SEGMENTATION specifies how to
handle grapheme clusters (extended grapheme cluster).
But some specs aren't updated to current situation because Unicode Emoji
is rapidly extended without well definition.
It breaks the precondition of UTR#29 "Grapheme cluster boundaries can be
easily tested by looking at immediately adjacent characters". (the
sentence will be removed in the next version)
Though some of its detail are described in Unicode Technical Report #51
UNICODE EMOJI but it is not merged into UTR#29 yet.

http://unicode.org/reports/tr29/
http://unicode.org/reports/tr51/
http://unicode.org/Public/emoji/4.0/
------------------------------------------------------------------------
r56948 | nobu | 2016-11-30 23:54:09 +0900 (Wed, 30 Nov 2016) | 4 lines

ossl.c: cast

* ext/openssl/ossl.c (ossl_pem_passwd_cb): cast to int.  it's safe
  because len does not exceed int max_len.
------------------------------------------------------------------------
r56947 | nobu | 2016-11-30 23:43:43 +0900 (Wed, 30 Nov 2016) | 4 lines

parse.y: refine error message

* parse.y (parser_tokadd_utf8): refine error message at bad char
  in unicode escape, "invalid" instead of "unterminated".
------------------------------------------------------------------------
r56946 | rhe | 2016-11-30 23:41:46 +0900 (Wed, 30 Nov 2016) | 6 lines

openssl: import v2.0.0

Import Ruby/OpenSSL 2.0.0. The full commit history since 2.0.0 beta.2
(imported at r56098) can be found at:

  https://github.com/ruby/openssl/compare/v2.0.0.beta.2...v2.0.0
------------------------------------------------------------------------
r56945 | hsbt | 2016-11-30 23:24:12 +0900 (Wed, 30 Nov 2016) | 3 lines

Fixed error with `make install`

  rbinstall.rb couldn't load "psych/versions".
------------------------------------------------------------------------
r56944 | hsbt | 2016-11-30 22:55:02 +0900 (Wed, 30 Nov 2016) | 6 lines

Update psych-2.2.1

  It fixed segmentation fault related with GC.
  https://github.com/ruby/psych/pull/296

  and removed deprecated code of Ruby 1.8.
------------------------------------------------------------------------
r56943 | nobu | 2016-11-30 22:09:51 +0900 (Wed, 30 Nov 2016) | 4 lines

parse.y: parser_tokadd_codepoint

* parse.y (parser_tokadd_codepoint): extract from
  parser_tokadd_utf8.
------------------------------------------------------------------------
r56942 | nobu | 2016-11-30 22:09:50 +0900 (Wed, 30 Nov 2016) | 3 lines

parse.y: brace constants

* parse.y (parser_tokadd_utf8): make open/close braces constant.
------------------------------------------------------------------------
r56941 | duerst | 2016-11-30 17:25:46 +0900 (Wed, 30 Nov 2016) | 14 lines

fix uppercasing for U+A64B, CYRILLIC SMALL LETTER MONOGRAPH UK

* enc/unicode.c: Add U+A64B to the special cases 03B9 and 03BC
  at the end of onigenc_unicode_case_map (Bug #12990).

* enc/unicode/case-folding.rb: Add U+A64B to the special cases
  03B9 and 03BC. Add a comment pointing to enc/unicode.c.
  Change warnings to exceptions for unpredicted cases,
  because this would have been more easily noticed
  (the warning was not noticed when upgrading to Unicode 9.0.0).

* test/ruby/enc/test_case_comprehensive.rb: Remove temporary
  exclusion of U+A64B from testing.

------------------------------------------------------------------------
r56940 | nobu | 2016-11-30 10:40:11 +0900 (Wed, 30 Nov 2016) | 4 lines

parse.y: no warning for lambda

* parse.y (parser_yylex): do not warn parentheses of lambda
  argument list, because there is no name.
------------------------------------------------------------------------
r56939 | shugo | 2016-11-30 10:22:05 +0900 (Wed, 30 Nov 2016) | 1 line

Supress warnings.
------------------------------------------------------------------------
r56938 | tenderlove | 2016-11-30 02:06:35 +0900 (Wed, 30 Nov 2016) | 28 lines

Stop reading past the end of `ivptr` array

If you have code like this:

```ruby
class A
  def initialize
    @a = nil
    @b = nil
    @c = nil
    @d = nil
    @e = nil
  end
end

x = A.new
y = x.clone
100.times { |z| x.instance_variable_set(:"@foo#{z}", nil) }
puts y.inspect
```

`x` and `y` will share `iv_index_tbl` hashes.  However, the size of the
hash will grow larger than the number if entries in `ivptr` in `y`.
Before this commit, `rb_ivar_count` would use the size of the hash to
determine how far to read in to the array, but this means that it could
read past the end of the array and cause the program to segv

[ruby-core:78403]
------------------------------------------------------------------------
r56937 | nobu | 2016-11-30 01:06:54 +0900 (Wed, 30 Nov 2016) | 1 line

get rid of ambiguous parentheses warnings
------------------------------------------------------------------------
r56936 | rhe | 2016-11-30 00:48:47 +0900 (Wed, 30 Nov 2016) | 4 lines

webrick: don't use OpenSSL::TestUtils from webrick tests

Follow net/http and open-uri. Don't rely on the constants/methods from
OpenSSL::TestUtils.
------------------------------------------------------------------------
r56935 | rhe | 2016-11-30 00:48:46 +0900 (Wed, 30 Nov 2016) | 3 lines

open-uri: don't use OpenSSL::TestUtils from open-uri tests

Follow net/http. Define own test DH parameters and use.
------------------------------------------------------------------------
r56934 | rhe | 2016-11-30 00:48:45 +0900 (Wed, 30 Nov 2016) | 5 lines

net/http: don't use OpenSSL::TestUtils from test code

Make test code independent of test/openssl/utils.rb. The development of
openssl library has moved to a separate repository and
OpenSSL::TestUtils may be modified at any time.
------------------------------------------------------------------------
r56933 | nobu | 2016-11-30 00:34:31 +0900 (Wed, 30 Nov 2016) | 4 lines

object.c: no TypeError at special const

* object.c (special_object_p): no longer raise a TypeError for
  Integer and Float, and return itself instead.  [Feature#12979]
------------------------------------------------------------------------
r56932 | kazu | 2016-11-30 00:31:16 +0900 (Wed, 30 Nov 2016) | 3 lines

NEWS: Add String/Symbol#casecmp? [Feature #12786]

[ci skip]
------------------------------------------------------------------------
r56931 | usa | 2016-11-30 00:23:12 +0900 (Wed, 30 Nov 2016) | 4 lines

get rid of test failures on CI introduced at r56927

* lib/matrix.rb: now ruby warns ambiguous parentheses after a space in method definitions.

------------------------------------------------------------------------
r56930 | svn | 2016-11-30 00:14:06 +0900 (Wed, 30 Nov 2016) | 1 line

* 2016-11-30
------------------------------------------------------------------------
r56929 | nobu | 2016-11-30 00:14:05 +0900 (Wed, 30 Nov 2016) | 5 lines

object.c: no TypeError at special const clone

* object.c (rb_obj_clone2): no longer raise a TypeError for
  special constants, and return itself instead.  however, if
  freeze option is false, raise an ArgumentError.  [Feature#12979]
------------------------------------------------------------------------
r56928 | nobu | 2016-11-29 21:54:43 +0900 (Tue, 29 Nov 2016) | 8 lines

thread.c: fix doc of abort_on_exception [ci skip]

* thread.c (rb_thread_s_abort_exc, rb_thread_s_abort_exc_set):
  [DOC] the raised exception will be re-raised in the main thread,
  and then follows the ordinary exception sequence, exit status is
  not 0.  [ruby-core:78415] [Bug #12991]

* thread.c (rb_thread_abort_exc_set): ditto.
------------------------------------------------------------------------
r56927 | nobu | 2016-11-29 19:47:43 +0900 (Tue, 29 Nov 2016) | 4 lines

parse.y: ambiguous parentheses

* parse.y (parser_yylex): warn ambiguous parentheses after a space
  in method definitions.
------------------------------------------------------------------------
r56926 | duerst | 2016-11-29 19:45:54 +0900 (Tue, 29 Nov 2016) | 6 lines

Fix/improve documentation of String/Symbol#casecmp[?]

Fix documentation of String#casecmp? (examples didn't have the '?').
Add an example with non-ASCII characters. Clarify that casecmp,
unlike casecmp?, only does case-insensitivity on A-Z/a-z.
[ci skip]
------------------------------------------------------------------------
r56925 | shugo | 2016-11-29 17:44:21 +0900 (Tue, 29 Nov 2016) | 1 line

Suppress warnings.
------------------------------------------------------------------------
r56924 | duerst | 2016-11-29 17:39:57 +0900 (Tue, 29 Nov 2016) | 5 lines

Fix erroneous test of target against target

* test/ruby/enc/test_case_comprehensive.rb: fix test condition,
  add a temporary check for U+A64B, the only character where the tests
  currently fail. (Bug #12990)
------------------------------------------------------------------------
r56923 | shugo | 2016-11-29 17:31:39 +0900 (Tue, 29 Nov 2016) | 4 lines

Ignore SystemCallError in case it is raised by SSLSocket#accept.

Errno::ECONNRESET was raised by test_tls_post_connection_check and
test_tls_unknown_ca on mswin64 CI.
------------------------------------------------------------------------
r56922 | nobu | 2016-11-29 12:06:03 +0900 (Tue, 29 Nov 2016) | 4 lines

test_keyword.rb: more assertions

* test/ruby/test_keyword.rb (test_block_required_keyword): more
  assertions for positional and require keyword parameters.
------------------------------------------------------------------------
r56921 | nobu | 2016-11-29 12:06:02 +0900 (Tue, 29 Nov 2016) | 4 lines

test_keyword.rb: assert_raise_with_message value

* test/ruby/test_keyword.rb (test_block_required_keyword):
  assert_raise_with_message returns the raised exception object.
------------------------------------------------------------------------
r56920 | nobu | 2016-11-29 12:06:01 +0900 (Tue, 29 Nov 2016) | 4 lines

string.c: use xmalloc

* string.c (rb_str_casemap): use xmalloc simply instead of
  ALLOC_N.
------------------------------------------------------------------------
r56919 | shugo | 2016-11-29 11:47:11 +0900 (Tue, 29 Nov 2016) | 7 lines

net/ftp: add a new option ssl_handshake_timeout to Net::FTP.new.

The TLS handshake timeout can be specified independently, because the TLS
handshake doesn't start just after the underlying connection is established,
but after the AUTH command is completed.  It's also useful for testing
purposes.  However, if ssl_handshake_timeout is not specified, open_timeout
is used instead for convenience.
------------------------------------------------------------------------
r56918 | shugo | 2016-11-29 11:33:34 +0900 (Tue, 29 Nov 2016) | 3 lines

net/ftp: close the socket directly when an error occurs during TLS handshake.

Otherwise, @sock.read in Net::FTP#close hungs until read_timeout exceeded.
------------------------------------------------------------------------
r56917 | svn | 2016-11-29 11:21:51 +0900 (Tue, 29 Nov 2016) | 1 line

* 2016-11-29
------------------------------------------------------------------------
r56916 | shugo | 2016-11-29 11:21:50 +0900 (Tue, 29 Nov 2016) | 3 lines

net/ftp: close the connection if the TLS handshake timeout is exceeded.

Otherwise, file descriptor leaks may occur in Net::FTP.new.
------------------------------------------------------------------------
r56915 | nobu | 2016-11-28 22:16:00 +0900 (Mon, 28 Nov 2016) | 4 lines

string.c: fix zero-length array

* string.c (mapping_buffer): get rid of zero-length array member,
  which is not a part of C90.
------------------------------------------------------------------------
r56914 | usa | 2016-11-28 19:17:03 +0900 (Mon, 28 Nov 2016) | 4 lines

hide exceptions in server thread

* test/net/ftp/test_ftp.rb (test_tls_connect_timeout): sleeping to give a chance of complete of accept is a timing issue at all.  therefore, simply ignore the exception.

------------------------------------------------------------------------
r56913 | nobu | 2016-11-28 18:37:19 +0900 (Mon, 28 Nov 2016) | 4 lines

string.c: enable rdoc

* string.c (rb_str_casecmp_p): [DOC] move forward declaration of
  rb_str_downcase to enable rdoc.
------------------------------------------------------------------------
r56912 | duerst | 2016-11-28 17:37:32 +0900 (Mon, 28 Nov 2016) | 8 lines

implement String/Symbol#casecmp? including Unicode case folding

* string.c: Implement String#casecmp? and Symbol#casecmp? by using
  String#downcase :fold for Unicode case folding. This does not include
  options such as :turkic, because these currently cannot be combined
  with the :fold option. This implements feature #12786.

* test/ruby/test_string.rb/test_symbol.rb: Tests for above.
------------------------------------------------------------------------
r56911 | nobu | 2016-11-28 12:48:34 +0900 (Mon, 28 Nov 2016) | 4 lines

insns.def: adjust index type

* insns.def (checkmatch): adjust type of the index variable, to
  get rid of (potential) overflow.
------------------------------------------------------------------------
r56910 | usa | 2016-11-28 12:14:07 +0900 (Mon, 28 Nov 2016) | 4 lines

Give a chance to complete server.accept

* test/net/ftp/test_ftp.rb (test_tls_connect_timeout): get rid of a test error on Windows.

------------------------------------------------------------------------
r56909 | svn | 2016-11-28 11:02:41 +0900 (Mon, 28 Nov 2016) | 1 line

* 2016-11-28
------------------------------------------------------------------------
r56908 | nobu | 2016-11-28 11:02:40 +0900 (Mon, 28 Nov 2016) | 4 lines

compile.c: splatarray peephole opt

* compile.c (iseq_peephole_optimize): remove splatarray following
  always-array insn.
------------------------------------------------------------------------
r56907 | nobu | 2016-11-27 20:22:42 +0900 (Sun, 27 Nov 2016) | 5 lines

signal.c: improve stack overflow check

* signal.c (check_stack_overflow): [EXPERIMENTAL] consider the
  segfault a stack overflow when the fault address is between SP
  and BP.
------------------------------------------------------------------------
r56906 | nobu | 2016-11-27 20:07:27 +0900 (Sun, 27 Nov 2016) | 4 lines

object.c: no TypeError at special const dup

* object.c (rb_obj_dup): no longer raise a TypeError for special
  constants, and return itself instead.  [Feature#12979]
------------------------------------------------------------------------
r56905 | knu | 2016-11-27 19:08:00 +0900 (Sun, 27 Nov 2016) | 5 lines

Reverse compatibility_version and current_version for Darwin

The `compatibility_version` should have an API version and the
`current_version` should have a program version of Ruby, but they have
been reversed and the binary compatibility has never worked.
------------------------------------------------------------------------
r56904 | svn | 2016-11-27 18:40:52 +0900 (Sun, 27 Nov 2016) | 1 line

* 2016-11-27
------------------------------------------------------------------------
r56903 | ktsj | 2016-11-27 18:40:51 +0900 (Sun, 27 Nov 2016) | 1 line

gems/bundled_gems: Update to power_assert 0.4.1
------------------------------------------------------------------------
r56902 | nobu | 2016-11-26 20:37:01 +0900 (Sat, 26 Nov 2016) | 4 lines

file.c: home directory from system

* file.c (rb_default_home_dir): resolve home directory from the
  system database when HOME is not set.  [Feature #12695]
------------------------------------------------------------------------
r56901 | nobu | 2016-11-26 20:37:01 +0900 (Sat, 26 Nov 2016) | 4 lines

win32.c: special folders as home dir

* win32/win32.c (rb_w32_home_dir): move from win32/file.c to try
  special folders.
------------------------------------------------------------------------
r56900 | nobu | 2016-11-26 19:57:02 +0900 (Sat, 26 Nov 2016) | 1 line

NEWS: mention [Feature #12953] [ci skip]
------------------------------------------------------------------------
r56899 | svn | 2016-11-26 18:29:12 +0900 (Sat, 26 Nov 2016) | 1 line

* 2016-11-26
------------------------------------------------------------------------
r56898 | shugo | 2016-11-26 18:29:11 +0900 (Sat, 26 Nov 2016) | 3 lines

net/ftp: support timeout for TLS handshake.

Net::FTP inherits ssl_socket_connect from Net::Protocol to implement timeout.
------------------------------------------------------------------------
r56897 | nobu | 2016-11-25 15:28:00 +0900 (Fri, 25 Nov 2016) | 4 lines

round-down

* numeric.c (round_half_down, int_round_half_down): support
  round-down mode.
------------------------------------------------------------------------
r56896 | svn | 2016-11-25 05:51:46 +0900 (Fri, 25 Nov 2016) | 1 line

* 2016-11-25
------------------------------------------------------------------------
r56895 | usa | 2016-11-25 05:51:45 +0900 (Fri, 25 Nov 2016) | 4 lines

use `rb_struct_ptr` for `RSTRUCT_PTR` macro

* include/ruby/ruby.h (RSTRUCT_PTR): at r55788, `rb_struct_const_ptr` had been hidden and `rb_struct_ptr` had been implemented for backward compatiblity.  but the definition of `RSTRUCT_PTR` was not modified to use it, probably by mistake.

------------------------------------------------------------------------
r56894 | nobu | 2016-11-24 20:07:12 +0900 (Thu, 24 Nov 2016) | 5 lines

marshal.c: fix infinite recursion

* marshal.c (check_userdump_arg): marshal_dump should not return
  an instance of the same class, otherwise it causes infinite
  recursion.  [ruby-core:78289] [Bug #12974]
------------------------------------------------------------------------
r56893 | nobu | 2016-11-24 19:59:35 +0900 (Thu, 24 Nov 2016) | 4 lines

marshal.c: negative limit

* marshal.c (w_object): should not decrement negative limit which
  means unlimited.
------------------------------------------------------------------------
r56892 | nobu | 2016-11-24 12:01:59 +0900 (Thu, 24 Nov 2016) | 6 lines

test_fileutils.rb: fix deadlock

* test/fileutils/test_fileutils.rb (assert_output_lines): ensure
  that write pipe is closed, not the reader thread to deadlock
  when an exception raised in the given block.
  [ruby-core:78053] [Bug #12910]
------------------------------------------------------------------------
r56891 | shugo | 2016-11-24 10:03:07 +0900 (Thu, 24 Nov 2016) | 1 line

Add credit and PR/issue numbers.
------------------------------------------------------------------------
r56890 | normal | 2016-11-24 08:57:30 +0900 (Thu, 24 Nov 2016) | 7 lines

resolv: use safe navigation operator to avoid extra hash lookups

@addr2name is a private Hash and never changes its default_proc,
so only pay the hash lookup cost once; we know missing entries
in the hash will be nil.

* lib/resolv.rb (each_name): use safe navigation operator
------------------------------------------------------------------------
r56889 | normal | 2016-11-24 08:14:15 +0900 (Thu, 24 Nov 2016) | 6 lines

webrick/server: use symbol proc

Symbol proc is less code and avoids confusion from variable
naming.

* lib/webrick/server.rb (shutdown): use symbol proc
------------------------------------------------------------------------
r56886 | svn | 2016-11-24 00:10:20 +0900 (Thu, 24 Nov 2016) | 1 line

* 2016-11-24
------------------------------------------------------------------------
r56885 | shugo | 2016-11-24 00:10:19 +0900 (Thu, 24 Nov 2016) | 1 line

Add CR/LF check to Net::FTP#status.
------------------------------------------------------------------------
r56884 | nobu | 2016-11-23 20:30:02 +0900 (Wed, 23 Nov 2016) | 9 lines

test_fileutils.rb: Use primary group too

* test/fileutils/test_fileutils.rb (TestFileUtils#setup): Use
  primary group as well as supplementary groups.  based on the
  patch by Vit Ondruch at [ruby-core:78053].  [Bug #12910]

It might happen in certain environments (systemd-nspawn) that
process has no supplementary groups, but primary groups should be
enough to pass most of the tests.
------------------------------------------------------------------------
r56883 | normal | 2016-11-23 17:10:44 +0900 (Wed, 23 Nov 2016) | 3 lines

lib/net/ftp: fix typo

* lib/net/ftp.rb (shutdown): fix typo
------------------------------------------------------------------------
r56882 | shugo | 2016-11-23 14:26:18 +0900 (Wed, 23 Nov 2016) | 4 lines

rescue Errno::EPROTOTYPE in FTPTest#test_list_read_timeout_exceeded.

Errno::EPROTOTYPE is sometimes raised on Mac OS X 10.10.
[ruby-core:78066] [Bug #12914]
------------------------------------------------------------------------
r56881 | shugo | 2016-11-23 13:40:40 +0900 (Wed, 23 Nov 2016) | 4 lines

Don't encode to UTF-8 if it's unnecessary.

If the file system encoding is ISO-8851-1 or if the encoding of the target
string is invalid, don't encode to UTF-8.  [ruby-core:78271] [Bug#12972]
------------------------------------------------------------------------
r56880 | shugo | 2016-11-23 09:34:13 +0900 (Wed, 23 Nov 2016) | 6 lines

Disconnect immediately even if Net::FTP#close is called without quit.

In that case, BufferedSSLSocket#read in FTP#close exceeded timeout because
BufferedSSLSocket#shutdown did nothing.  So BufferedIO#rbuf_fill is
overridden in BufferedSSLSocket to raise an EOFError if the connection is
shut down.
------------------------------------------------------------------------
r56879 | shugo | 2016-11-23 09:03:27 +0900 (Wed, 23 Nov 2016) | 4 lines

Add a new optinal argument pathname to FTP#stat.

Based on the patch by soleboxy.
[Fix GH-1478] [ruby-core:78240] [Feature #12965]
------------------------------------------------------------------------
r56878 | kazu | 2016-11-23 08:44:51 +0900 (Wed, 23 Nov 2016) | 1 line

Use `&.` instead of `if` and `? :`
------------------------------------------------------------------------
r56877 | nobu | 2016-11-23 08:32:44 +0900 (Wed, 23 Nov 2016) | 4 lines

parse.y: warn ? followed by a word

* parse.y (parse_qmark): warn `?` with unbalanced space, which is
  interpreted as a conditional operator.
------------------------------------------------------------------------
r56876 | svn | 2016-11-23 08:11:41 +0900 (Wed, 23 Nov 2016) | 1 line

* 2016-11-23
------------------------------------------------------------------------
r56875 | nobu | 2016-11-23 08:11:41 +0900 (Wed, 23 Nov 2016) | 1 line

Use `&.` and `||=` instead of if guards
------------------------------------------------------------------------
r56874 | kazu | 2016-11-22 22:59:16 +0900 (Tue, 22 Nov 2016) | 4 lines

IOError does not happen

* IOError does not happen even if another thread closes io
* Use symbol proc
------------------------------------------------------------------------
r56873 | kazu | 2016-11-22 22:11:43 +0900 (Tue, 22 Nov 2016) | 1 line

Use `&.` instead of modifier if
------------------------------------------------------------------------
r56872 | mrkn | 2016-11-22 14:21:12 +0900 (Tue, 22 Nov 2016) | 11 lines

complex.c: optimize f_gt_p some cases

* complex.c (f_gt_p): optimize f_gt_p for specific types of arguments.

* internal.h (rb_int_gt, rb_float_gt, rb_rational_cmp): exported.

* numeric.c (rb_float_gt): rename from flo_gt and be exported.

* numeric.c (rb_int_gt): rename from int_gt and be exported.

* rational.c (rb_rational_cmp): rename from nurat_cmp and be exported.
------------------------------------------------------------------------
r56871 | shugo | 2016-11-22 14:17:45 +0900 (Tue, 22 Nov 2016) | 4 lines

Add BufferedSSLSocket#send.

SSLSocket#send is not defined, so use #write instead.  flags and dest are
ignored.
------------------------------------------------------------------------
r56870 | mrkn | 2016-11-22 13:54:57 +0900 (Tue, 22 Nov 2016) | 5 lines

complex.c: optimize Kernel#Complex

* complex.c (nucomp_f_complex): use nucomp_s_convert directly.

* complex.c (id_convert): removed.
------------------------------------------------------------------------
r56869 | normal | 2016-11-22 09:16:23 +0900 (Tue, 22 Nov 2016) | 6 lines

webrick/server: simplify Daemon.start

Process.daemon exists since Ruby 1.9.1 and does most of what we need.

* lib/webrick/server.rb (Daemon.start): simplify
  [Misc #12937]
------------------------------------------------------------------------
r56868 | normal | 2016-11-22 08:50:31 +0900 (Tue, 22 Nov 2016) | 5 lines

resolv: use symbol proc when possible

This reduces both human code and bytecode.

lib/resolv.rb (sender_for, Config.parse_resolv_conf): use symbol proc
------------------------------------------------------------------------
r56867 | normal | 2016-11-22 08:50:25 +0900 (Tue, 22 Nov 2016) | 8 lines

socket: use symbol proc for IO#close loops

Made possible by r56795, this reduces human and byte code size.

* ext/socket/lib/socket.rb (self.ip_sockets_port0,
  self.tcp_server_sockets_port0,
  self.tcp_server_sockets,
  self.udp_server_sockets): use symbol proc
------------------------------------------------------------------------
r56866 | normal | 2016-11-22 08:13:16 +0900 (Tue, 22 Nov 2016) | 6 lines

lib/open3: favor symbol proc when possible

It reduces both human and machine code; as well as reducing
the confusion from variable naming.

* lib/open3.rb (popen_run, pipeline, pipeline_run): avoid capture
------------------------------------------------------------------------
r56865 | normal | 2016-11-22 08:05:41 +0900 (Tue, 22 Nov 2016) | 17 lines

lib/*: remove closed checks

Follow r56795.  Since Ruby 2.2, calling #close on a closed
socket no longer raises exceptions.

* lib/cgi/session.rb (update): remove closed? check
* lib/net/http.rb (finish, transport_request): ditto
* lib/net/imap.rb (disconnect): ditto
* lib/net/pop.rb (do_start, do_finish): ditto
* lib/net/smtp.rb (do_start, do_finish): ditto
* lib/open3.rb (popen_run, pipeline_run): ditto
* lib/pstore.rb (transaction): ditto
* lib/shell/process-controller.rb (sfork):
* lib/tempfile (_close, call, Tempfile.create): ditto
* lib/webrick/httpauth/htdigest.rb (flush): ditto
* lib/webrick/httpauth/htpasswd.rb (flush): ditto
* lib/webrick/server.rb (start_thread, cleanup_shutdown_pipe): ditto
------------------------------------------------------------------------
r56864 | svn | 2016-11-22 07:45:27 +0900 (Tue, 22 Nov 2016) | 1 line

* 2016-11-22
------------------------------------------------------------------------
r56863 | nobu | 2016-11-22 07:45:26 +0900 (Tue, 22 Nov 2016) | 3 lines

Revert r56856

* parse.y: tCHAR can be concatenated.
------------------------------------------------------------------------
r56862 | nobu | 2016-11-21 21:34:54 +0900 (Mon, 21 Nov 2016) | 4 lines

ftp.rb: fix typo [ci skip]

* lib/net/ftp.rb (Net::FTP#initialize): [DOC] fix type in option
  name, :username is used but :use is not.
------------------------------------------------------------------------
r56861 | shugo | 2016-11-21 19:38:31 +0900 (Mon, 21 Nov 2016) | 1 line

Add new options open_timeout and read_timeout to Net::FTP.new.
------------------------------------------------------------------------
r56860 | shugo | 2016-11-21 17:55:25 +0900 (Mon, 21 Nov 2016) | 1 line

Use dynamic dispatch instead of is_a?.
------------------------------------------------------------------------
r56857 | rhe | 2016-11-21 14:02:58 +0900 (Mon, 21 Nov 2016) | 13 lines

net/http: avoid writing/reading from unstarted SSL socket

When net/http connects to an HTTPS server through a CONNECT proxy, it
writes the CONNECT request to an unconnected OpenSSL::SSL::SSLSocket.

OpenSSL::SSL::SSLSocket traditionally fallbacks to a method call on the
underlying IO object if a read/write method is called before the TLS
connection is established. So it automagically works correctly, emitting
the "SSL session is not started yet" warning.

This is not obvious at first glance. The warning is also noisy. Let's
just write to the plain socket instead of relying on the SSLSocket's
behavior.
------------------------------------------------------------------------
r56856 | nobu | 2016-11-21 12:13:59 +0900 (Mon, 21 Nov 2016) | 4 lines

parse.y: tCHAR cannot be concatenated

* parse.y (strings): tCHAR is not a subject of string literal
  concatenation and string interpolation.
------------------------------------------------------------------------
r56855 | svn | 2016-11-21 11:17:29 +0900 (Mon, 21 Nov 2016) | 1 line

* 2016-11-21
------------------------------------------------------------------------
r56854 | nobu | 2016-11-21 11:17:29 +0900 (Mon, 21 Nov 2016) | 4 lines

numeric.c: refine error message

* numeric.c (rb_num_get_rounding_option): refine error message at
  invalid rounding mode.
------------------------------------------------------------------------
r56853 | nobu | 2016-11-20 19:52:28 +0900 (Sun, 20 Nov 2016) | 3 lines

proc.c: enable Proc#to_s rdoc

* proc.c (proc_to_s): move just after the rdoc comment.
------------------------------------------------------------------------
r56852 | nobu | 2016-11-20 19:41:09 +0900 (Sun, 20 Nov 2016) | 4 lines

proc.c: suppress warning

* proc.c (NO_CLOBBERED): suppress clobbered warning which appears
  only on mingw.
------------------------------------------------------------------------
r56851 | shugo | 2016-11-20 18:11:44 +0900 (Sun, 20 Nov 2016) | 1 line

Remove an unused variable to suppress a warning.
------------------------------------------------------------------------
r56850 | nobu | 2016-11-20 15:53:39 +0900 (Sun, 20 Nov 2016) | 4 lines

win32ole.c: suppress warnings

* ext/win32ole/win32ole.c (g_ole_initialized): compare with 0
  instead of cast to get rid of pointer-to-int-cast warnings.
------------------------------------------------------------------------
r56849 | usa | 2016-11-20 15:19:05 +0900 (Sun, 20 Nov 2016) | 5 lines

get rid of test failures introduced at r56848

* ext/rubyvm/lib/forwardable/impl.rb: remove an unused variable definition to
  get rid of a warning.

------------------------------------------------------------------------
r56848 | nobu | 2016-11-20 11:12:48 +0900 (Sun, 20 Nov 2016) | 5 lines

forwardable/impl.rb

* lib/forwardable/impl.rb (_valid_method?, _compile_method):
  extract to separate implementation specific part.
  [ruby-core:78138] [Bug #12938]
------------------------------------------------------------------------
r56847 | shugo | 2016-11-20 10:49:25 +0900 (Sun, 20 Nov 2016) | 3 lines

remote_address should be called on @bare_sock.

Because @sock.remote_address fails if @sock is an SSLSocket.
------------------------------------------------------------------------
r56846 | shugo | 2016-11-20 10:44:07 +0900 (Sun, 20 Nov 2016) | 4 lines

shutdown(2) should not be called for SSLSocket.

SSLSocket#stop is a private method and cannot be called, but explicit calls
are not necessary because SSL_shutdown() is called from SSLSocket#close.
------------------------------------------------------------------------
r56845 | svn | 2016-11-20 08:51:50 +0900 (Sun, 20 Nov 2016) | 1 line

* 2016-11-20
------------------------------------------------------------------------
r56844 | suke | 2016-11-20 08:51:49 +0900 (Sun, 20 Nov 2016) | 3 lines

* ext/win32ole/win32ole.c: independent of libgcc_s_seh-1.dll [Bug #12959] 
  Thanks to Tsuyoshi Morita for bug report.

------------------------------------------------------------------------
r56843 | shugo | 2016-11-19 20:01:55 +0900 (Sat, 19 Nov 2016) | 1 line

Use Socket instead of TCPSocket/TCPServer.
------------------------------------------------------------------------
r56842 | shugo | 2016-11-19 16:02:32 +0900 (Sat, 19 Nov 2016) | 1 line

Expand abbreviated option names.
------------------------------------------------------------------------
r56840 | nobu | 2016-11-19 13:32:52 +0900 (Sat, 19 Nov 2016) | 4 lines

ruby.h: rb_big_sign

* include/ruby/ruby.h (RBIGNUM_SIGN): use a wrapper function to
  return the sign bit, instead of comparing with 0.
------------------------------------------------------------------------
r56839 | shugo | 2016-11-19 13:19:35 +0900 (Sat, 19 Nov 2016) | 1 line

Shut down TLS connections gracefully.
------------------------------------------------------------------------
r56837 | shugo | 2016-11-19 11:40:33 +0900 (Sat, 19 Nov 2016) | 1 line

Remove garbage.
------------------------------------------------------------------------
r56836 | shugo | 2016-11-19 11:37:39 +0900 (Sat, 19 Nov 2016) | 1 line

Move certificates to test/net/fixtures/.
------------------------------------------------------------------------
r56835 | svn | 2016-11-19 11:29:24 +0900 (Sat, 19 Nov 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56834 | shugo | 2016-11-19 11:29:23 +0900 (Sat, 19 Nov 2016) | 5 lines

Support TLS and hash styles options for Net::FTP.new.

If the :ssl options is specified, the control connection is protected with
TLS in the manner described in RFC 4217.  Data connections are also
protected with TLS unless the :private_data_connection is set to false.
------------------------------------------------------------------------
r56833 | nobu | 2016-11-19 10:55:34 +0900 (Sat, 19 Nov 2016) | 4 lines

math.c: unused_obj

* math.c (exp1, exp2): use immediate 0 instead of rb_mMath, which
  is never used.
------------------------------------------------------------------------
r56832 | nobu | 2016-11-19 10:16:50 +0900 (Sat, 19 Nov 2016) | 5 lines

dln.c: raise LoadError

* dln.c (dln_load): raise LoadError instead of fatal error on
  recent OSX, dlclose seems fixed in El Capitan or later.
  [ruby-core:78200] [Bug #12956]
------------------------------------------------------------------------
r56831 | tadd | 2016-11-19 00:31:05 +0900 (Sat, 19 Nov 2016) | 2 lines

* NEWS: Added entry for optimized Rational. [Feature #12484] [ci skip]

------------------------------------------------------------------------
r56830 | mrkn | 2016-11-19 00:17:19 +0900 (Sat, 19 Nov 2016) | 13 lines

complex.c: optimize f_negate

* complex.c (f_negate): optimize for special numeric types.

* complex.c (nucomp_expt): use rb_int_uminus instead of f_negate for
  fixnum value.

* internal.h (rb_float_uminus, rb_rational_uminus): exported.

* numeric.c (rb_float_uminus): rename from flo_uminus.

* rational.c (rb_rational_uminus): rename from nurat_negate, and add
  assertion for the parameter.
------------------------------------------------------------------------
r56829 | svn | 2016-11-19 00:04:37 +0900 (Sat, 19 Nov 2016) | 1 line

* 2016-11-19
------------------------------------------------------------------------
r56828 | mrkn | 2016-11-19 00:04:36 +0900 (Sat, 19 Nov 2016) | 8 lines

rational.c: optimization and refactoring

* rational.c (nurat_s_new_bang, nurat_canonicalize): small optimization
  by using rb_int_uminus instead of f_negate.

* rational.c (nurat_canonicalize): add assertions for parameters.

* rational.c (f_negate, id_negate): removed.
------------------------------------------------------------------------
r56827 | mrkn | 2016-11-18 23:24:15 +0900 (Fri, 18 Nov 2016) | 7 lines

complex.c: refactoring

* complex.c (nucomp_abs): use rb_math_hypot directly.

* complex.c (nucomp_arg): use rb_math_atan2 directly.

* complex.c (imp2, m_{atan2,hypot}_bang, m_hypot): removed.
------------------------------------------------------------------------
r56826 | yui-knk | 2016-11-18 20:05:20 +0900 (Fri, 18 Nov 2016) | 3 lines

objspace.c:: indent [ci skip]

* ext/objspace/objspace.c (memsize_of_m): adjust indent of comments.
------------------------------------------------------------------------
r56825 | yui-knk | 2016-11-18 19:58:30 +0900 (Fri, 18 Nov 2016) | 1 line

* NEWS: Fix class name
------------------------------------------------------------------------
r56824 | nobu | 2016-11-18 15:29:51 +0900 (Fri, 18 Nov 2016) | 4 lines

internal.h: round macros

* internal.h (ROUND_FUNC, ROUND_CALL): macros wrapping round
  functions.
------------------------------------------------------------------------
r56823 | svn | 2016-11-18 13:34:27 +0900 (Fri, 18 Nov 2016) | 1 line

* 2016-11-18
------------------------------------------------------------------------
r56822 | nobu | 2016-11-18 13:34:26 +0900 (Fri, 18 Nov 2016) | 6 lines

extmk.rb: removed compiled? method [ci skip]

* ext/extmk.rb (compiled?): removed.

* ext/win32/extconf.rb: try to install libraries regardless
  fiddle.
------------------------------------------------------------------------
r56821 | hsbt | 2016-11-17 22:05:46 +0900 (Thu, 17 Nov 2016) | 12 lines

Remove webhook notification to Travis CI [skip ci]

  As travis-rubies now uses 3 Mac jobs to create archives for various OS
  releases.

  This is a bit wasteful if multiple builds pass in a short period.

  Instead, Travis CI is now running a nightly build of ruby-head
  (around 22:30 UTC). This will happen regardless of the state of the
  master branch.

  Author: Hiro Asari <asari.ruby@gmail.com>
------------------------------------------------------------------------
r56820 | nobu | 2016-11-17 20:52:11 +0900 (Thu, 17 Nov 2016) | 4 lines

readline.c: str_subpos

* ext/readline/readline.c (str_subpos): make string instance only
  if necessary.
------------------------------------------------------------------------
r56819 | usa | 2016-11-17 17:50:36 +0900 (Thu, 17 Nov 2016) | 4 lines

numeric.c: get rid of a compile error on mingw64

* numeric.c (rb_fix2str): typo.

------------------------------------------------------------------------
r56818 | svn | 2016-11-17 16:19:50 +0900 (Thu, 17 Nov 2016) | 1 line

* 2016-11-17
------------------------------------------------------------------------
r56817 | shugo | 2016-11-17 16:19:49 +0900 (Thu, 17 Nov 2016) | 4 lines

mkconfig.rb: add a magic comment to rbconfig.rb

* tool/mkconfig.rb: add a magic comment to rbconfig.rb in case the command
  line option -K is specified.  [ruby-core:78181] [Bug #12949]
------------------------------------------------------------------------
r56815 | nobu | 2016-11-16 15:59:42 +0900 (Wed, 16 Nov 2016) | 7 lines

logger.rb: fix next rotate time

* lib/logger.rb (Logger::LogDevice#initialize): calculate next
  rotate time based on the mtime of the last existing file.
  [ruby-dev:49881] [Bug #12948]

Author: Tsukasa Oishi <tsukasa.oishi@gmail.com>
------------------------------------------------------------------------
r56814 | nobu | 2016-11-16 15:59:41 +0900 (Wed, 16 Nov 2016) | 1 line

test/logger/test_logdevice.rb: heredoc styles
------------------------------------------------------------------------
r56813 | nobu | 2016-11-16 15:59:40 +0900 (Wed, 16 Nov 2016) | 5 lines

ruby-additional.el: unquoted code block

* misc/ruby-additional.el (ruby-insert-heredoc-code-block): make
  code between "begin;" and "end;" unquoted.  still quotable
  before "begin;".
------------------------------------------------------------------------
r56812 | nobu | 2016-11-16 15:07:55 +0900 (Wed, 16 Nov 2016) | 4 lines

configure.in: compressed debug section option

* configure.in: make compressed debug section optional.
  [ruby-core:78121] [Bug #12934]
------------------------------------------------------------------------
r56811 | nobu | 2016-11-16 14:25:53 +0900 (Wed, 16 Nov 2016) | 4 lines

test_flip.rb: r56316

* test/ruby/test_flip.rb (test_input_line_number_range): test for
  r56316.  [ruby-core:78162] [Bug #12947]
------------------------------------------------------------------------
r56810 | mrkn | 2016-11-16 13:25:37 +0900 (Wed, 16 Nov 2016) | 4 lines

math.c: remove needless ifdef clause

* math.c (ifdef M_PI): M_PI is eventually defined in missing.h even if math.h
  doesn't supply it.
------------------------------------------------------------------------
r56809 | mrkn | 2016-11-16 13:25:35 +0900 (Wed, 16 Nov 2016) | 16 lines

complex.c: optimize Numeric#polar and Numeric#arg

* complex.c (numeric_polar): optimize for Integer, Float, and Rational.

* complex.c (numeric_arg): directly create the value of pi.

* complex.c (f_negative_p): optimize for Integer, Float, and Rational.

* rational.c (INT_NEGATIVE_P): move the definition into internal.h.

* internal.h (INT_NEGATIVE_P): ditto.

* numeric.c (rb_float_abs): rename from flo_abs and export to be used
  from other source files..

* internal.h (rb_float_abs): ditto.
------------------------------------------------------------------------
r56808 | mrkn | 2016-11-16 13:25:33 +0900 (Wed, 16 Nov 2016) | 4 lines

rational.c: optimize Rational#abs

* rational.c (rb_rational_abs): optimize Rational#abs with the
  specialized implementation.
------------------------------------------------------------------------
r56807 | hsbt | 2016-11-16 12:02:42 +0900 (Wed, 16 Nov 2016) | 3 lines

Fix a typo.

https://github.com/ruby/psych/commit/18d13b1df09504548feb4cb9b259fed552d6a4d5
------------------------------------------------------------------------
r56806 | hsbt | 2016-11-16 11:51:26 +0900 (Wed, 16 Nov 2016) | 4 lines

Fixed regression of typo fix.

Picked from upstream: https://github.com/ruby/psych/commit/66fb7fb77533d0606748940288858794752d95cb
[ci skip][ruby-dev:49879][Bug #12942]
------------------------------------------------------------------------
r56805 | svn | 2016-11-16 00:04:57 +0900 (Wed, 16 Nov 2016) | 1 line

* 2016-11-16
------------------------------------------------------------------------
r56804 | kazu | 2016-11-16 00:04:56 +0900 (Wed, 16 Nov 2016) | 1 line

Fix regexp and typo
------------------------------------------------------------------------
r56801 | naruse | 2016-11-15 21:42:04 +0900 (Tue, 15 Nov 2016) | 3 lines

Use rb_mod_name instead of classname

classname() is static function.
------------------------------------------------------------------------
r56799 | shugo | 2016-11-15 17:16:45 +0900 (Tue, 15 Nov 2016) | 1 line

ftp.rb: use Addrinfo interfaces
------------------------------------------------------------------------
r56797 | nobu | 2016-11-15 15:28:05 +0900 (Tue, 15 Nov 2016) | 6 lines

complex.c: purge id_eqeq_p and limit return value

* complex.c (f_eqeq_p): use rb_equal.

* complex.c (nucomp_eqeq_p): limit return value to true or false,
  instead of the result of the other as-is.
------------------------------------------------------------------------
r56795 | nobu | 2016-11-15 10:39:11 +0900 (Tue, 15 Nov 2016) | 4 lines

socket.rb: remove closed checks

* ext/socket/lib/socket.rb: remove unnecessary closed checks,
  close on closed socket no longer raises an exception.
------------------------------------------------------------------------
r56794 | nobu | 2016-11-15 10:39:10 +0900 (Tue, 15 Nov 2016) | 4 lines

ftp.rb: use Addrinfo

* lib/net/ftp.rb (sendport, makeport, makepasv, BufferedSocket):
  use Addrinfo interfaces.
------------------------------------------------------------------------
r56793 | normal | 2016-11-15 09:27:20 +0900 (Tue, 15 Nov 2016) | 11 lines

st.c: fix crashes on huge hash tables

From: Vladimir Makarov <vmakarov@redhat.com>

By Vladimir's estimation, this requires at least 64 GB of memory
to reproduce this bug due to the hash sizes required.  So there
is no new test case (and I am unable to test it, myself).

* st.c (get_bins_num): avoid out-of-bounds on shift by using correct type
  [ruby-core:78139] [Bug #12939]
* st.c (get_allocated_entries): ditto
------------------------------------------------------------------------
r56792 | headius | 2016-11-15 04:39:21 +0900 (Tue, 15 Nov 2016) | 2 lines

* test/thread/test_queue.rb: Give up to ten seconds for threads to
  reach expected state before proceeding.
------------------------------------------------------------------------
r56791 | svn | 2016-11-15 04:27:25 +0900 (Tue, 15 Nov 2016) | 1 line

* 2016-11-15
------------------------------------------------------------------------
r56790 | headius | 2016-11-15 04:27:24 +0900 (Tue, 15 Nov 2016) | 5 lines

* test/ruby/test_module.rb: Method tables are not guaranteed to be
  ordered.
* test/ruby/test_struct.rb: Ditto.
* test/ruby/test_thread.rb: Thread locals are not guaranteed to be
ordered.
------------------------------------------------------------------------
r56780 | nobu | 2016-11-14 16:59:50 +0900 (Mon, 14 Nov 2016) | 3 lines

net/ftp.rb: kwargs

* lib/net/ftp.rb (Net::FTP#open_socket): use keyword argument.
------------------------------------------------------------------------
r56779 | nobu | 2016-11-14 16:53:32 +0900 (Mon, 14 Nov 2016) | 4 lines

net/protocol.rb: kwargs

* lib/net/protocol.rb (Net::BufferedIO#initialize): add keyword
  arguments for initial attributes.
------------------------------------------------------------------------
r56778 | nobu | 2016-11-14 16:53:31 +0900 (Mon, 14 Nov 2016) | 6 lines

socket.rb: kwargs

* ext/socket/lib/socket.rb (connect_{from,to}, connect): let use
  keyword arguments.

* ext/socket/lib/socket.rb (Socket.tcp): ditto.
------------------------------------------------------------------------
r56777 | nobu | 2016-11-14 14:17:55 +0900 (Mon, 14 Nov 2016) | 4 lines

vm_eval.c: fstring instance_eval

* vm_eval.c (singleton_class_for_eval): enable fstring singleton
  class for instance_eval.  [ruby-core:78116] [Bug #12930]
------------------------------------------------------------------------
r56776 | nobu | 2016-11-14 13:06:15 +0900 (Mon, 14 Nov 2016) | 8 lines

complex.c: optimize

* complex.c (f_negative_p): use rb_num_negative_p instead of funcall.

* complex.c (f_kind_of_p, f_numeric_p): cast down to int because
  rb_obj_is_kind_of is safe.

* complex.c (f_signbit, f_tpositive_p): remove f_boolcast.
------------------------------------------------------------------------
r56775 | nobu | 2016-11-14 13:02:45 +0900 (Mon, 14 Nov 2016) | 4 lines

rational.c: cast to int

* rational.c (f_kind_of_p): rb_obj_is_kind_of returns Qtrue or
  Qfalse always, and is safe to cast down to int.
------------------------------------------------------------------------
r56774 | svn | 2016-11-14 09:40:06 +0900 (Mon, 14 Nov 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56773 | hsbt | 2016-11-14 09:40:04 +0900 (Mon, 14 Nov 2016) | 4 lines

Update bundled psych to 2.2.0.

 * Merge libyaml-0.1.7 for bundled-libyaml option.
 * Update canonical url to https://github.com/ruby/psych.
------------------------------------------------------------------------
r56772 | mrkn | 2016-11-14 01:43:43 +0900 (Mon, 14 Nov 2016) | 5 lines

complex.c: refactoring

* complex.c (f_zero_p): return int rather than VALUE.

* complex.c (rb_complex_mul): remove needless negate operations.
------------------------------------------------------------------------
r56771 | mrkn | 2016-11-14 01:22:26 +0900 (Mon, 14 Nov 2016) | 3 lines

complex.c: refactoring

* complex.c (f_one_p): removed.
------------------------------------------------------------------------
r56770 | mrkn | 2016-11-14 01:22:08 +0900 (Mon, 14 Nov 2016) | 6 lines

complex.c: refactoring and small optimization

* complex.c (nucomp_expt): optimize the access to the numerator and
  denominator of a rational number.

* complex.c (k_rational_p): removed.
------------------------------------------------------------------------
r56769 | svn | 2016-11-14 01:21:55 +0900 (Mon, 14 Nov 2016) | 1 line

* 2016-11-14
------------------------------------------------------------------------
r56768 | mrkn | 2016-11-14 01:21:54 +0900 (Mon, 14 Nov 2016) | 3 lines

complex.c: refactoring

* complex.c (f_addsub, k_complex_p, k_float_p): removed.
------------------------------------------------------------------------
r56767 | nobu | 2016-11-13 14:25:54 +0900 (Sun, 13 Nov 2016) | 7 lines

error.c: redefined backtrace

* error.c (rb_get_backtrace): honor redefined Exception#backtrace
  method.  [ruby-core:78097] [Bug #12925]

* eval.c (setup_exception): rescue exceptions during backtrace
  setup.
------------------------------------------------------------------------
r56766 | nobu | 2016-11-13 14:25:53 +0900 (Sun, 13 Nov 2016) | 4 lines

error.c: rb_get_backtrace

* error.c (rb_get_backtrace): move from eval_error.c to call
  exc_backtrace directly.  [ruby-core:78097] [Bug #12925]
------------------------------------------------------------------------
r56765 | nobu | 2016-11-13 11:11:07 +0900 (Sun, 13 Nov 2016) | 7 lines

readline: remove dependency on internal.h

* ext/readline/depend: remove dependency on internal.h.

* ext/readline/readline.c (readline_s_delete_text): use
  rb_enc_str_new_static instead of rb_setup_fake_str not to depend
  on internal.h.
------------------------------------------------------------------------
r56764 | nobu | 2016-11-13 11:04:51 +0900 (Sun, 13 Nov 2016) | 4 lines

numeric.c: limit return value

* numeric.c (num_equal): limit return value to true or false,
  instead of the result of the other as-is.
------------------------------------------------------------------------
r56763 | nobu | 2016-11-13 10:51:29 +0900 (Sun, 13 Nov 2016) | 5 lines

purge id_eqeq_p

* rational.c (f_{eqeq,zero,one,minus_one}_p, nurat_eqeq_p): use
  rb_equal.  this function returns Qtrue or Qfalse always, so it
  is safe to cast down to int.
------------------------------------------------------------------------
r56762 | mrkn | 2016-11-13 03:42:30 +0900 (Sun, 13 Nov 2016) | 6 lines

complex.c: refactoring

* complex.c: refactor to use some specific macros and
  to reduce needless conversion by FIX2LONG.

* complex.c (k_fixnum_p, k_bignum_p): removed.
------------------------------------------------------------------------
r56761 | mrkn | 2016-11-13 01:29:11 +0900 (Sun, 13 Nov 2016) | 3 lines

rational.c: refactoring

* rational.c: use RB_INTEGER_TYPE_P, RB_FLOAT_TYPE_P, and FIXNUM_ZERO_P.
------------------------------------------------------------------------
r56760 | mrkn | 2016-11-13 00:43:34 +0900 (Sun, 13 Nov 2016) | 3 lines

rational.c: remove f_negative_p

* rational.c (f_negative_p): removed.
------------------------------------------------------------------------
r56759 | mrkn | 2016-11-13 00:43:26 +0900 (Sun, 13 Nov 2016) | 8 lines

rational.c: optimize Integer#lcm

* rational.c (f_div, f_mul, f_abs): optimize Integer#lcm
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* numeric.c (rb_int_abs): rename from int_abs to be exported.

* internal.h (rb_int_div, rb_int_abs): exported.
------------------------------------------------------------------------
r56758 | mrkn | 2016-11-13 00:43:18 +0900 (Sun, 13 Nov 2016) | 4 lines

rational.c: optimize (-rational).rationalize(some)

* rational.c (nurat_rationalize): optimize (-rational).rationalize(some).
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56757 | svn | 2016-11-13 00:07:53 +0900 (Sun, 13 Nov 2016) | 1 line

* 2016-11-13
------------------------------------------------------------------------
r56756 | mrkn | 2016-11-13 00:07:53 +0900 (Sun, 13 Nov 2016) | 5 lines

rational.c: define Rational#{negative?,positive?}

* rational.c (nurat_{negative,positive}_p): define Rational#negative?
  and Rational#positive?, respectively.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56755 | mrkn | 2016-11-12 23:54:19 +0900 (Sat, 12 Nov 2016) | 4 lines

rational.c: refactoring

* rational.c (id_expt, id_fdiv, f_expt, f_fdiv, f_positive_p): removed.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56754 | nobu | 2016-11-12 22:24:23 +0900 (Sat, 12 Nov 2016) | 4 lines

test_fstring.rb: fix exception

* test/-ext-/string/test_fstring.rb (test_singleton_class): fix
  expected exception class.  [ruby-dev:49867] [Bug #12923]
------------------------------------------------------------------------
r56753 | mrkn | 2016-11-12 21:16:12 +0900 (Sat, 12 Nov 2016) | 3 lines

raitonal.c: remove needless macro

* rational.c (id_lshift, f_lshift): removed.
------------------------------------------------------------------------
r56752 | mrkn | 2016-11-12 21:14:10 +0900 (Sat, 12 Nov 2016) | 5 lines

rational.c: optimize Float#rationalize

* rational.c (rb_flt_rationalize{,_with_prec},float_rationalize):
  optimize Float#rationalize.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56751 | mrkn | 2016-11-12 20:52:09 +0900 (Sat, 12 Nov 2016) | 4 lines

rational.c: use rb_num_zerodiv instead of rb_raise_zerodiv

* rational.c (rb_raize_zerodiv): replace by rb_num_zerodiv.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56750 | mrkn | 2016-11-12 20:52:00 +0900 (Sat, 12 Nov 2016) | 7 lines

rational.c: optimize Float#to_r

* rational.c (float_to_r): optimize Float#to_r.

* numeric.c (rb_int_lshift): exported.

* internal.h (rb_int_lshift): ditto.
------------------------------------------------------------------------
r56749 | mrkn | 2016-11-12 20:51:51 +0900 (Sat, 12 Nov 2016) | 5 lines

rational.c: optimize Float#{numerator,denominator}

* rational.c (float_{numerator,denominator}): optimize
  Float#{numerator,denominator}.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56748 | mrkn | 2016-11-12 20:51:41 +0900 (Sat, 12 Nov 2016) | 4 lines

rational.c: optimize Numeric#quo

* rational.c (numeric_quo): optimize Numeric#quo.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56747 | nobu | 2016-11-12 18:43:05 +0900 (Sat, 12 Nov 2016) | 5 lines

class.c: no fstring singleton class

* class.c (singleton_class_of): prohibit fstrings from creating
  singleton classes.
  temporary measure for [ruby-dev:49867] [Bug #12923]
------------------------------------------------------------------------
r56746 | nobu | 2016-11-12 17:16:58 +0900 (Sat, 12 Nov 2016) | 4 lines

symbol/noninterned_name.rb

* test/-ext-/symbol/noninterned_name.rb: split from
  test_inadvertent_creation.rb.
------------------------------------------------------------------------
r56745 | mrkn | 2016-11-12 16:32:28 +0900 (Sat, 12 Nov 2016) | 3 lines

rational.c: refactor by removing needless ID vars

* rational.c (id_cmp, id_trunate): removed.
------------------------------------------------------------------------
r56744 | mrkn | 2016-11-12 16:28:47 +0900 (Sat, 12 Nov 2016) | 8 lines

rational.c: optimize Rational#fdiv

* rational.c (nurat_fdiv): optimize Rational#fdiv.
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* rational.c (f_to_f, id_to_f): removed.

* rational.c (f_expt): only used when FLT_RADIX is not 2.
------------------------------------------------------------------------
r56743 | mrkn | 2016-11-12 15:58:35 +0900 (Sat, 12 Nov 2016) | 4 lines

rational.c: optimize Rational#to_i

* rational.c (nurat_truncate): optimize Rational#to_i.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56742 | mrkn | 2016-11-12 15:45:11 +0900 (Sat, 12 Nov 2016) | 11 lines

rational.c: optimize Rational#{floor,ceil,round,truncate}

* rational.c (f_{expt10,round_common},nurat_{floor,ceil,round_half_{up,even}}):
  optimize Rational#{floor,ceil,round,truncate}.
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* numeric.c (rb_int_divmod): rename from int_divmod to be exported.

* numeric.c (rb_int_and): rename from int_and to be exported.

* intern.h (rb_int_{divmod,and}): exported.
------------------------------------------------------------------------
r56741 | mrkn | 2016-11-12 15:17:12 +0900 (Sat, 12 Nov 2016) | 5 lines

rational.c: optimize rational.coerce(float) and float [+-*/] rational

* rational.c (nurat_coerce): optimize rational.coerce(float).
  note that this makes `float [+-*/] rational` faster
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56740 | nobu | 2016-11-12 15:12:13 +0900 (Sat, 12 Nov 2016) | 7 lines

pack.c: simplify

* pack.c (str_associate): remove unnecessary branch.
  the argument must be a plain vanilla string object.

* pack.c (str_associated): use rb_ivar_lookup to give the
  undefined value.
------------------------------------------------------------------------
r56739 | nobu | 2016-11-12 15:12:12 +0900 (Sat, 12 Nov 2016) | 4 lines

class.c: trivial optimization

* class.c (singleton_class_of): just copy FROZEN flag without
  conditions.
------------------------------------------------------------------------
r56738 | nobu | 2016-11-12 15:12:09 +0900 (Sat, 12 Nov 2016) | 4 lines

.gdbinit: improve rp [ci skip]

* .gdbinit (rp): improve T_OBJECT dump.  show the contents of the
  instance variables table.
------------------------------------------------------------------------
r56737 | mrkn | 2016-11-12 15:07:46 +0900 (Sat, 12 Nov 2016) | 9 lines

rational.c: optimize construction of Rational

* rational.c (nurat_{s_new_bang,canonicalize,f_rational,s_convert}):
  optimize construction of Rational from numbers.
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* rational.c (read_{num,rat_nos}): optimize construction of Rational
  from string.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56736 | mrkn | 2016-11-12 15:07:24 +0900 (Sat, 12 Nov 2016) | 10 lines

rational.c: purge f_cmp

* rational.c (f_cmp, nurat_expt): purge f_cmp.
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* rational.c (INT_POSITIVE_P): added.

* numeric.c (FIXNUM_POSITIVE_P): move the definition into internal.h.

* internal.h (FIXNUM_POSITIVE_P): ditto.
------------------------------------------------------------------------
r56735 | mrkn | 2016-11-12 15:07:01 +0900 (Sat, 12 Nov 2016) | 4 lines

rational.c: optimize Rational#-@

* rational.c (nurat_negate): introduced to optimize Rational#-@.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56734 | mrkn | 2016-11-12 11:24:32 +0900 (Sat, 12 Nov 2016) | 9 lines

rational.c: optimize Rational#==

* rational.c (nurat_eqeq_p): optimize Rational#==.
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* numeric.c (rb_int_equal): rename from int_equal and remove static
  to be exported.

* internal.h (rb_int_equal): exported.
------------------------------------------------------------------------
r56733 | mrkn | 2016-11-12 10:29:01 +0900 (Sat, 12 Nov 2016) | 9 lines

rational.c: optimize Rational#<=>

* rational.c (nurat_cmp): optimize Rational#<=>.
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* numeric.c (rb_int_cmp): rename from int_cmp and remove static
  to be exported.

* internal.h (rb_int_cmp): exported.
------------------------------------------------------------------------
r56725 | mrkn | 2016-11-12 01:38:28 +0900 (Sat, 12 Nov 2016) | 9 lines

rational.c: optimize Rational#**

* rational.c (nurat_expt): optimize Rational#**.
  Author: Tadashi Saito <tad.a.digger@gmail.com>

* numeric.c (rb_float_pow): rename flo_pow() to rb_float_pow()
  and remove static to be exporetd.

* internal.h (rb_int_pow, rb_float_pow): exported.
------------------------------------------------------------------------
r56724 | mrkn | 2016-11-12 01:18:13 +0900 (Sat, 12 Nov 2016) | 3 lines

rational.c: add argument type check assertions in f_muldiv

* rational.c (f_muldiv): add assertions to check argument types
------------------------------------------------------------------------
r56723 | mrkn | 2016-11-12 01:17:56 +0900 (Sat, 12 Nov 2016) | 4 lines

rational.c: optimize Rational#/

* rational.c (f_muldiv, nurat_div): optimize Rational#/.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56719 | mrkn | 2016-11-12 00:55:30 +0900 (Sat, 12 Nov 2016) | 25 lines

rational.c: avoid needless object allocation with nurat_to_double

* rational.c (nurat_to_double): introduce to convert rational to double
  without object allocation.

* rational.c (rb_rational_plus, nurat_{sub,mul,to_f}): rewrite by using
  nurat_to_double.

* bignum.c (rb_big_fdiv_double): introduce to calculate fdiv and return
  the result as a double value.

* bignum.c (big_fdiv{,_int,_float}): change the return types for
  implementing rb_big_fdiv_double.

* bignum.c (rb_big_fdiv): rewrite by using rb_big_fdiv_double.

* numeric.c (rb_int_fdiv_double): introduce to calculate fdiv and return
  the result as a double value.

* numeric.c (fix_fdiv_double): rewrite from fix_fdiv to return the
  result as a double value.

* numeric.c (rb_int_fdiv): rewrite by using rb_int_fdiv_double.

* internal.h (rb_{big,int}_fdiv_double): exported.
------------------------------------------------------------------------
r56716 | nagachika | 2016-11-12 00:43:43 +0900 (Sat, 12 Nov 2016) | 2 lines

fix a constant name typo in redmine-backporter.rb
[ci skip]
------------------------------------------------------------------------
r56713 | svn | 2016-11-12 00:11:05 +0900 (Sat, 12 Nov 2016) | 1 line

* 2016-11-12
------------------------------------------------------------------------
r56712 | mrkn | 2016-11-12 00:11:04 +0900 (Sat, 12 Nov 2016) | 5 lines

rational.c: optimize rational * {float, huge rational, bignum}

* rational.c (f_muldiv, nurat_mul):
  optimize rational * {float, huge rational, bignum}.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56711 | mrkn | 2016-11-11 23:57:11 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: optimize rational - {float,rational}

* rational.c (f_addsub, nurat_sub): optimize rational - {float,rational}.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56710 | mrkn | 2016-11-11 23:45:11 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: optimize rational - integer

* rational.c (nurat_sub): optimize rational - integer.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56709 | mrkn | 2016-11-11 23:42:53 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: optimize rational + rational

* rational.c (f_addsub): optimize rational + rational.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56708 | mrkn | 2016-11-11 23:39:34 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: prevent unused warning

* rational.c (f_mod): define only when NDEBUG is not defined to prevent
  unused warning
------------------------------------------------------------------------
r56707 | mrkn | 2016-11-11 23:39:25 +0900 (Fri, 11 Nov 2016) | 8 lines

numeric.c, rational.c: refactor by using FIXNUM_NEGATIVE_P and FIXNUM_ZERO_P

* numeric.c (num_zero_p, fix_divide, fix_mod, fix_divmod): refactor by using
  FIXNUM_NEGATIVE_P and FIXNUM_ZERO_P.

* rational.c (INT_NEGATIVE_P, INT_ZERO_P): ditto.

* internal.h: move FIXNUM_NEGATIVE_P and FIXNUM_ZERO_P from numeric.c
------------------------------------------------------------------------
r56706 | mrkn | 2016-11-11 23:39:16 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: optimize Integer#gcd.

* rational.c (f_gcd_normal): optimize Integer#gcd.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56705 | mrkn | 2016-11-11 23:39:07 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: optimize rational + integer.

* rational.c (rb_rational_plus): optimize rational + integer.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56704 | mrkn | 2016-11-11 23:38:59 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: optimize rational + float.

* rational.c (rb_rational_plus): optimize rational + float.
  Author: Tadashi Saito <tad.a.digger@gmail.com>
------------------------------------------------------------------------
r56703 | nobu | 2016-11-11 20:52:03 +0900 (Fri, 11 Nov 2016) | 4 lines

range.c: check loading

* range.c (range_loader): check loading values if the data came
  from an initialized range object. [ruby-core:78067] [Bug #12915]
------------------------------------------------------------------------
r56702 | nobu | 2016-11-11 16:26:14 +0900 (Fri, 11 Nov 2016) | 4 lines

rational.c: check load

* rational.c (nurat_loader, nurat_marshal_load): check if loading
  values are Integer.  [ruby-core:78071] [Bug #12918]
------------------------------------------------------------------------
r56701 | nobu | 2016-11-11 16:08:53 +0900 (Fri, 11 Nov 2016) | 7 lines

rational.c: optimize

* rational.c (f_{lt,eqeq,zero,one,minus_one,kind_of}_p): add RTEST
  to results of funcalls.

* rational.c (f_negative_p, k_{integer,float,rational}_p):
  optimize.
------------------------------------------------------------------------
r56700 | nobu | 2016-11-11 16:08:52 +0900 (Fri, 11 Nov 2016) | 1 line

rational.c: use RB_INTEGER_TYPE_P
------------------------------------------------------------------------
r56699 | akr | 2016-11-11 12:04:38 +0900 (Fri, 11 Nov 2016) | 2 lines

Enable the document for Kernel[#.]pp.

------------------------------------------------------------------------
r56698 | nobu | 2016-11-11 09:08:41 +0900 (Fri, 11 Nov 2016) | 4 lines

vm_eval.c: reorder

* vm_eval.c (vm_call0_body): reorder the conditions.
  [ruby-core:78073] [Bug #12920]
------------------------------------------------------------------------
r56697 | mrkn | 2016-11-11 00:23:43 +0900 (Fri, 11 Nov 2016) | 3 lines

rational.c: optimize Rational#to_f by using rb_int_fdiv

* rational.c (nurat_to_f): optimize Rational#to_f by using rb_int_fdiv.
------------------------------------------------------------------------
r56696 | svn | 2016-11-11 00:23:34 +0900 (Fri, 11 Nov 2016) | 1 line

* 2016-11-11
------------------------------------------------------------------------
r56695 | mrkn | 2016-11-11 00:23:33 +0900 (Fri, 11 Nov 2016) | 5 lines

numeric.c, internal.h: export int_fdiv() as rb_int_fdiv()

* numeric.c (rb_int_fdiv): export int_fdiv() as rb_int_fdiv().

* internal.h (rb_int_fdiv): add declaration of rb_int_fdiv().
------------------------------------------------------------------------
r56694 | nobu | 2016-11-10 23:18:52 +0900 (Thu, 10 Nov 2016) | 4 lines

vm_eval.c: fix refined method when prepended

* vm_eval.c (vm_call0_body): refined module should not be skipped
  as prepended.  [ruby-core:78073] [Bug #12920]
------------------------------------------------------------------------
r56693 | nobu | 2016-11-10 19:39:51 +0900 (Thu, 10 Nov 2016) | 3 lines

range.c: check if range modifiable

* range.c (range_modify): frozen object cannot be modified.
------------------------------------------------------------------------
r56692 | nobu | 2016-11-10 16:47:44 +0900 (Thu, 10 Nov 2016) | 5 lines

parse.y: new_attr_op_assign in ripper needs symbol

* parse.y (command_asgn, arg): new_attr_op_assign in ripper
  expects a Symbol VALUE as the operator, not an ID, so convert
  literal IDs to Symbols.  [ruby-core:78069] [Bug #12916]
------------------------------------------------------------------------
r56691 | nobu | 2016-11-10 16:47:43 +0900 (Thu, 10 Nov 2016) | 4 lines

test_files.rb: sample size

* test/ripper/test_files.rb (assert_parse_files): extract at least
  one sample.
------------------------------------------------------------------------
r56690 | nobu | 2016-11-10 15:45:57 +0900 (Thu, 10 Nov 2016) | 4 lines

test_files.rb: separate tests

* test/ripper/test_files.rb (assert_parse_files): separate tests
  for each directories.
------------------------------------------------------------------------
r56689 | hsbt | 2016-11-10 15:38:14 +0900 (Thu, 10 Nov 2016) | 4 lines

Use environment variable for system ruby detection on appveyor.

 * Use ruby_version instead of 22-x64 and 21-x64
 * Use 23-x64 to build Ruby
------------------------------------------------------------------------
r56688 | nobu | 2016-11-10 12:50:47 +0900 (Thu, 10 Nov 2016) | 4 lines

make-snapshot: repository options

* tool/make-snapshot: add -svn and -git options to direct the
  repository to export.
------------------------------------------------------------------------
r56687 | nobu | 2016-11-10 12:50:46 +0900 (Thu, 10 Nov 2016) | 4 lines

make-snapshot: program name

* tool/make-snapshot (package): abort with the basename of this
  script.
------------------------------------------------------------------------
r56686 | shugo | 2016-11-10 11:23:58 +0900 (Thu, 10 Nov 2016) | 11 lines

Extend timeout for RubyCI chkbuild on Debian 8.2 x86_64.

On that machine, TestQueue#test_thr_kill often fails as follows:

      1) Failure:
    TestQueue#test_thr_kill [/home/hsbt/chkbuild/tmp/build/20161109T213002Z/ruby/test/thread/test_queue.rb:155]:
    only 171/250 done in 30 seconds.

Even if it passes, it takes about 30 seconds:

    [11160/16832] TestQueue#test_thr_kill = 29.80 s
------------------------------------------------------------------------
r56685 | svn | 2016-11-10 09:49:17 +0900 (Thu, 10 Nov 2016) | 1 line

* 2016-11-10
------------------------------------------------------------------------
r56684 | nobu | 2016-11-10 09:49:17 +0900 (Thu, 10 Nov 2016) | 5 lines

test_process.rb: fix pgroup test

* test/ruby/test_process.rb (TestProcess#test_execopts_pgroup):
  use dynamically assigned pid for the process group, instead of a
  magic number 2.  [ruby-core:78051] [Bug #12909]
------------------------------------------------------------------------
r56683 | nobu | 2016-11-10 09:49:16 +0900 (Thu, 10 Nov 2016) | 3 lines

range.c: indent [ci skip]

* range.c (range_alloc): adjust indent of comments.
------------------------------------------------------------------------
r56682 | nobu | 2016-11-09 11:42:30 +0900 (Wed, 09 Nov 2016) | 4 lines

default.mspec: end of options

* spec/default.mspec (MSpecScript): add the end of options to
  runruby.rb, to fix failure at ruby/spec@a0e55db.
------------------------------------------------------------------------
r56681 | a_matsuda | 2016-11-09 05:25:44 +0900 (Wed, 09 Nov 2016) | 6 lines

Fix undefined method 'dump' for nil:NilClass (NoMethodError)

Patch by: Dmitry Vorotilin <d.vorotilin@gmail.com> (@route)
Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1475
------------------------------------------------------------------------
r56680 | a_matsuda | 2016-11-09 04:55:59 +0900 (Wed, 09 Nov 2016) | 8 lines

Fix grammar errors

Patch by: Chris Tweedie <cltweedie@gmail.com> (@cltweedie)
Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1074

[ci skip]
------------------------------------------------------------------------
r56679 | a_matsuda | 2016-11-09 04:43:58 +0900 (Wed, 09 Nov 2016) | 9 lines

Update documentation of fetch

The sentence `Negative values of +index+ count from the end of the array.` can be interpreted that it only holds if a block is given. Clarify it.

Patch by: Lukas Elmer <lukas.elmer@gmail.com> (@lukaselmer)
Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1472
[ci skip]
------------------------------------------------------------------------
r56678 | a_matsuda | 2016-11-09 04:37:59 +0900 (Wed, 09 Nov 2016) | 15 lines

Fix typo in code doc of proc.c

Insure has a different meaning than ensure and we mean the latter in
this case.

*Ensure* is to do or have what is necessary for success.
Example: These blankets ensure that you'll be warm enough.

*Insure* is to cover with an insurance policy.
Example: I will insure my home with additional fire and flood policies.

Patch by: Dimitris Zorbas <zorbash@skroutz.gr> (@Zorbash)
Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1352
------------------------------------------------------------------------
r56677 | kazu | 2016-11-09 00:04:29 +0900 (Wed, 09 Nov 2016) | 1 line

Add a space [ci skip]
------------------------------------------------------------------------
r56676 | svn | 2016-11-09 00:01:56 +0900 (Wed, 09 Nov 2016) | 1 line

* 2016-11-09
------------------------------------------------------------------------
r56675 | kazu | 2016-11-09 00:01:55 +0900 (Wed, 09 Nov 2016) | 1 line

Add ticket number [ci skip]
------------------------------------------------------------------------
r56674 | a_matsuda | 2016-11-08 20:57:00 +0900 (Tue, 08 Nov 2016) | 6 lines

Update comment about default constant

Patch by: Dave Takahashi <dtcello@gmail.com> (@dtakahas)
Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1151
------------------------------------------------------------------------
r56673 | nobu | 2016-11-08 19:44:21 +0900 (Tue, 08 Nov 2016) | 4 lines

vcs.rb: fix GIT.get_revisions

* tool/vcs.rb (VCS::GIT.get_revisions): fix for out-of-place
  build.
------------------------------------------------------------------------
r56672 | svn | 2016-11-08 18:31:53 +0900 (Tue, 08 Nov 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56671 | naruse | 2016-11-08 18:31:52 +0900 (Tue, 08 Nov 2016) | 3 lines

Moved deleted ChangeLog into doc/ChangeLog-2.4.0

And Add doc/ChangeLog-2016 as an anchor.
------------------------------------------------------------------------
r56670 | nobu | 2016-11-08 16:47:23 +0900 (Tue, 08 Nov 2016) | 5 lines

vcs.rb: format from git-log

* tool/vcs.rb (VCS::GIT#export_changelog): re-format from git-log
  to svn style log, instead of git-svn, because cloned working
  directory would not have .git/svn.
------------------------------------------------------------------------
r56669 | nobu | 2016-11-08 16:45:19 +0900 (Tue, 08 Nov 2016) | 4 lines

vcs.rb: expand srcdir

* tool/vcs.rb (VCS::GIT#initialize): expand srcdir if it is a
  local path.
------------------------------------------------------------------------
r56668 | nobu | 2016-11-08 15:39:46 +0900 (Tue, 08 Nov 2016) | 6 lines

vcs.rb: fix srcdir in VCS::GIT

* tool/vcs.rb (VCS::GIT.cmd_args): add chdir option to arguments
  for IO.popen if srcdir is a local path.  unless -srcdir command
  line option is given, srcdir is the default URL.
  [ruby-core:78036] [Bug #12908]
------------------------------------------------------------------------
r56667 | svn | 2016-11-08 00:26:11 +0900 (Tue, 08 Nov 2016) | 1 line

* 2016-11-08
------------------------------------------------------------------------
r56666 | kazu | 2016-11-08 00:26:10 +0900 (Tue, 08 Nov 2016) | 3 lines

Add entry for Enumerator::Lazy#chunk_while

[ci skip][GH-1186]
------------------------------------------------------------------------
r56665 | kazu | 2016-11-07 21:10:36 +0900 (Mon, 07 Nov 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56664 | hsbt | 2016-11-07 18:46:42 +0900 (Mon, 07 Nov 2016) | 1 line

Added Entry for Rubygems 2.6.8 update.
------------------------------------------------------------------------
r56663 | nobu | 2016-11-07 16:45:18 +0900 (Mon, 07 Nov 2016) | 4 lines

test_optimization.rb: for r56208

* test/ruby/test_optimization.rb (test_tailcall_condition_block):
  test for r56208.  [ruby-core:78015] [Bug #12905]
------------------------------------------------------------------------
r56662 | shugo | 2016-11-07 15:57:14 +0900 (Mon, 07 Nov 2016) | 1 line

Extend Net::HTTP#open_timeout for chkbuild on Solaris 10s.
------------------------------------------------------------------------
r56660 | naruse | 2016-11-07 14:53:42 +0900 (Mon, 07 Nov 2016) | 1 line

Add NEWS about removing ChangeLog
------------------------------------------------------------------------
r56658 | nobu | 2016-11-07 12:47:46 +0900 (Mon, 07 Nov 2016) | 3 lines

vcs.rb: suppress warning

* tool/vcs.rb (DebugPOpen): suppress refinements warning in 2.0.
------------------------------------------------------------------------
r56657 | nobu | 2016-11-07 12:28:57 +0900 (Mon, 07 Nov 2016) | 3 lines

add cast

* hash.c (rb_objid_hash): need to cast down.
------------------------------------------------------------------------
r56656 | nobu | 2016-11-07 12:25:28 +0900 (Mon, 07 Nov 2016) | 7 lines

vcs.rb: exclude beginning revision

* tool/make-snapshot: pass the last revision in the last ChangeLog
  file without increment.

* tool/vcs.rb (export_changelog): exclude the beginning revision
  of the range uniformly. svn log includes it, but git log not.
------------------------------------------------------------------------
r56655 | nobu | 2016-11-07 11:54:28 +0900 (Mon, 07 Nov 2016) | 6 lines

vcs.rb: unnecessary arguments

* tool/make-snapshot: $srcdir is optional.

* tool/vcs.rb (export_changelog): remove unnecessary arguments.
  VCS should know srcdir and url.
------------------------------------------------------------------------
r56654 | nobu | 2016-11-07 11:54:27 +0900 (Mon, 07 Nov 2016) | 4 lines

vcs.rb: use chdir option

* tool/vcs.rb (export_changelog): for old git, use chdir option
  instead of git -C option, and set language environmets to C.
------------------------------------------------------------------------
r56653 | shugo | 2016-11-07 11:10:00 +0900 (Mon, 07 Nov 2016) | 1 line

Just check that interruption doesn't cause SEGV.
------------------------------------------------------------------------
r56652 | nobu | 2016-11-07 10:23:04 +0900 (Mon, 07 Nov 2016) | 4 lines

make-snapshot: sort globbed results

* tool/make-snapshot (package): globbed results order is
  undefined.
------------------------------------------------------------------------
r56651 | ko1 | 2016-11-07 10:03:04 +0900 (Mon, 07 Nov 2016) | 1 line

fix NEWS message
------------------------------------------------------------------------
r56650 | ko1 | 2016-11-07 09:45:00 +0900 (Mon, 07 Nov 2016) | 19 lines

	Introduce table improvement by Vladimir Makarov <vmakarov@redhat.com>.
	[Feature #12142]
	See header of st.c for improvment details.

	You can see all of code history here:
	<https://github.com/vnmakarov/ruby/tree/hash_tables_with_open_addressing>

	This improvement is discussed at
	<https://bugs.ruby-lang.org/issues/12142>
	with many people, especially with Yura Sokolov.

	* st.c: improve st_table.

	* include/ruby/st.h: ditto.

	* internal.h, numeric.c, hash.c (rb_dbl_long_hash): extract a function.

	* ext/-test-/st/foreach/foreach.c: catch up this change.

------------------------------------------------------------------------
r56649 | nobu | 2016-11-07 09:04:20 +0900 (Mon, 07 Nov 2016) | 3 lines

vcs.rb: popen with env

* tool/vcs.rb (IO.popen): support passing environment variables.
------------------------------------------------------------------------
r56648 | naruse | 2016-11-07 02:34:56 +0900 (Mon, 07 Nov 2016) | 3 lines

revision.h shouldn't depend ChangeLog

Maybe it needs vcs dependent ways.
------------------------------------------------------------------------
r56645 | naruse | 2016-11-07 00:56:27 +0900 (Mon, 07 Nov 2016) | 1 line

Obsolete ChangeLog [Feature #12283]
------------------------------------------------------------------------
r56644 | usa | 2016-11-07 00:35:01 +0900 (Mon, 07 Nov 2016) | 5 lines

* test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
  ignore on Windows because we cannot handle signaled status of child
  ruby process on this platform.


------------------------------------------------------------------------
r56643 | svn | 2016-11-07 00:33:10 +0900 (Mon, 07 Nov 2016) | 1 line

* 2016-11-07
------------------------------------------------------------------------
r56642 | shugo | 2016-11-07 00:33:10 +0900 (Mon, 07 Nov 2016) | 1 line

confirm that status.termsig is not nil.
------------------------------------------------------------------------
r56641 | shugo | 2016-11-06 23:41:39 +0900 (Sun, 06 Nov 2016) | 2 lines

* test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
  send SIGKILL if the child process doesn't die within 1 second.
------------------------------------------------------------------------
r56640 | naruse | 2016-11-06 23:01:21 +0900 (Sun, 06 Nov 2016) | 1 line

remove debug sleep & exit
------------------------------------------------------------------------
r56638 | naruse | 2016-11-06 21:57:45 +0900 (Sun, 06 Nov 2016) | 5 lines

* tool/vcs.rb (export_changelog): generate ChangeLog file from
  vcs's log. [Feature #12283]

* tool/make-snapshot (package): overwrite ChangeLog by generated
  ChangeLog.
------------------------------------------------------------------------
r56637 | hsbt | 2016-11-06 21:36:52 +0900 (Sun, 06 Nov 2016) | 1 line

* NEWS: Added entry for RDoc 5.
------------------------------------------------------------------------
r56636 | hsbt | 2016-11-06 21:36:47 +0900 (Sun, 06 Nov 2016) | 1 line

* NEWS: ordered entries and adjust styles.
------------------------------------------------------------------------
r56635 | hsbt | 2016-11-06 18:23:35 +0900 (Sun, 06 Nov 2016) | 1 line

* NEWS: Added entry for [Feature #12160][ruby-core:74239]
------------------------------------------------------------------------
r56634 | hsbt | 2016-11-06 18:18:30 +0900 (Sun, 06 Nov 2016) | 1 line

* NEWS: Added entry for r56624.
------------------------------------------------------------------------
r56633 | svn | 2016-11-06 15:58:26 +0900 (Sun, 06 Nov 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56632 | shugo | 2016-11-06 15:58:25 +0900 (Sun, 06 Nov 2016) | 2 lines

* configure.in (-Wno-maybe-uninitialized): gcc 6 also shows the same
  warnings as described in r49410.
------------------------------------------------------------------------
r56631 | nobu | 2016-11-06 14:42:53 +0900 (Sun, 06 Nov 2016) | 5 lines

include and prepend check no args

* eval.c (rb_mod_include, rb_mod_prepend): check if arguments are
  given, as well as Kernel#extend.  [ruby-dev:49854] [Bug #12887]
  [Fix GH-1470]
------------------------------------------------------------------------
r56630 | nobu | 2016-11-06 14:39:01 +0900 (Sun, 06 Nov 2016) | 1 line

ChangeLog: remove garbage lines
------------------------------------------------------------------------
r56629 | nobu | 2016-11-06 14:38:59 +0900 (Sun, 06 Nov 2016) | 1 line

ChangeLog: make us-ascii
------------------------------------------------------------------------
r56628 | nobu | 2016-11-06 14:22:41 +0900 (Sun, 06 Nov 2016) | 1 line

ChangeLog: make us-ascii
------------------------------------------------------------------------
r56627 | kazu | 2016-11-06 12:29:22 +0900 (Sun, 06 Nov 2016) | 1 line

add a ticket number [ci skip]
------------------------------------------------------------------------
r56626 | svn | 2016-11-06 12:04:34 +0900 (Sun, 06 Nov 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56625 | shugo | 2016-11-06 12:04:33 +0900 (Sun, 06 Nov 2016) | 3 lines

* test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast,
  test_make_socket_ipv6_multicast_hops): skip if IPv6 multicast
  address is not available.
------------------------------------------------------------------------
r56624 | nobu | 2016-11-06 11:53:25 +0900 (Sun, 06 Nov 2016) | 3 lines

irb.rb: Binding#irb

* lib/irb.rb (Binding#irb): new method like Binding#pry.
------------------------------------------------------------------------
r56623 | shugo | 2016-11-06 11:50:51 +0900 (Sun, 06 Nov 2016) | 2 lines

* test/net/smtp/test_smtp.rb (test_tls_connect, test_tls_connect):
  use Socket.tcp_server_sockets in case localhost is resolved to ::1.
------------------------------------------------------------------------
r56622 | nobu | 2016-11-06 11:49:49 +0900 (Sun, 06 Nov 2016) | 3 lines

irb.rb: IRB::Irb#run

* lib/irb.rb (IRB::Irb#run): split from IRB.start.
------------------------------------------------------------------------
r56621 | nobu | 2016-11-06 11:45:14 +0900 (Sun, 06 Nov 2016) | 4 lines

e2mmap.rb: remove old definition

* lib/e2mmap.rb (E2MM.def_exception): remove old definition if
  exists so that works multiple times.
------------------------------------------------------------------------
r56620 | shugo | 2016-11-06 10:20:44 +0900 (Sun, 06 Nov 2016) | 1 line

Use Signal.signame instead of Signal.list.
------------------------------------------------------------------------
r56619 | shugo | 2016-11-06 10:06:45 +0900 (Sun, 06 Nov 2016) | 2 lines

* test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
  don't use sleep to run faster.
------------------------------------------------------------------------
r56618 | nobu | 2016-11-06 09:58:49 +0900 (Sun, 06 Nov 2016) | 4 lines

process.c: PATH env in spawn

* process.c (rb_exec_fillarg): honor the given path environment
  variable.  [ruby-core:53103] [Bug #8004]
------------------------------------------------------------------------
r56617 | sho-h | 2016-11-06 09:10:49 +0900 (Sun, 06 Nov 2016) | 2 lines

* doc/standard_library.rdoc: fix a typo [ci skip]

------------------------------------------------------------------------
r56616 | nobu | 2016-11-06 08:58:02 +0900 (Sun, 06 Nov 2016) | 4 lines

shell.rb: suppress warnings

* lib/shell.rb: initialize class instance variables and remove
  writer methods to be overwritten soon.
------------------------------------------------------------------------
r56615 | nobu | 2016-11-06 08:54:17 +0900 (Sun, 06 Nov 2016) | 4 lines

e2mmap.rb: suppress a warning

* lib/e2mmap.rb (bind): eval with the location.  undefine
  predefined method before overwriting to suppress a warning.
------------------------------------------------------------------------
r56614 | svn | 2016-11-06 03:09:37 +0900 (Sun, 06 Nov 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56613 | svn | 2016-11-06 03:09:37 +0900 (Sun, 06 Nov 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56612 | naruse | 2016-11-06 03:09:36 +0900 (Sun, 06 Nov 2016) | 1 line

Add ChangeLog-2015 as an anchor of new ChangeLog see #12283
------------------------------------------------------------------------
r56611 | a_matsuda | 2016-11-06 01:56:52 +0900 (Sun, 06 Nov 2016) | 1 line

Alias regist_scanner to register_scanner
------------------------------------------------------------------------
r56610 | shugo | 2016-11-06 01:42:27 +0900 (Sun, 06 Nov 2016) | 3 lines

* compile.c (tailcallable_p): disable tail call optimization for
  toplevel, eval, and load to avoid SEGV when interrupted by SIGINT.
  [ruby-core:76327] [Bug #12576]
------------------------------------------------------------------------
r56609 | ko1 | 2016-11-06 01:31:25 +0900 (Sun, 06 Nov 2016) | 5 lines

* vm_insnhelper.h: rename REG_(CFP|PC|SP|EP) to VM_REG_....
  [Bug #12527]

* vm_exec.c: ditto.

------------------------------------------------------------------------
r56608 | nobu | 2016-11-06 00:49:29 +0900 (Sun, 06 Nov 2016) | 3 lines

dir.c: merge rb_glob2 into rb_glob

* dir.c (rb_glob): merge rb_glob2 which is used only here.
------------------------------------------------------------------------
r56607 | akr | 2016-11-06 00:46:48 +0900 (Sun, 06 Nov 2016) | 7 lines

Enumerator::Lazy#chunk_while defined.

* enumerator.c (InitVM_Enumerator): Enumerator::Lazy#chunk_while
  defined.  [Fix GH-1186]
  https://github.com/ruby/ruby/pull/1186


------------------------------------------------------------------------
r56606 | nobu | 2016-11-06 00:45:42 +0900 (Sun, 06 Nov 2016) | 4 lines

numeric.c: raise TypeError at wrong argument

* numeric.c (int_pos_p, int_neg_p): raise TypeError if not an
  Integer instead of returning nil.
------------------------------------------------------------------------
r56605 | ktsj | 2016-11-06 00:30:55 +0900 (Sun, 06 Nov 2016) | 2 lines

* vm_eval.c (vm_call0_cfunc_with_frame): pass method id to
  dtrace hook. follow up r56592.
------------------------------------------------------------------------
r56604 | akr | 2016-11-06 00:19:21 +0900 (Sun, 06 Nov 2016) | 7 lines

fix Resolv::LOC::Coord.create.

* lib/resolv.rb (Resolv::LOC::Coord.create): fixed.
  [ruby-core:72567] [Bug #11912] fixed by Eric Wong and Kazuhiro
  NISHIYAMA.


------------------------------------------------------------------------
r56603 | naruse | 2016-11-06 00:05:30 +0900 (Sun, 06 Nov 2016) | 3 lines

* configure.in (-Wimplicit-fallthrough): gcc7 introduces case
  fall through warnings but it is too noisy.
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=7652
------------------------------------------------------------------------
r56602 | svn | 2016-11-06 00:02:18 +0900 (Sun, 06 Nov 2016) | 1 line

* 2016-11-06
------------------------------------------------------------------------
r56601 | shugo | 2016-11-06 00:02:17 +0900 (Sun, 06 Nov 2016) | 2 lines

* numeric.c (rb_int_round): cast to SIGNED_VALUE to suppress
  warnings by -Wsign-compare.
------------------------------------------------------------------------
r56600 | naruse | 2016-11-06 00:00:37 +0900 (Sun, 06 Nov 2016) | 3 lines

* file.c (rb_home_dir_of): convert given username into filesystem
  encoding. [ruby-core:76682] [Bug #12652]
  patched by Davis Mosans
------------------------------------------------------------------------
r56599 | akr | 2016-11-05 23:59:51 +0900 (Sat, 05 Nov 2016) | 6 lines

fix vtm_add_offset yday on last day of year.

* time.c (vtm_add_offset): Fix yday on last day of year.
  [ruby-core:72878] [Bug #11994] Fixed by Andrew White.


------------------------------------------------------------------------
r56598 | shugo | 2016-11-05 23:49:39 +0900 (Sat, 05 Nov 2016) | 1 line

Add the ticket number.
------------------------------------------------------------------------
r56597 | shugo | 2016-11-05 23:39:06 +0900 (Sat, 05 Nov 2016) | 1 line

* lib/net/http.rb (Net::HTTP.post): new convenience method to send a POST request.
------------------------------------------------------------------------
r56596 | naruse | 2016-11-05 23:08:16 +0900 (Sat, 05 Nov 2016) | 2 lines

* lib/net/http.rb (transport_request): other than HTTPContinue
  in 1xx (HTTPInformation) also needs to continue. [Bug #12890]
------------------------------------------------------------------------
r56595 | akr | 2016-11-05 23:03:34 +0900 (Sat, 05 Nov 2016) | 8 lines

Time.parse's "now" argument as nil works again.

* lib/time.rb (make_time): "now" argument as nil works again.
  This is broken since Ruby 2.2.
  Mathieu Jobin pointed a problem.
  https://github.com/ruby/ruby/commit/e4b05d91eb0d48fd172abf015c493bb42d755d07#commitcomment-17421387


------------------------------------------------------------------------
r56594 | knu | 2016-11-05 22:53:38 +0900 (Sat, 05 Nov 2016) | 9 lines

IPAddr#== and IPAddr#<=> no longer raise an exception if coercion fails

* lib/ipaddr.rb (IPAddr#==): If coercion fails, return false
  instead of passing through the exception. [ruby-core:77451]
  [Bug #12799]

* lib/ipaddr.rb (IPAddr#<=>): If coercion fails, return nil
  instead of passing through the exception. [ruby-core:77451]
  [Bug #12799]
------------------------------------------------------------------------
r56593 | ktsj | 2016-11-05 22:15:27 +0900 (Sat, 05 Nov 2016) | 7 lines

* vm_trace.c (tracepoint_attr_callee_id, rb_tracearg_callee_id):
  add TracePoint#callee_id. [ruby-core:77241] [Feature #12747]

* cont.c, eval.c, gc.c, include/ruby/intern.h, insns.def, thread.c,
  vm.c, vm_backtrace.c, vm_core.h, vm_eval.c, vm_insnhelper.c, vm_trace.c: ditto.

* test/ruby/test_settracefunc.rb: tests for above.
------------------------------------------------------------------------
r56592 | ktsj | 2016-11-05 22:15:26 +0900 (Sat, 05 Nov 2016) | 5 lines

* eval.c, method.h, proc.c, vm.c, vm_eval.c, vm_insnhelper.c, vm_method.c:
  TracePoint#method_id should return method_id, not callee_id.
  [ruby-core:77241] [Feature #12747]

* test/ruby/test_settracefunc.rb: change accordingly.
------------------------------------------------------------------------
r56591 | kazu | 2016-11-05 21:59:23 +0900 (Sat, 05 Nov 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56590 | nobu | 2016-11-05 18:49:39 +0900 (Sat, 05 Nov 2016) | 6 lines

numeric.c: round to nearest even

* numeric.c (flo_round, int_round): support round-to-nearest-even
  semantics of IEEE 754 to match sprintf behavior, and add `half:`
  optional keyword argument for the old behavior.
  [ruby-core:76273] [Bug #12548]
------------------------------------------------------------------------
r56589 | knu | 2016-11-05 18:23:14 +0900 (Sat, 05 Nov 2016) | 4 lines

Add Set#compare_by_identity and Set#compare_by_identity?

* lib/set.rb (Set#compare_by_identity, Set#compare_by_identity?):
  New methods. [Feature #12210]
------------------------------------------------------------------------
r56588 | svn | 2016-11-05 18:18:11 +0900 (Sat, 05 Nov 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56587 | svn | 2016-11-05 18:18:11 +0900 (Sat, 05 Nov 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56586 | hsbt | 2016-11-05 18:18:10 +0900 (Sat, 05 Nov 2016) | 2 lines

* lib/rdoc/*, test/rdoc/*: Update rdoc-5.0.0
  Release note: https://github.com/rdoc/rdoc/blob/b825775647f62c5b525e9780a28ff2fbb1d5bf6f/History.rdoc#500--2016-11-05
------------------------------------------------------------------------
r56585 | naruse | 2016-11-05 17:59:43 +0900 (Sat, 05 Nov 2016) | 1 line

Refix r56559 with Fs.noatime? [ruby-core:77943] [Bug #12903]
------------------------------------------------------------------------
r56584 | naruse | 2016-11-05 17:59:42 +0900 (Sat, 05 Nov 2016) | 1 line

rename to noatime?
------------------------------------------------------------------------
r56583 | akr | 2016-11-05 17:33:03 +0900 (Sat, 05 Nov 2016) | 7 lines

extract_resources uses each_resource instead of each_answer.

* lib/resolv.rb (Resolv::DNS#extract_resources): Use each_resource
  instead of each_answer.
  [ruby-core:75461] [Bug#12372] reported by Rafael Fernandez Lopez.


------------------------------------------------------------------------
r56582 | naruse | 2016-11-05 17:23:57 +0900 (Sat, 05 Nov 2016) | 2 lines

* ext/-test/file/fs.c (get_atime_p): Updating of file access times
  is enabled or not.
------------------------------------------------------------------------
r56581 | nobu | 2016-11-05 16:28:09 +0900 (Sat, 05 Nov 2016) | 4 lines

chomp option

* io.c (extract_getline_opts): extract chomp option.
  [Feature #12553]
------------------------------------------------------------------------
r56580 | sho-h | 2016-11-05 16:18:48 +0900 (Sat, 05 Nov 2016) | 3 lines

* doc/standard_library.rdoc: remove "thread.rb" phrase because
  Queue and ConditionVariable were moved to built-in class.

------------------------------------------------------------------------
r56579 | nobu | 2016-11-05 16:14:19 +0900 (Sat, 05 Nov 2016) | 4 lines

mkconfig.rb: trailing space

* tool/mkconfig.rb: [DOC] remove trailing space from a generated
  line.
------------------------------------------------------------------------
r56578 | nobu | 2016-11-05 16:10:05 +0900 (Sat, 05 Nov 2016) | 4 lines

openssl/ut_eof.rb: rename TestEOF

* test/openssl/ut_eof.rb (OpenSSL::TestEOF): move TestEOF module
  under OpenSSL to get rid of conflict with test/ruby/ut_eof.rb.
------------------------------------------------------------------------
r56577 | sho-h | 2016-11-05 15:59:31 +0900 (Sat, 05 Nov 2016) | 2 lines

* tool/mkconfig.rb: [DOC] add rbconfig documentation.

------------------------------------------------------------------------
r56576 | shugo | 2016-11-05 15:47:36 +0900 (Sat, 05 Nov 2016) | 7 lines

* lib/net/smtp.rb (tlsconnect): support timeout for TLS handshake.
  [ruby-core:76893] [Bug #12678]

* lib/net/protocol.rb (ssl_socket_connect): new method to implement
  timeout for TLS handshake.

* lib/net/http.rb (connect): use Net::Protocol#ssl_socket_connect.
------------------------------------------------------------------------
r56575 | knu | 2016-11-05 14:40:51 +0900 (Sat, 05 Nov 2016) | 1 line

Document the change in Shellwords.shellwords
------------------------------------------------------------------------
r56574 | nobu | 2016-11-05 14:17:22 +0900 (Sat, 05 Nov 2016) | 6 lines

parse.y: fix restored cmdarg_stack

* parse.y (brace_body, do_body): since cmdarg_stack is saved in
  VALUE val, should restore from the same member.  on big-endian
  platforms where VALUE is larger than int, it restored 0 in the
  upper word.  [ruby-core:77920] [Bug #12900]
------------------------------------------------------------------------
r56573 | knu | 2016-11-05 13:58:48 +0900 (Sat, 05 Nov 2016) | 5 lines

Fix the handling of the backslash in double quotes

* lib/shellwords.rb (Shellwords#shellsplit): Fix the handling of
  the backslash in double quotes to conform to the standard.
  [ruby-core:63807] [Bug #10055]
------------------------------------------------------------------------
r56572 | shugo | 2016-11-05 12:31:45 +0900 (Sat, 05 Nov 2016) | 1 line

Add NEWS about r56213.
------------------------------------------------------------------------
r56571 | akr | 2016-11-05 12:29:08 +0900 (Sat, 05 Nov 2016) | 6 lines

Pathname#empty? implemented.

* ext/pathname/pathname.c (Pathname#empty?): New method.
  [ruby-core:76404] [Feature#12596] Proposed by John Backus.


------------------------------------------------------------------------
r56570 | naruse | 2016-11-05 12:13:16 +0900 (Sat, 05 Nov 2016) | 1 line

Add NEWS about r56200
------------------------------------------------------------------------
r56568 | shugo | 2016-11-05 11:57:40 +0900 (Sat, 05 Nov 2016) | 3 lines

* test/ruby/test_refinement.rb (test_refine_alias_in_subclass):
  add a test to check that alias in subclasses can be refined.
  [ruby-core:69374] [Bug #11186]
------------------------------------------------------------------------
r56566 | akr | 2016-11-05 11:50:15 +0900 (Sat, 05 Nov 2016) | 2 lines

[DOC] add explanation for Array#sum

------------------------------------------------------------------------
r56563 | nobu | 2016-11-05 11:39:09 +0900 (Sat, 05 Nov 2016) | 4 lines

test_logger.rb: suppress a warning

* test/logger/test_logger.rb (test_datetime_format): suppress
  warning when strftime called with empty format string.
------------------------------------------------------------------------
r56561 | shugo | 2016-11-05 11:23:09 +0900 (Sat, 05 Nov 2016) | 2 lines

* cont.c (cont_new): disable optimization if clang's version is
  3.8.0.  [ruby-core:77894] [Bug #12893]
------------------------------------------------------------------------
r56560 | svn | 2016-11-05 10:07:20 +0900 (Sat, 05 Nov 2016) | 1 line

* 2016-11-05
------------------------------------------------------------------------
r56559 | nobu | 2016-11-05 10:07:19 +0900 (Sat, 05 Nov 2016) | 4 lines

test_file.rb: fix noatime

* test/ruby/test_file.rb (TestFile#test_stat): fix noatime case.
  [ruby-core:77943] [Bug #12903]
------------------------------------------------------------------------
r56558 | ko1 | 2016-11-04 17:54:46 +0900 (Fri, 04 Nov 2016) | 4 lines

* gc.c (heap_page_resurrect): do not return tomb_pages when
  page->freelist == NULL.
  [Bug #12670]

------------------------------------------------------------------------
r56557 | nobu | 2016-11-04 16:31:47 +0900 (Fri, 04 Nov 2016) | 4 lines

util.c: round to even

* util.c (ruby_dtoa): round to even, instead of rounding to
  nearest.  [ruby-core:77864] [Bug #12889]
------------------------------------------------------------------------
r56556 | naruse | 2016-11-04 15:37:09 +0900 (Fri, 04 Nov 2016) | 2 lines

* configure.in: Add compiler version message into rbconfig
  as RbConfig::CONFIG['CC_VERSION_MESSAGE']. [Feature #12896]
------------------------------------------------------------------------
r56555 | mrkn | 2016-11-04 13:29:00 +0900 (Fri, 04 Nov 2016) | 1 line

ChangeLog: cite issue on redmine
------------------------------------------------------------------------
r56554 | mrkn | 2016-11-04 13:05:07 +0900 (Fri, 04 Nov 2016) | 1 line

numeric.c (rb_int_digits): Fix exception message
------------------------------------------------------------------------
r56553 | nobu | 2016-11-04 10:51:18 +0900 (Fri, 04 Nov 2016) | 4 lines

pathname.c: unnormalized Fixnum value

* ext/pathname/pathname.c (path_hash): fix unnormalized Fixnum
  value bug on mingw/mswin.
------------------------------------------------------------------------
r56552 | svn | 2016-11-04 10:35:49 +0900 (Fri, 04 Nov 2016) | 1 line

* 2016-11-04
------------------------------------------------------------------------
r56551 | nobu | 2016-11-04 10:35:49 +0900 (Fri, 04 Nov 2016) | 5 lines

fileutils.rb: fix error for non-existent entry

* lib/fileutils.rb (FileUtils::Entry_#copy): ensure that the
  source entry exists first, to fix error for non-existent entry.
  [ruby-core:77885] [Bug #12892]
------------------------------------------------------------------------
r56550 | mrkn | 2016-11-03 21:46:22 +0900 (Thu, 03 Nov 2016) | 1 line

Import from ruby/bigdecimal repository
------------------------------------------------------------------------
r56549 | nobu | 2016-11-03 15:02:16 +0900 (Thu, 03 Nov 2016) | 4 lines

file.c: include sys/sysmacros.h

* file.c: include sys/sysmacros.h for ArchLinux which deprecated
  use of major() and minor() in sys/types.h.
------------------------------------------------------------------------
r56548 | svn | 2016-11-03 14:46:56 +0900 (Thu, 03 Nov 2016) | 1 line

* 2016-11-03
------------------------------------------------------------------------
r56547 | nobu | 2016-11-03 14:46:55 +0900 (Thu, 03 Nov 2016) | 4 lines

file.c: use DEVT2NUM

* file.c (rb_stat_dev_major, rb_stat_dev_minor): use DEVT2NUM as
  well as rdev_major and rdev_minor.
------------------------------------------------------------------------
r56546 | nobu | 2016-11-02 10:31:00 +0900 (Wed, 02 Nov 2016) | 4 lines

assertions.rb: assert_all_assertions

* test/lib/test/unit/assertions.rb (assert_all_assertions): prefix
  assert to be filtered out.
------------------------------------------------------------------------
r56545 | nobu | 2016-11-02 09:50:05 +0900 (Wed, 02 Nov 2016) | 5 lines

extension.rdoc: update rb_ensure description

* doc/extension.rdoc: set ANYARGS as arguments for func1 and func2.

[ci skip]
------------------------------------------------------------------------
r56544 | nobu | 2016-11-02 08:45:50 +0900 (Wed, 02 Nov 2016) | 8 lines

extension.rdoc: update rb_rescue description

* doc/extension.rdoc: set ANYARGS as arguments for func1 and func2.

* doc/extension.rdoc: mention the exception object which is passed
  to func2 as the second argument.  [Fix GH-1471]

[ci skip]
------------------------------------------------------------------------
r56543 | nobu | 2016-11-02 07:34:30 +0900 (Wed, 02 Nov 2016) | 4 lines

numeric.c: bit op with non-integer

* numeric.c (rb_num_coerce_bit): enable bit operations with
  coercing by non-integer object.  [ruby-core:77783] [Bug #12875]
------------------------------------------------------------------------
r56542 | svn | 2016-11-02 00:47:55 +0900 (Wed, 02 Nov 2016) | 1 line

* 2016-11-02
------------------------------------------------------------------------
r56541 | kazu | 2016-11-02 00:47:55 +0900 (Wed, 02 Nov 2016) | 1 line

fix some typos [ci skip]
------------------------------------------------------------------------
r56540 | nobu | 2016-11-01 22:10:16 +0900 (Tue, 01 Nov 2016) | 4 lines

test_integer.rb: common parts

* test/ruby/test_integer.rb (MimicInteger, CoercionToInt): extract
  common parts.
------------------------------------------------------------------------
r56539 | nobu | 2016-11-01 22:10:14 +0900 (Tue, 01 Nov 2016) | 4 lines

numeric.c: use rb_num_coerce_bit

* numeric.c (int_and, int_or, int_xor): use rb_num_coerce_bit to
  reduce repeated code.
------------------------------------------------------------------------
r56538 | nobu | 2016-11-01 21:35:32 +0900 (Tue, 01 Nov 2016) | 4 lines

numeric.c: fix return value on big 0

* numeric.c (num_zero_p): should return true if zero.
  rb_bigzero_p returns 1 or 0.
------------------------------------------------------------------------
r56537 | nobu | 2016-11-01 21:35:31 +0900 (Tue, 01 Nov 2016) | 3 lines

numeric.c: adjust indent [ci skip]

* numeric.c (rb_num2ulong_internal): adjust indent.
------------------------------------------------------------------------
r56536 | nobu | 2016-11-01 21:35:30 +0900 (Tue, 01 Nov 2016) | 4 lines

numeric.c: fix typos [ci skip]

* numeric.c (rb_num2ulong_internal, rb_num2ull): fix typos in
  comments.
------------------------------------------------------------------------
r56535 | nobu | 2016-11-01 16:51:55 +0900 (Tue, 01 Nov 2016) | 5 lines

bignum.c: use RB_INTEGER_TYPE_P

* bignum.c (rb_big_and, rb_big_or, rb_big_xor): use dedicated
  macro RB_INTEGER_TYPE_P instead of combination of FIXNUM_P and
  RB_BIGNUM_TYPE_P.
------------------------------------------------------------------------
r56534 | nobu | 2016-11-01 01:31:12 +0900 (Tue, 01 Nov 2016) | 4 lines

configure.in: no round in x64-mingw

* configure.in (ac_cv_func_round): round(3) in x86_64-w64-mingw32
  is not accurate in an edge case.  [ruby-core:77794] [Bug #12878]
------------------------------------------------------------------------
r56533 | nobu | 2016-11-01 01:01:30 +0900 (Tue, 01 Nov 2016) | 4 lines

dir.c: suppress a warning

* dir.c (to_be_ignored): remove duplicate inline modifier, and
  suppress a warning by VC.
------------------------------------------------------------------------
r56532 | svn | 2016-11-01 00:17:28 +0900 (Tue, 01 Nov 2016) | 1 line

* 2016-11-01
------------------------------------------------------------------------
r56531 | kazu | 2016-11-01 00:17:26 +0900 (Tue, 01 Nov 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r56530 | shyouhei | 2016-10-31 17:43:54 +0900 (Mon, 31 Oct 2016) | 2 lines

	* test/test_forwardable.rb (TestForwardable#test_on_private_method): add test for [Bug #12782] [Bug #12840]

------------------------------------------------------------------------
r56529 | svn | 2016-10-31 11:08:55 +0900 (Mon, 31 Oct 2016) | 1 line

* 2016-10-31
------------------------------------------------------------------------
r56528 | nobu | 2016-10-31 11:08:54 +0900 (Mon, 31 Oct 2016) | 4 lines

uri/generic.rb: Tidy up merge

* lib/uri/generic.rb (URI::Generic#merge): merge merge0.
  [GH-1469]
------------------------------------------------------------------------
r56527 | nobu | 2016-10-30 21:08:00 +0900 (Sun, 30 Oct 2016) | 3 lines

fix typo [ci skip]

* lib/rubygems/specification.rb: reapply 56225.
------------------------------------------------------------------------
r56526 | kazu | 2016-10-30 20:57:41 +0900 (Sun, 30 Oct 2016) | 1 line

Add config for *.yml [ci skip]
------------------------------------------------------------------------
r56525 | hsbt | 2016-10-30 15:32:48 +0900 (Sun, 30 Oct 2016) | 3 lines

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
  rubygems to 2.6.8.
  Release note of 2.6.8: https://github.com/rubygems/rubygems/commit/9fb8880976f5ab998912898b091d88aa10eb1d4a
------------------------------------------------------------------------
r56524 | svn | 2016-10-30 06:39:38 +0900 (Sun, 30 Oct 2016) | 1 line

* 2016-10-30
------------------------------------------------------------------------
r56523 | duerst | 2016-10-30 06:39:37 +0900 (Sun, 30 Oct 2016) | 3 lines

* enc/windows_1254.c: Fix typo. Reported by k-takata at
  https://github.com/k-takata/Onigmo/commit/ceb59cc. Thanks!

------------------------------------------------------------------------
r56522 | nobu | 2016-10-29 19:59:39 +0900 (Sat, 29 Oct 2016) | 4 lines

parse.y: !-operator warning

* parse.y (cond0): !-operator is a method call, no warning for
  literal in condition.  [ruby-core:77801] [Bug #12881]
------------------------------------------------------------------------
r56521 | nobu | 2016-10-29 10:09:40 +0900 (Sat, 29 Oct 2016) | 4 lines

compile.c: not flip-flop

* compile.c (iseq_compile_each): turn flip-flop in a not-operator
  into a boolean value.  fix up r56315
------------------------------------------------------------------------
r56520 | nobu | 2016-10-29 09:39:16 +0900 (Sat, 29 Oct 2016) | 4 lines

vm_eval.c: follow the original class

* vm_eval.c (vm_call0_body): follow the original class, not to
  loop the prepended module.  [ruby-core:77784] [Bug #12876]
------------------------------------------------------------------------
r56519 | kazu | 2016-10-29 00:50:14 +0900 (Sat, 29 Oct 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r56518 | svn | 2016-10-29 00:28:55 +0900 (Sat, 29 Oct 2016) | 1 line

* 2016-10-29
------------------------------------------------------------------------
r56517 | nobu | 2016-10-29 00:28:54 +0900 (Sat, 29 Oct 2016) | 4 lines

test/unit.rb: no file name if idle [ci skip]

* test/lib/test/unit.rb (Test::Unit::Parallel::Worker#to_s): show
  file name if not idling.
------------------------------------------------------------------------
r56516 | nobu | 2016-10-29 00:14:32 +0900 (Sat, 29 Oct 2016) | 4 lines

Update windows-1255 table

* enc/trans/windows-1255-tbl.rb: update mapping from 0xCA to
  U+05BA.  [Feature #12877]
------------------------------------------------------------------------
r56515 | nobu | 2016-10-28 23:25:57 +0900 (Fri, 28 Oct 2016) | 3 lines

enc/depend: downcase

* enc/depend: downcase table file names.
------------------------------------------------------------------------
r56514 | nobu | 2016-10-28 23:22:34 +0900 (Fri, 28 Oct 2016) | 4 lines

enc/depend: extract transcode_tblgen

* enc/depend: extract transcode_tblgen method calls for libraries
  loaded by dynamically generated names, in single_byte.trans.
------------------------------------------------------------------------
r56513 | nobu | 2016-10-28 23:18:52 +0900 (Fri, 28 Oct 2016) | 4 lines

single_byte.trans: dead code

* enc/trans/single_byte.trans (transcode_tblgen_singlebyte):
  remove useless code.  returned value is not used.
------------------------------------------------------------------------
r56512 | nobu | 2016-10-28 23:18:50 +0900 (Fri, 28 Oct 2016) | 4 lines

transcode-tblgen.rb: dup literal string

* tool/transcode-tblgen.rb: get rid of modifying frozen literal
  string.
------------------------------------------------------------------------
r56511 | nobu | 2016-10-28 16:05:05 +0900 (Fri, 28 Oct 2016) | 4 lines

insns.def: opt_case_dispatch trivial optimization

* insns.def (opt_case_dispatch): extract float value only if the
  Float method is not redefnined.
------------------------------------------------------------------------
r56510 | nobu | 2016-10-28 15:58:19 +0900 (Fri, 28 Oct 2016) | 4 lines

internal.h: RB_OBJ_BUILTIN_TYPE

* internal.h (RB_OBJ_BUILTIN_TYPE): special-const safe
  BUILTIN_TYPE.
------------------------------------------------------------------------
r56509 | nobu | 2016-10-28 15:20:19 +0900 (Fri, 28 Oct 2016) | 4 lines

complex.c: static IDs

* complex.c (id_finite_p, id_infinite_p, id_rationalize, id_PI):
  initialize static IDs.
------------------------------------------------------------------------
r56508 | svn | 2016-10-28 15:19:01 +0900 (Fri, 28 Oct 2016) | 1 line

* 2016-10-28
------------------------------------------------------------------------
r56507 | nobu | 2016-10-28 15:19:00 +0900 (Fri, 28 Oct 2016) | 5 lines

complex.c: FINITE_TYPE_P

* complex.c (FINITE_TYPE_P): extract predicate.
* complex.c (rb_complex_finite_p, rb_complex_infinite_p): use
  dedicated predicates instead of switch by TYPE.
------------------------------------------------------------------------
r56506 | nobu | 2016-10-27 23:28:14 +0900 (Thu, 27 Oct 2016) | 4 lines

ruby/ruby.h: optimize rb_integer_type_p

* include/ruby/ruby.h (rb_integer_type_p): turn into macro to help
  clang based on old gcc to eliminate CSE.
------------------------------------------------------------------------
r56502 | usa | 2016-10-27 16:34:32 +0900 (Thu, 27 Oct 2016) | 3 lines

* tool/redmine-backporter.rb (rel): check the exception and show right
  message.

------------------------------------------------------------------------
r56500 | nobu | 2016-10-27 15:26:09 +0900 (Thu, 27 Oct 2016) | 1 line

test/digest/test_digest.rb: fold long lines
------------------------------------------------------------------------
r56499 | rhe | 2016-10-27 14:58:35 +0900 (Thu, 27 Oct 2016) | 7 lines

socket: fix rdoc of UDPSocket#recvfrom_nonblock

* ext/socket/lib/socket.rb (UDPSocket#recvfrom_nonblock): [DOC] Remove
  a false statement "If _maxlen_ is omitted, its default value is
  65536." maxlen, the first parameter, cannot be omitted as the method
  signature indicates. This hasn't changed ever since it was first
  implemented.
------------------------------------------------------------------------
r56498 | kazu | 2016-10-27 09:45:46 +0900 (Thu, 27 Oct 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r56497 | nobu | 2016-10-27 09:42:11 +0900 (Thu, 27 Oct 2016) | 5 lines

object.c: fixable float to fixnum

* object.c (rb_convert_to_integer): convert a fixable float to a
  fixnum directly without the convesion method, as well as bignum
  case.
------------------------------------------------------------------------
r56496 | svn | 2016-10-27 09:12:34 +0900 (Thu, 27 Oct 2016) | 1 line

* 2016-10-27
------------------------------------------------------------------------
r56495 | nobu | 2016-10-27 09:12:33 +0900 (Thu, 27 Oct 2016) | 4 lines

object.c: use converted string

* object.c (rb_convert_to_integer): should not drop the converted
  string.
------------------------------------------------------------------------
r56494 | kazu | 2016-10-26 21:26:51 +0900 (Wed, 26 Oct 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56493 | nobu | 2016-10-26 17:10:00 +0900 (Wed, 26 Oct 2016) | 4 lines

ruby.h: use prefixed macro

* include/ruby/ruby.h (rb_intern): use prefixed version macro
  RUBY_CONST_ID_CACHE.
------------------------------------------------------------------------
r56492 | nobu | 2016-10-26 15:11:23 +0900 (Wed, 26 Oct 2016) | 3 lines

[DOC] replace Fixnum with Integer [ci skip]

* numeric.c: [DOC] update document for Integer class.
------------------------------------------------------------------------
r56491 | svn | 2016-10-26 11:34:07 +0900 (Wed, 26 Oct 2016) | 1 line

* 2016-10-26
------------------------------------------------------------------------
r56490 | shyouhei | 2016-10-26 11:34:06 +0900 (Wed, 26 Oct 2016) | 2 lines

* NEWS: added several entries [ci skip]

------------------------------------------------------------------------
r56489 | nobu | 2016-10-25 12:54:09 +0900 (Tue, 25 Oct 2016) | 4 lines

proc.c: follow the original class

* proc.c (mnew_internal): follow the original class, not to loop
  the prepended module.  [ruby-core:77591] [Bug #12832]
------------------------------------------------------------------------
r56488 | akr | 2016-10-25 12:48:23 +0900 (Tue, 25 Oct 2016) | 2 lines

[DOC] table format refined.

------------------------------------------------------------------------
r56487 | svn | 2016-10-25 12:32:01 +0900 (Tue, 25 Oct 2016) | 1 line

* 2016-10-25
------------------------------------------------------------------------
r56486 | akr | 2016-10-25 12:32:00 +0900 (Tue, 25 Oct 2016) | 2 lines

[DOC] add description of j and J for unpack.

------------------------------------------------------------------------
r56485 | nobu | 2016-10-24 12:46:51 +0900 (Mon, 24 Oct 2016) | 5 lines

test_thread.rb: count accurately

* test/ruby/test_thread.rb (test_thread_timer_and_interrupt):
  count only signal handling time accurately without setup and
  cleanup time.
------------------------------------------------------------------------
r56484 | nobu | 2016-10-24 10:52:19 +0900 (Mon, 24 Oct 2016) | 4 lines

test/unit.rb: show idling workers

* test/lib/test/unit.rb (Test::Unit::Parallel#deal): update the
  job status after a task finished, to show idling workers.
------------------------------------------------------------------------
r56483 | nobu | 2016-10-24 10:51:10 +0900 (Mon, 24 Oct 2016) | 5 lines

complex.c: undefine Comparable methods

* complex.c (Init_Complex): undefine methods inherited from
  Comparable, because Complex does not have <=> method.
  [Bug #12866]
------------------------------------------------------------------------
r56482 | nobu | 2016-10-24 10:49:52 +0900 (Mon, 24 Oct 2016) | 4 lines

class.c: rb_undef_methods_from

* class.c (rb_undef_methods_from): undefine methods defined in
  super from klass.
------------------------------------------------------------------------
r56481 | nobu | 2016-10-24 10:34:06 +0900 (Mon, 24 Oct 2016) | 4 lines

refine assertions

* test/ruby/test_complex.rb, test/ruby/test_rational.rb: refine
  assertions for descriptive messages.
------------------------------------------------------------------------
r56480 | svn | 2016-10-24 10:19:47 +0900 (Mon, 24 Oct 2016) | 1 line

* 2016-10-24
------------------------------------------------------------------------
r56479 | nobu | 2016-10-24 10:19:46 +0900 (Mon, 24 Oct 2016) | 6 lines

complex.c: undefine clamp

* complex.c (Init_Complex): undefine Complex#clamp, which does not
  work like other Comparable methods, because Complex does not
  have <=> method.  patched by Tim Peters <zomg.tim AT gmail.com>
  in [ruby-core:77720].  [Bug #12866]
------------------------------------------------------------------------
r56478 | nobu | 2016-10-23 11:41:43 +0900 (Sun, 23 Oct 2016) | 4 lines

encoding.h: include ruby/ruby.h

* include/ruby/encoding.h: include "ruby/ruby.h" explicitly for
  enum ruby_fl_type and VALUE.
------------------------------------------------------------------------
r56477 | svn | 2016-10-23 11:03:57 +0900 (Sun, 23 Oct 2016) | 1 line

* 2016-10-23
------------------------------------------------------------------------
r56476 | nobu | 2016-10-23 11:03:56 +0900 (Sun, 23 Oct 2016) | 4 lines

test_refinement.rb: Symbol#to_proc test

* test/ruby/test_refinement.rb (test_symbol_proc): a Symbol is
  converted to a Proc in the caller's context.  [Feature #9451]
------------------------------------------------------------------------
r56475 | nobu | 2016-10-22 23:33:58 +0900 (Sat, 22 Oct 2016) | 4 lines

parse.y: append to buffer

* parse.y (reg_compile_gen): always append error message to the
  error buffer.
------------------------------------------------------------------------
r56474 | nobu | 2016-10-22 22:33:34 +0900 (Sat, 22 Oct 2016) | 4 lines

numeric.c: fix up r55891

* numeric.c (num_funcall1): check recursion by inverse pair, to
  fix fake infinite recursion.  [ruby-core:77713] [Bug #12864]
------------------------------------------------------------------------
r56473 | nobu | 2016-10-22 18:52:35 +0900 (Sat, 22 Oct 2016) | 4 lines

hash.c: fix Hash#compact! return value

* hash.c (rb_hash_compact_bang): should return nil if no elements
  is deleted.  [ruby-core:77709] [Bug #12863]
------------------------------------------------------------------------
r56472 | nobu | 2016-10-22 10:28:30 +0900 (Sat, 22 Oct 2016) | 5 lines

configure.in: fallback DLDFLAGS to LDFLAGS

* configure.in (DLDFLAGS): fallback to LDFLAGS.
  [ruby-core:72444] [Bug #11863]
* configure.in (LIBRUBY_DLDFLAGS): fallback to DLDFLAGS.
------------------------------------------------------------------------
r56471 | nobu | 2016-10-22 10:27:04 +0900 (Sat, 22 Oct 2016) | 5 lines

configure.in: fix RUBY_{APPEND/PREPEND}_OPTION

* configure.in (RUBY_APPEND_OPTION, RUBY_PREPEND_OPTION): expand
  the option to be appended/prepended when matching, as well as
  RUBY_APPEND_OPTIONS and  RUBY_PREPEND_OPTIONS.
------------------------------------------------------------------------
r56470 | svn | 2016-10-22 09:53:00 +0900 (Sat, 22 Oct 2016) | 1 line

* 2016-10-22
------------------------------------------------------------------------
r56469 | nobu | 2016-10-22 09:52:59 +0900 (Sat, 22 Oct 2016) | 5 lines

compile.c: order with splatting

* compile.c (setup_args): duplicate splatting array if more
  arguments present to obey left-to-right execution order.
  [ruby-core:77701] [Bug# 12860]
------------------------------------------------------------------------
r56468 | nobu | 2016-10-21 16:55:09 +0900 (Fri, 21 Oct 2016) | 4 lines

fix r56467

* test/ruby/test_dir.rb (test_glob_gc_for_fd): needs
  RLIMIT_NOFILE.
------------------------------------------------------------------------
r56467 | nobu | 2016-10-21 16:44:46 +0900 (Fri, 21 Oct 2016) | 4 lines

dir.c: retry glob with GC

* dir.c (do_opendir): retry after GC when the limit for open file
  descriptors reached.
------------------------------------------------------------------------
r56466 | nobu | 2016-10-21 16:40:50 +0900 (Fri, 21 Oct 2016) | 4 lines

dir.c: use rb_gc_for_fd

* dir.c (rb_dir_s_empty_p): use rb_gc_for_fd for the condition to
  invoke GC by errno.
------------------------------------------------------------------------
r56465 | nobu | 2016-10-21 16:40:48 +0900 (Fri, 21 Oct 2016) | 4 lines

dir.c: inline to_be_ignored

* dir.c (to_be_ignored): make an inline function to get rid of
  multiple errno function calls.
------------------------------------------------------------------------
r56464 | nobu | 2016-10-21 16:40:47 +0900 (Fri, 21 Oct 2016) | 6 lines

prefer rb_syserr_fail

* dir.c (dir_initialize, dir_read): prefer rb_syserr_fail over
  rb_sys_fail.

* io.c (ruby_dup, rb_sysopen): ditto.
------------------------------------------------------------------------
r56463 | nobu | 2016-10-21 16:06:27 +0900 (Fri, 21 Oct 2016) | 4 lines

ruby.c: retry loading with GC

* ruby.c (open_load_file): retry after GC when the limit for open
  file descriptors reached.
------------------------------------------------------------------------
r56462 | nobu | 2016-10-21 11:38:04 +0900 (Fri, 21 Oct 2016) | 4 lines

test_require.rb: reduce GC

* test/ruby/test_require.rb (test_loading_fifo_fd_leak): invoke GC
  only when FDs exhausted to reduce the test time.
------------------------------------------------------------------------
r56461 | svn | 2016-10-21 11:34:21 +0900 (Fri, 21 Oct 2016) | 1 line

* 2016-10-21
------------------------------------------------------------------------
r56460 | nobu | 2016-10-21 11:34:19 +0900 (Fri, 21 Oct 2016) | 4 lines

Fixed typo [ci skip]

* string.c (rb_str_sub, rb_str_gsub): [DOC] 'backlash' should read
  'backslash'.  [Fix GH-1461]
------------------------------------------------------------------------
r56459 | kazu | 2016-10-20 22:18:52 +0900 (Thu, 20 Oct 2016) | 1 line

fix hexdigest [ci skip]
------------------------------------------------------------------------
r56458 | hsbt | 2016-10-20 17:03:01 +0900 (Thu, 20 Oct 2016) | 2 lines

* lib/uri/common.rb: added documentation for deprecated method.
  [Misc #11960][ruby-core:72733][ci skip]
------------------------------------------------------------------------
r56457 | nobu | 2016-10-20 16:59:44 +0900 (Thu, 20 Oct 2016) | 9 lines

test_proc.rb: improve curry tests

* test/ruby/test_proc.rb (test_curry): split.

* test/ruby/test_proc.rb (test_curry_passed_block): simplify the
  assertion.

* test/ruby/test_proc.rb (test_curry_with_trace): run all curry
  tests.
------------------------------------------------------------------------
r56456 | svn | 2016-10-20 16:57:31 +0900 (Thu, 20 Oct 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56455 | hsbt | 2016-10-20 16:57:30 +0900 (Thu, 20 Oct 2016) | 9 lines

* ext/digest/digest.c: Add documentation for Digest.
  [Feature #10452][ruby-core:66001][ci skip]
  * remove HMAC from list of digest algorithms,
  * add MD5 in list of digest algorithms,
  * add information about writing a C digest implementation using Digest::Base,
  * add documentation for Digest::Base public methods.
* ext/digest/md5/md5init.c: add examples for MD5.
* ext/digest/rmd160/rmd160init.c: add examples for Digest::RMD160.
* ext/digest/sha1/sha1init.c: add examples for Digest::SHA1.
------------------------------------------------------------------------
r56454 | hsbt | 2016-10-20 16:19:58 +0900 (Thu, 20 Oct 2016) | 2 lines

* lib/open-uri.rb: Improved documentation grammar for
  open-uri#open option. [Misc #11329][ruby-core:69868][ci skip]
------------------------------------------------------------------------
r56453 | svn | 2016-10-20 07:44:49 +0900 (Thu, 20 Oct 2016) | 1 line

* 2016-10-20
------------------------------------------------------------------------
r56452 | nobu | 2016-10-20 07:44:49 +0900 (Thu, 20 Oct 2016) | 3 lines

Fix typos [ci skip]

* NEWS: fix typos "Refinments" as "Refinements".
------------------------------------------------------------------------
r56451 | kazu | 2016-10-19 21:49:40 +0900 (Wed, 19 Oct 2016) | 1 line

NEWS mention refinements with Kernel#send and BasicObject#__send__.  [Feature #11476]
------------------------------------------------------------------------
r56450 | nobu | 2016-10-19 17:02:17 +0900 (Wed, 19 Oct 2016) | 4 lines

vm_insnhelper.c: refinements with send

* vm_insnhelper.c (vm_call_opt_send): enable refinements with
  Kernel#send and BasicObject#__send__.  [Feature #11476]
------------------------------------------------------------------------
r56449 | nobu | 2016-10-19 14:22:51 +0900 (Wed, 19 Oct 2016) | 4 lines

basictest: --run-opt option

* basictest/runner.rb: do not clobber the option by --run-opt with
  RUBYOPT.  reported by Allen Hewes <rallenh AT hotmail.com>.
------------------------------------------------------------------------
r56448 | kazu | 2016-10-19 00:40:31 +0900 (Wed, 19 Oct 2016) | 1 line

Update comments in prelude.c [ci skip]
------------------------------------------------------------------------
r56447 | svn | 2016-10-19 00:09:09 +0900 (Wed, 19 Oct 2016) | 1 line

* 2016-10-19
------------------------------------------------------------------------
r56446 | nobu | 2016-10-19 00:09:08 +0900 (Wed, 19 Oct 2016) | 4 lines

addr2line.c: boundary checks

* addr2line.c (parse_debug_line_cu): boundary checks for
  compressed debug sections.  [ruby-dev:49840] [Bug #12850]
------------------------------------------------------------------------
r56445 | nobu | 2016-10-18 16:36:42 +0900 (Tue, 18 Oct 2016) | 5 lines

configure.in: compress debug sections

* configure.in (DLDFLAGS): append --compress-debug-sections=zlib
  if available, which reduces the size of LIBRUBY_SO by half or
  more.
------------------------------------------------------------------------
r56444 | nobu | 2016-10-18 15:55:15 +0900 (Tue, 18 Oct 2016) | 4 lines

separated_version.mk: option for linux [ci skip]

* defs/separated_version.mk (RUBY_VERSION_DLDFLAGS): move linux
  specific option.
------------------------------------------------------------------------
r56443 | svn | 2016-10-18 15:35:39 +0900 (Tue, 18 Oct 2016) | 1 line

* 2016-10-18
------------------------------------------------------------------------
r56442 | nobu | 2016-10-18 15:35:38 +0900 (Tue, 18 Oct 2016) | 3 lines

separated_version.mk [ci skip]

* defs/separated_version.mk: FOR DEVELEPERS ONLY.
------------------------------------------------------------------------
r56436 | nobu | 2016-10-17 16:20:39 +0900 (Mon, 17 Oct 2016) | 4 lines

install-static-library option [ci skip]

* win32/configure.bat: add option to enable/disable to install
  static ruby library.  defaulted to "no".  [Feature #12845]
------------------------------------------------------------------------
r56435 | svn | 2016-10-17 16:17:08 +0900 (Mon, 17 Oct 2016) | 1 line

* 2016-10-17
------------------------------------------------------------------------
r56434 | nobu | 2016-10-17 16:17:07 +0900 (Mon, 17 Oct 2016) | 6 lines

install-static-library option [ci skip]

* configure.in (install-static-library): add option to enable/
  disable to install static ruby library.  defaulted to "no" if
  enable-shared.  [Feature #12845]
* tool/rbinstall.rb (local-arch-lib): respect the option.
------------------------------------------------------------------------
r56433 | duerst | 2016-10-16 15:09:08 +0900 (Sun, 16 Oct 2016) | 3 lines

* enc/windows_1254.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for Windows-1254.

------------------------------------------------------------------------
r56432 | nobu | 2016-10-16 08:34:27 +0900 (Sun, 16 Oct 2016) | 4 lines

test_io.rb: use assert_not_predicate

* test/ruby/test_io.rb (test_DATA_binmode): assert_not_predicate
  for more descriptive message.
------------------------------------------------------------------------
r56431 | nobu | 2016-10-16 07:59:39 +0900 (Sun, 16 Oct 2016) | 4 lines

test_refinement.rb: test_symbol_proc

* test/ruby/test_refinement.rb (test_symbol_proc): move from
  test_symbol.rb  [Feature #9451]
------------------------------------------------------------------------
r56430 | nobu | 2016-10-16 07:59:38 +0900 (Sun, 16 Oct 2016) | 4 lines

test_refinement.rb: using without eval

* test/ruby/test_refinement.rb (FooExtClient, FooExtClient2): no
  needs to eval, using works in a class block now.
------------------------------------------------------------------------
r56429 | svn | 2016-10-16 00:45:05 +0900 (Sun, 16 Oct 2016) | 1 line

* 2016-10-16
------------------------------------------------------------------------
r56428 | kazu | 2016-10-16 00:45:04 +0900 (Sun, 16 Oct 2016) | 1 line

Add test of DATA.binmode?
------------------------------------------------------------------------
r56427 | nobu | 2016-10-15 18:05:58 +0900 (Sat, 15 Oct 2016) | 4 lines

vm_args.c: cache procs

* vm_args.c (vm_caller_setup_arg_block): cache proc with
  refinements.  [Feature #9451]
------------------------------------------------------------------------
r56426 | nobu | 2016-10-15 14:17:07 +0900 (Sat, 15 Oct 2016) | 6 lines

vm_args.c: allow refinements in Symbol proc

* vm_args.c (refine_sym_proc_call): search and call method with
  refinements.
* vm_args.c (vm_caller_setup_arg_block): enable refinements when
  enabled in the caller.  [Feature #9451]
------------------------------------------------------------------------
r56425 | svn | 2016-10-15 00:54:04 +0900 (Sat, 15 Oct 2016) | 1 line

* 2016-10-15
------------------------------------------------------------------------
r56424 | nobu | 2016-10-15 00:54:03 +0900 (Sat, 15 Oct 2016) | 4 lines

process.c: use uaspawn

* process.c (proc_exec_cmd): use UTF-8 version aspawn.
  [ruby-dev:49838] [Bug #12841]
------------------------------------------------------------------------
r56423 | nobu | 2016-10-14 22:26:13 +0900 (Fri, 14 Oct 2016) | 5 lines

optparse/kwargs.rb

* lib/optparse/kwargs.rb (OptionParser#define_by_keywords):
  [EXPERIMENTAL] extract command line option definitions from the
  information of keyword arguments.
------------------------------------------------------------------------
r56422 | hsbt | 2016-10-14 18:28:27 +0900 (Fri, 14 Oct 2016) | 1 line

* Fix wrong class name.
------------------------------------------------------------------------
r56421 | hsbt | 2016-10-14 18:27:23 +0900 (Fri, 14 Oct 2016) | 2 lines

* object.c: Improve documentation for Integer conversion.
  [ruby-core:71661][Bug #11736][ci skip]
------------------------------------------------------------------------
r56420 | hsbt | 2016-10-14 18:01:01 +0900 (Fri, 14 Oct 2016) | 2 lines

* lib/logger.rb: Improve Logger.new option documentation.
  [Feature #12803][ruby-core:77467]
------------------------------------------------------------------------
r56419 | nobu | 2016-10-14 17:20:26 +0900 (Fri, 14 Oct 2016) | 4 lines

optparse.rb: hyphenize

* lib/optparse.rb (make_switch, parse_in_order): unify underscores
  to hyphens.
------------------------------------------------------------------------
r56418 | svn | 2016-10-14 10:48:53 +0900 (Fri, 14 Oct 2016) | 1 line

* 2016-10-14
------------------------------------------------------------------------
r56417 | normal | 2016-10-14 10:48:52 +0900 (Fri, 14 Oct 2016) | 7 lines

webrick: use monotonic clock for timeouts

The monotonic clock is immune to system time changes and
a better option for implementing timing comparisons.

* lib/webrick/utils.rb (TimeoutHandler): use monotonic clock
  (watch): ditto
------------------------------------------------------------------------
r56416 | nobu | 2016-10-13 19:41:34 +0900 (Thu, 13 Oct 2016) | 4 lines

io.c: copy_stream to duplex IO

* io.c (copy_stream_body): use IO to write to copy to duplex IO.
  http://twitter.com/knu/status/786505317974585344
------------------------------------------------------------------------
r56415 | nobu | 2016-10-13 17:15:43 +0900 (Thu, 13 Oct 2016) | 3 lines

NEWS: [Feature #11818] [ci skip]

* NEWS: add Hash#compact and Hash#compact!.  [Feature #11818]
------------------------------------------------------------------------
r56414 | nobu | 2016-10-13 17:06:00 +0900 (Thu, 13 Oct 2016) | 5 lines

hash.c: add compact and compact! methods

* hash.c (rb_hash_compact, rb_hash_compact_bang): Removes nil
  values from the original hash, to port Active Support behavior.
  [Feature #11818]
------------------------------------------------------------------------
r56413 | nobu | 2016-10-13 11:35:34 +0900 (Thu, 13 Oct 2016) | 5 lines

unstable sort [ci skip]

* array.c (rb_ary_sort_bang, rb_ary_sort, rb_ary_sort_by_bang):
  [DOC] describe that sort may not be stable.
* enum.c (enum_sort, enum_sort_by): ditto.
------------------------------------------------------------------------
r56412 | nobu | 2016-10-13 11:31:43 +0900 (Thu, 13 Oct 2016) | 5 lines

Fix tests depending on sort stability

* test/rexml/xpath/test_text.rb (test_ancestors): Array#sort may
  not be stable.  [ruby-core:76088] [Bug #12509]
* test/rss/test_maker_{0.9,1.0,2.0}.rb (test_items): ditto.
------------------------------------------------------------------------
r56411 | normal | 2016-10-13 10:40:21 +0900 (Thu, 13 Oct 2016) | 1 line

doc/extension.rdoc: wording fix w.r.t. volatile vs RB_GC_GUARD
------------------------------------------------------------------------
r56410 | nobu | 2016-10-13 00:39:10 +0900 (Thu, 13 Oct 2016) | 6 lines

test_array.rb: do not assume stable sort

* test/ruby/test_array.rb (test_sort_bang_with_freeze): make a
  clone to copy a <=> singleton method, instead of dup.  which
  element will be called is not predictable.
  [ruby-core:76088] [Bug #12509]
------------------------------------------------------------------------
r56409 | nobu | 2016-10-13 00:29:06 +0900 (Thu, 13 Oct 2016) | 4 lines

better assertion

* test/rexml/xpath/test_text.rb (test_ancestors): use
  assert_kind_of for better assertion message.
------------------------------------------------------------------------
r56408 | kazu | 2016-10-13 00:28:07 +0900 (Thu, 13 Oct 2016) | 1 line

Fix similar typos [ci skip]
------------------------------------------------------------------------
r56407 | kazu | 2016-10-13 00:28:06 +0900 (Thu, 13 Oct 2016) | 3 lines

Fix typo [ci skip]

Replace "You can defined hooked variables" with "You can define hooked variables"
------------------------------------------------------------------------
r56406 | kazu | 2016-10-13 00:28:05 +0900 (Thu, 13 Oct 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56405 | kazu | 2016-10-13 00:28:03 +0900 (Thu, 13 Oct 2016) | 1 line

fix warning: assigned but unused variable
------------------------------------------------------------------------
r56404 | svn | 2016-10-13 00:28:02 +0900 (Thu, 13 Oct 2016) | 1 line

* 2016-10-13
------------------------------------------------------------------------
r56403 | kazu | 2016-10-13 00:28:01 +0900 (Thu, 13 Oct 2016) | 1 line

do not need to downcase twice
------------------------------------------------------------------------
r56401 | usa | 2016-10-12 21:07:16 +0900 (Wed, 12 Oct 2016) | 3 lines

* ruby.c (open_load_file): revert r56385.  it introduced incompatibility
  about `DATA.binmode?`.

------------------------------------------------------------------------
r56400 | nobu | 2016-10-12 17:24:36 +0900 (Wed, 12 Oct 2016) | 4 lines

ruby.c: fix macros

* ruby.c (open_load_file): FILE_ALT_SEPARATOR and EXEEXT are
  config.status variables, not available in config.h.
------------------------------------------------------------------------
r56399 | hsbt | 2016-10-12 15:24:59 +0900 (Wed, 12 Oct 2016) | 3 lines

* tool/downloader.rb: Removed verification of gem certification.
  Because signed gem is not working on rubygems ecosystem.
* tool/gem-unpack.rb: ditto.
------------------------------------------------------------------------
r56398 | akr | 2016-10-12 02:23:29 +0900 (Wed, 12 Oct 2016) | 2 lines

Test URI.find_proxy using env argument.

------------------------------------------------------------------------
r56397 | akr | 2016-10-12 01:42:05 +0900 (Wed, 12 Oct 2016) | 2 lines

forgot to replace two occurences of ENV.

------------------------------------------------------------------------
r56396 | svn | 2016-10-12 01:36:15 +0900 (Wed, 12 Oct 2016) | 1 line

* 2016-10-12
------------------------------------------------------------------------
r56395 | kazu | 2016-10-12 01:36:14 +0900 (Wed, 12 Oct 2016) | 1 line

`\s` includes `\t`
------------------------------------------------------------------------
r56394 | nobu | 2016-10-11 22:21:30 +0900 (Tue, 11 Oct 2016) | 4 lines

bootstraptest/runner.rb: first line in the source

* bootstraptest/runner.rb (pretty): remove empty line at the
  beginning only.
------------------------------------------------------------------------
r56393 | nobu | 2016-10-11 22:08:27 +0900 (Tue, 11 Oct 2016) | 4 lines

io.c: fix typo

* io.c (prep_io): fix typo of struct member name.
  [ruby-core:77550] [Bug #12829]
------------------------------------------------------------------------
r56392 | akr | 2016-10-11 16:53:56 +0900 (Tue, 11 Oct 2016) | 4 lines

Add an optional argument, env, to URI.find_proxy.

* lib/uri/generic.rb (URI.find_proxy): Add an optional argument, env.

------------------------------------------------------------------------
r56391 | akr | 2016-10-11 16:44:58 +0900 (Tue, 11 Oct 2016) | 7 lines

pp prints a multiple lines string prettier.

* lib/pp.rb (String#pretty_print): Defined to print a string as
  multiple lines.
  [ruby-core:76800] [Feature#12664] proposed by Petr Chalupa.


------------------------------------------------------------------------
r56390 | svn | 2016-10-11 14:35:38 +0900 (Tue, 11 Oct 2016) | 1 line

* 2016-10-11
------------------------------------------------------------------------
r56389 | akr | 2016-10-11 14:35:37 +0900 (Tue, 11 Oct 2016) | 2 lines

Ruby 2.4.0 will not have rb_cFixnum and rb_cBignum is removed.

------------------------------------------------------------------------
r56388 | nobu | 2016-10-10 15:22:30 +0900 (Mon, 10 Oct 2016) | 4 lines

ruby.c: bind fd before waiting

* ruby.c (open_load_file): bind the open fd to an IO instance
  before waiting FIFO, not to leak the fd if interrupted.
------------------------------------------------------------------------
r56387 | nobu | 2016-10-10 15:14:07 +0900 (Mon, 10 Oct 2016) | 7 lines

test_require.rb: use assert_separately

* test/ruby/test_require.rb (test_loading_fifo_threading_raise):
  use assert_separately.

* test/ruby/test_require.rb (test_loading_fifo_threading_success):
  ditto.
------------------------------------------------------------------------
r56386 | nobu | 2016-10-10 12:40:56 +0900 (Mon, 10 Oct 2016) | 4 lines

ruby.c: compare with EXEEXT

* ruby.c (open_load_file): compare with EXEEXT instead of hard
  coded name, and do not match with mere EXEEXT.
------------------------------------------------------------------------
r56385 | nobu | 2016-10-10 12:40:06 +0900 (Mon, 10 Oct 2016) | 4 lines

ruby.c: open in binary mode to load

* ruby.c (open_load_file): open in binary mode if available, as
  parser deals with EOLs.
------------------------------------------------------------------------
r56384 | svn | 2016-10-10 12:37:10 +0900 (Mon, 10 Oct 2016) | 1 line

* 2016-10-10
------------------------------------------------------------------------
r56383 | nobu | 2016-10-10 12:37:09 +0900 (Mon, 10 Oct 2016) | 4 lines

io.c: reduce isatty on Cygwin [ci skip]

* io.c (prep_io): reduce isatty call (and its system call) on
  Cygwin.
------------------------------------------------------------------------
r56382 | nobu | 2016-10-09 23:05:57 +0900 (Sun, 09 Oct 2016) | 5 lines

replace Fixnum with Integer in rdoc [ci skip]

* array.c, class.c: Fixed documentation where Fixnum was referred
  directly to use Integer, as Fixnum and Bignum are now unified
  into Integer and direct usage is deprecated.  [Fix GH-1459]
------------------------------------------------------------------------
r56381 | nobu | 2016-10-09 18:42:17 +0900 (Sun, 09 Oct 2016) | 5 lines

vm_insnhelper.c: update assertion [ci skip]

* vm_insnhelper.c (callable_class_p): update assertion as callable
  class may be T_MODULE or I_ICLASS which refines a module since
  r56213.  [Feature #12534]
------------------------------------------------------------------------
r56380 | nobu | 2016-10-09 11:57:29 +0900 (Sun, 09 Oct 2016) | 5 lines

vm_method.c: update assertion [ci skip]

* vm_method.c (prepare_callable_method_entry): update assertion
  as defined_class may be T_MODULE not only I_ICLASS since r56213.
  [Feature #12534]
------------------------------------------------------------------------
r56379 | svn | 2016-10-09 11:37:22 +0900 (Sun, 09 Oct 2016) | 1 line

* 2016-10-09
------------------------------------------------------------------------
r56378 | nobu | 2016-10-09 11:37:21 +0900 (Sun, 09 Oct 2016) | 4 lines

vm_core.h: stringify in VM_ASSERT

* vm_core.h (VM_ASSERT): stringify expr here before expansion in
  RUBY_ASSERT_WHEN.
------------------------------------------------------------------------
r56377 | nobu | 2016-10-08 10:54:24 +0900 (Sat, 08 Oct 2016) | 4 lines

memory_status.c: Win32 API

* ext/-test-/memory_status/memory_status.c (read_status): use
  Win32 GetProcessMemoryInfo API.
------------------------------------------------------------------------
r56376 | nobu | 2016-10-08 10:34:27 +0900 (Sat, 08 Oct 2016) | 4 lines

memory_status.c: system call

* ext/-test-/memory_status/memory_status.c: get memory sizes by
  mach task_info system call.
------------------------------------------------------------------------
r56375 | svn | 2016-10-08 09:06:58 +0900 (Sat, 08 Oct 2016) | 1 line

* 2016-10-08
------------------------------------------------------------------------
r56374 | nobu | 2016-10-08 09:06:57 +0900 (Sat, 08 Oct 2016) | 13 lines

logger: fix monthly log rotate with DST

* lib/logger.rb (Logger::Period#next_rotate_time): fix monthly log
  rotate when DST is applied during a month of 31 days.
  [Fix GH-1458]

With DST the month of october can actually last more than 31 days.
It can last 31 days plus 1 hour. So during october, `t` used to be
equal to "2016-10-31 23:00:00" instead of "2016-11-01 00:00:00".
This was then normalized to "2016-10-01 00:00:00" which lead every
single line of log during october to rotate the log file.
This fix ensure that next_rotate_time(now, 'monthly') always return
the first day of next month in every situation.
------------------------------------------------------------------------
r56373 | nobu | 2016-10-07 20:21:41 +0900 (Fri, 07 Oct 2016) | 5 lines

gc.c: fix GC_PROFILE_DETAIL_MEMORY

* gc.c (gc_prof_setup_new_record): fix the condition to get
  rusage.
* gc.c (gc_profile_dump_major_reason): remove undefined flags.
------------------------------------------------------------------------
r56372 | suke | 2016-10-07 19:24:56 +0900 (Fri, 07 Oct 2016) | 4 lines

ext/win32ole/*.c, ext/win32ole/win32ole.h: use RB_INT2FIX instead of
INT2FIX, and so on.


------------------------------------------------------------------------
r56371 | hsbt | 2016-10-07 14:18:57 +0900 (Fri, 07 Oct 2016) | 8 lines

* basictest/test.rb: Adjust spaces in class declarations
  with inheritance. [fix GH-1227] Patch by @adrfer
* lib/irb/*: ditto.
* lib/prime.rb: ditto.
* lib/shell/builtin-command.rb: ditto.
* object.c: ditto.
* sample/*.rb: ditto.
* test/-ext-/method/test_arity.rb: ditto.
------------------------------------------------------------------------
r56366 | svn | 2016-10-07 02:09:04 +0900 (Fri, 07 Oct 2016) | 1 line

* 2016-10-07
------------------------------------------------------------------------
r56365 | nagachika | 2016-10-07 02:09:03 +0900 (Fri, 07 Oct 2016) | 1 line

* ChangeLog: fix a typo at r56363.
------------------------------------------------------------------------
r56364 | kazu | 2016-10-06 21:15:00 +0900 (Thu, 06 Oct 2016) | 1 line

Fix cmd is referenced but not assigned
------------------------------------------------------------------------
r56363 | nobu | 2016-10-06 17:29:46 +0900 (Thu, 06 Oct 2016) | 5 lines

load.c: setup syntax error backtrace

* load.c (rb_require_safe): SyntaxError created by the parser just
  has the mesage and needs to set up the backtrace.
  [ruby-core:77491] [Bug #12811]
------------------------------------------------------------------------
r56362 | nobu | 2016-10-06 15:53:22 +0900 (Thu, 06 Oct 2016) | 4 lines

load.c: fix load/require context

* load.c (rb_load_internal0): load/require is not the main
  script.
------------------------------------------------------------------------
r56361 | nobu | 2016-10-06 14:46:55 +0900 (Thu, 06 Oct 2016) | 9 lines

bisect.sh: improve

* tool/bisect.sh: make srcs before building.

* tool/bisect.sh: quote expansions.

* tool/bisect.sh: skip build if chdir and Makefile failed.

* tool/bisect.sh: fail at unknown command.
------------------------------------------------------------------------
r56360 | marcandre | 2016-10-06 13:35:26 +0900 (Thu, 06 Oct 2016) | 1 line

* enum.c: [DOC] Improve doc [ci-skip]
------------------------------------------------------------------------
r56359 | nobu | 2016-10-06 12:53:34 +0900 (Thu, 06 Oct 2016) | 4 lines

test_io.rb: split test_gets_rs

* test/ruby/test_io.rb (test_gets_rs): split for each record
  separators.
------------------------------------------------------------------------
r56358 | hsbt | 2016-10-06 11:38:18 +0900 (Thu, 06 Oct 2016) | 2 lines

* ext/readline/extconf.rb: Update error message with correct words.
  [fix GH-1453][ci skip] Patch by @magikid
------------------------------------------------------------------------
r56357 | nobu | 2016-10-06 11:04:28 +0900 (Thu, 06 Oct 2016) | 4 lines

uri/common.rb: Update URI::WEB_ENCODINGS_ [ci skip]

* lib/uri/common.rb (WEB_ENCODINGS_): split command lines and
  append a trailing comma.
------------------------------------------------------------------------
r56356 | nobu | 2016-10-06 11:01:51 +0900 (Thu, 06 Oct 2016) | 1 line

Update URI WEB_ENCODINGS_ hash, and fix documented cmd to
------------------------------------------------------------------------
r56355 | hsbt | 2016-10-06 10:53:17 +0900 (Thu, 06 Oct 2016) | 2 lines

* enum.c: Add reduce/inject alias note.
  [fix GH-1400][ci skip] Patch by @getaaron
------------------------------------------------------------------------
r56354 | nobu | 2016-10-06 10:30:29 +0900 (Thu, 06 Oct 2016) | 4 lines

thread.c: check coverage values

* thread.c (update_coverage): check coverage values, and ignore
  non-fixnum values.
------------------------------------------------------------------------
r56353 | svn | 2016-10-06 09:19:24 +0900 (Thu, 06 Oct 2016) | 1 line

* 2016-10-06
------------------------------------------------------------------------
r56352 | nobu | 2016-10-06 09:19:23 +0900 (Thu, 06 Oct 2016) | 3 lines

io.c: use RB_INTEGER_TYPE_P

* io.c (fptr_finalize): use dedicated macro RB_INTEGER_TYPE_P.
------------------------------------------------------------------------
r56351 | kazu | 2016-10-05 21:36:40 +0900 (Wed, 05 Oct 2016) | 1 line

Update freenode server name [ci skip]
------------------------------------------------------------------------
r56350 | hsbt | 2016-10-05 18:02:50 +0900 (Wed, 05 Oct 2016) | 2 lines

* lib/net/http/response.rb: Improve document readability.
  [fix GH-1411][ci skip] Patch by @stz-seongheon
------------------------------------------------------------------------
r56349 | nobu | 2016-10-05 16:01:31 +0900 (Wed, 05 Oct 2016) | 4 lines

test_io.rb: workaround for Docker

* test/ruby/test_io.rb (test_ioctl_linux2): tty device may not
  work on Docker.
------------------------------------------------------------------------
r56348 | nobu | 2016-10-05 15:43:34 +0900 (Wed, 05 Oct 2016) | 3 lines

node.c: flatten NODE_BLOCK [ci skip]

* node.c (dump_node): flatten statements in NODE_BLOCK.
------------------------------------------------------------------------
r56347 | hsbt | 2016-10-05 14:27:42 +0900 (Wed, 05 Oct 2016) | 2 lines

* range.c: Add docs for max/min behavior with exclusive range.
  [fix GH-1433][ci skip] Patch by @BM5k
------------------------------------------------------------------------
r56346 | hsbt | 2016-10-05 12:57:32 +0900 (Wed, 05 Oct 2016) | 2 lines

* ext/socket/*.c: Add proper require for example to work.
  [fix GH-1378][ci skip] Patch by @schneems
------------------------------------------------------------------------
r56345 | hsbt | 2016-10-05 11:51:09 +0900 (Wed, 05 Oct 2016) | 1 line

Added missing contributor name.
------------------------------------------------------------------------
r56344 | hsbt | 2016-10-05 11:47:25 +0900 (Wed, 05 Oct 2016) | 2 lines

* io.c: Fixed equivalent ruby code with core implemention.
  [fix GH-1429][ci skip]
------------------------------------------------------------------------
r56343 | hsbt | 2016-10-05 11:36:28 +0900 (Wed, 05 Oct 2016) | 2 lines

* lib/delegate.rb: Added missing spaces and Removed needless spaces.
  [fix GH-1454][ci skip] Patch by @bogdanvlviv
------------------------------------------------------------------------
r56342 | marcandre | 2016-10-05 03:25:16 +0900 (Wed, 05 Oct 2016) | 2 lines

* enum.c: Make Enumerable#chunk with no block return
  an Enumerator [#2172]
------------------------------------------------------------------------
r56341 | svn | 2016-10-05 01:25:02 +0900 (Wed, 05 Oct 2016) | 1 line

* 2016-10-05
------------------------------------------------------------------------
r56340 | usa | 2016-10-05 01:25:01 +0900 (Wed, 05 Oct 2016) | 19 lines

* internal.h (ST2FIX): new macro to convert st_index_t to Fixnum.
  a hash value of Object might be Bignum, but it causes many troubles
  expecially the Object is used as a key of a hash.  so I've gave up
  to do so.

* array.c (rb_ary_hash): use above macro.

* bignum.c (rb_big_hash): ditto.

* hash.c (rb_obj_hash, rb_hash_hash): ditto.

* numeric.c (rb_dbl_hash): ditto.

* proc.c (proc_hash): ditto.

* re.c (rb_reg_hash, match_hash): ditto.

* string.c (rb_str_hash_m): ditto.

------------------------------------------------------------------------
r56339 | kazu | 2016-10-04 21:24:40 +0900 (Tue, 04 Oct 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56338 | kazu | 2016-10-04 21:23:14 +0900 (Tue, 04 Oct 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r56337 | nobu | 2016-10-04 12:59:46 +0900 (Tue, 04 Oct 2016) | 4 lines

array.c: update Array#dig doc

* array.c (rb_ary_dig): [DOC] update an example of error message
  by Array#dig, because of Integer Unification.  [Fix GH-1455]
------------------------------------------------------------------------
r56336 | nobu | 2016-10-04 09:55:15 +0900 (Tue, 04 Oct 2016) | 4 lines

bigdecimal.c: more precision

* ext/bigdecimal/bigdecimal.c (BigDecimal_div2): need more room
  for precision to round.  [ruby-core:77475] [Bug #12805]
------------------------------------------------------------------------
r56335 | nobu | 2016-10-04 09:55:14 +0900 (Tue, 04 Oct 2016) | 7 lines

bigdecimal.c: fix debug print

* ext/bigdecimal/bigdecimal.c (VpFree, VpInit): fix debug print
  format.

* ext/bigdecimal/bigdecimal.c (VPrint): fix argument description,
  and embed NaN, Infinity, and zero in the format.
------------------------------------------------------------------------
r56334 | svn | 2016-10-04 06:06:51 +0900 (Tue, 04 Oct 2016) | 1 line

* 2016-10-04
------------------------------------------------------------------------
r56333 | naruse | 2016-10-04 06:06:50 +0900 (Tue, 04 Oct 2016) | 2 lines

* regcomp.c (onig_print_compiled_byte_code): make the shown address
  look relative.
------------------------------------------------------------------------
r56332 | naruse | 2016-10-04 06:06:50 +0900 (Tue, 04 Oct 2016) | 7 lines

* regexec.c (OPCODE_EXEC_HOOK): op is p-1 because p is already
  incremented.

* regexec.c (OPCODE_EXEC_HOOK): use the exact end address.

* regexec.c (match_at): don't call OPCODE_EXEC_HOOK in CASE()
  when it comes from goto fail.
------------------------------------------------------------------------
r56330 | nobu | 2016-10-03 21:39:10 +0900 (Mon, 03 Oct 2016) | 4 lines

use rb_locale_str_new

* ext/readline/readline.c (readline_char_is_quoted): use
  rb_locale_str_new with the length.  [Feature #12659]
------------------------------------------------------------------------
r56329 | kazu | 2016-10-03 21:26:00 +0900 (Mon, 03 Oct 2016) | 1 line

* NEWS: mention Readline.quoting_detection_proc{,=}. [ci skip]
------------------------------------------------------------------------
r56328 | kazu | 2016-10-03 21:21:14 +0900 (Mon, 03 Oct 2016) | 4 lines

[DOC] Fix default value of shift_age [ci skip]

`LogDevice#initialize` treats shift_age: nil as 7, but
Logger#initialize has the default value of shift_age as 0.
------------------------------------------------------------------------
r56327 | kazu | 2016-10-03 21:18:33 +0900 (Mon, 03 Oct 2016) | 1 line

Add prefix to FIX2LONG in include/ruby/ruby.h
------------------------------------------------------------------------
r56326 | nobu | 2016-10-03 17:20:07 +0900 (Mon, 03 Oct 2016) | 6 lines

rl_char_is_quoted_p

* ext/readline/readline.c (readline_s_set_quoting_detection_proc):
  support rl_char_is_quoted_p.  [Feature #12659]
* ext/readline/readline.c (readline_s_get_quoting_detection_proc):
  ditto.
------------------------------------------------------------------------
r56325 | svn | 2016-10-03 16:10:50 +0900 (Mon, 03 Oct 2016) | 1 line

* 2016-10-03
------------------------------------------------------------------------
r56324 | nobu | 2016-10-03 16:10:49 +0900 (Mon, 03 Oct 2016) | 4 lines

readline.c: mustbe_callable

* ext/readline/readline.c (mustbe_callable): extract to check a
  given argument to be callable.
------------------------------------------------------------------------
r56323 | nobu | 2016-10-02 12:32:07 +0900 (Sun, 02 Oct 2016) | 4 lines

numeric.c: adjust type

* numeric.c (rb_fix2str): cast to a pointer to adjust argument
  type for the format.
------------------------------------------------------------------------
r56322 | nobu | 2016-10-02 08:22:30 +0900 (Sun, 02 Oct 2016) | 4 lines

ruby.h: add prefix

* include/ruby/ruby.h (RB_INT2FIX, RB_LONG2FIX): prefix RB to
  global symbols to get rid of name conflicts with other headers.
------------------------------------------------------------------------
r56321 | nobu | 2016-10-02 07:51:23 +0900 (Sun, 02 Oct 2016) | 3 lines

string.c: negative hash

* string.c (rb_str_hash_m): hash values may be negative.
------------------------------------------------------------------------
r56320 | usa | 2016-10-02 02:06:21 +0900 (Sun, 02 Oct 2016) | 4 lines

* string.c (rb_str_hash_m): st_index_t is not guaranteed as the same
  size with int, and of course also not guaranteed the value can be
  Fixnum.

------------------------------------------------------------------------
r56319 | svn | 2016-10-02 02:04:05 +0900 (Sun, 02 Oct 2016) | 1 line

* 2016-10-02
------------------------------------------------------------------------
r56318 | usa | 2016-10-02 02:04:04 +0900 (Sun, 02 Oct 2016) | 2 lines

* numeric.c (rb_fix2str): detect unnormalized Fixnum value.

------------------------------------------------------------------------
r56317 | usa | 2016-10-01 23:12:34 +0900 (Sat, 01 Oct 2016) | 4 lines

* ext/date/date_parse.c (date_zone_to_diff): it's nonsence and really
  harm that to use unary minus operator with unsigned value.
  get rid of test failures introduced at r56312.

------------------------------------------------------------------------
r56316 | nobu | 2016-10-01 22:17:51 +0900 (Sat, 01 Oct 2016) | 4 lines

compile.c: literal range

* compile.c (iseq_compile_each): move numeric literal range
  optimization from fixup_nodes() in parse.y.
------------------------------------------------------------------------
r56315 | nobu | 2016-10-01 19:19:36 +0900 (Sat, 01 Oct 2016) | 5 lines

compile.c: optimize flip-flop

* compile.c (compile_flip_flop): simplify generated code.
* compile.c (compile_branch_condition): flip-flop can appear only
  in coditional expressions.
------------------------------------------------------------------------
r56314 | nobu | 2016-10-01 18:00:05 +0900 (Sat, 01 Oct 2016) | 4 lines

date_parse.c: str_end_with

* ext/date/date_parse.c (str_end_with): extract to tell if a
  string ends with the other string.
------------------------------------------------------------------------
r56313 | nobu | 2016-10-01 17:52:43 +0900 (Sat, 01 Oct 2016) | 3 lines

zonetab.h: use strncmp

* ext/date/zonetab.h (zonetab): use strncmp.
------------------------------------------------------------------------
r56312 | nobu | 2016-10-01 17:52:42 +0900 (Sat, 01 Oct 2016) | 4 lines

date_parse.c: refactor

* ext/date/date_parse.c (date_zone_to_diff): refactor without
  allocating strings.
------------------------------------------------------------------------
r56311 | svn | 2016-10-01 02:03:49 +0900 (Sat, 01 Oct 2016) | 1 line

* 2016-10-01
------------------------------------------------------------------------
r56310 | usa | 2016-10-01 02:03:48 +0900 (Sat, 01 Oct 2016) | 3 lines

* win32/win32.c (poll_child_status): rb_w32_wait_events_blocking() sets
  errno internally, then should not set it here.

------------------------------------------------------------------------
r56299 | nobu | 2016-09-30 21:46:53 +0900 (Fri, 30 Sep 2016) | 3 lines

test_flip.rb: add

* test/ruby/test_flip.rb (test_flip_flop): basic test.
------------------------------------------------------------------------
r56298 | hsbt | 2016-09-30 19:06:24 +0900 (Fri, 30 Sep 2016) | 3 lines

* lib/uri/http.rb: Documentation and code style imrovements.
* test/uri/test_http.rb: Added test for coverage.
  [fix GH-1427][ruby-core:77255][Misc #12756]
------------------------------------------------------------------------
r56297 | hsbt | 2016-09-30 18:43:24 +0900 (Fri, 30 Sep 2016) | 2 lines

* doc/syntax/control_expressions.rdoc: Add missing 'as'
  [ci skip][fix GH-1448] Patch by @jsyeo
------------------------------------------------------------------------
r56296 | svn | 2016-09-30 13:02:18 +0900 (Fri, 30 Sep 2016) | 1 line

* 2016-09-30
------------------------------------------------------------------------
r56295 | nobu | 2016-09-30 13:02:17 +0900 (Fri, 30 Sep 2016) | 4 lines

test_range.rb: all assertions

* test/ruby/test_range.rb (test_range_bsearch_for_floats): test
  all assertions.
------------------------------------------------------------------------
r56294 | kazu | 2016-09-29 23:40:34 +0900 (Thu, 29 Sep 2016) | 1 line

* lib/yaml/store.rb (YAML::Store#dump): use table argument instead of @table directly.
------------------------------------------------------------------------
r56293 | kazu | 2016-09-29 22:56:11 +0900 (Thu, 29 Sep 2016) | 1 line

update call-seq of YAML::Store#initialize [ci skip]
------------------------------------------------------------------------
r56292 | svn | 2016-09-29 22:43:47 +0900 (Thu, 29 Sep 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56291 | kazu | 2016-09-29 22:43:46 +0900 (Thu, 29 Sep 2016) | 14 lines

fix YAML::Store

* lib/yaml/store.rb (YAML::Store#initialize): Fix arguments.
  [ruby-dev:49821] [Bug #12800]

* test/yaml/test_store.rb: Add tests from test/test_pstore.rb.

* test/yaml/test_store.rb (YAMLStoreTest#test_with_options): Add options test.

* lib/yaml/store.rb (YAML::Store#dump): Revert to to_yaml.

* lib/yaml/store.rb (YAML::Store#empty_marshal_data): Use to_yaml with options.

* lib/yaml/store.rb (YAML::Store#empty_marshal_checksum): Use CHECKSUM_ALGO.
------------------------------------------------------------------------
r56290 | kazu | 2016-09-29 21:08:30 +0900 (Thu, 29 Sep 2016) | 1 line

checksum algorithm is not MD5 only [ci skip]
------------------------------------------------------------------------
r56289 | nobu | 2016-09-29 20:33:03 +0900 (Thu, 29 Sep 2016) | 3 lines

parse.y: deferred_dots_gen

* parse.y (deferred_dots_gen): extract for tDOT2 and tDOT3.
------------------------------------------------------------------------
r56288 | nobu | 2016-09-29 19:38:35 +0900 (Thu, 29 Sep 2016) | 4 lines

appveyor.yml: use mirror for zlib

* appveyor.yml (install): try sourceforge.net mirror to download
  zlib source.
------------------------------------------------------------------------
r56287 | nobu | 2016-09-29 19:34:25 +0900 (Thu, 29 Sep 2016) | 5 lines

thread_sync.c: Document exception types

* thread_sync.c (rb_queue_pop, rb_szqueue_push, rb_szqueue_pop):
  Document exception types, ThreadError, raised by Queue and
  SizedQueue.  [Fix GH-1451]
------------------------------------------------------------------------
r56286 | svn | 2016-09-29 19:21:05 +0900 (Thu, 29 Sep 2016) | 1 line

* 2016-09-29
------------------------------------------------------------------------
r56285 | nobu | 2016-09-29 19:21:04 +0900 (Thu, 29 Sep 2016) | 5 lines

thread_sync.c: Remove confusing comments

* thread_sync.c (Init_thread_sync): Remove confusing doc comments,
  which are picked up by rdoc unexpectedly, from Queue and
  SizedQueue.  [Fix GH-1450]
------------------------------------------------------------------------
r56284 | nobu | 2016-09-28 23:14:21 +0900 (Wed, 28 Sep 2016) | 5 lines

PStore: select checksum algorithm

* lib/pstore.rb (PStore::CHECKSUM_ALGO): find available hashing
  algorithm for checksum.  MD5 is not available in FIPS mode.
  [Feature #6943]
------------------------------------------------------------------------
r56283 | nobu | 2016-09-28 23:12:33 +0900 (Wed, 28 Sep 2016) | 4 lines

test_pstore.rb: use queues

* test/test_pstore.rb (PStoreTest#test_thread_safe): handshake by
  queues, and reduce sleeping time.
------------------------------------------------------------------------
r56282 | nobu | 2016-09-28 14:11:22 +0900 (Wed, 28 Sep 2016) | 3 lines

strscan.c: minl

* ext/strscan/strscan.c (minl): extract to reduce repeated S_LEN.
------------------------------------------------------------------------
r56281 | nobu | 2016-09-28 14:11:20 +0900 (Wed, 28 Sep 2016) | 4 lines

strscan.c: use S_RESTLEN

* ext/strscan/strscan.c (strscan_getch, strscan_peek),
  (strscan_rest_size, inspect2): use S_RESTLEN consistently.
------------------------------------------------------------------------
r56280 | nobu | 2016-09-28 13:00:27 +0900 (Wed, 28 Sep 2016) | 4 lines

Update Signal.signame doc [ci-skip]

* signal.c (sig_signame): [DOC] Add documentation in the case of
  return nil.  [Fix GH-1449]
------------------------------------------------------------------------
r56279 | shyouhei | 2016-09-28 10:49:16 +0900 (Wed, 28 Sep 2016) | 2 lines

	* .travis.yml: delete comments. They were outdated. [ci skip]

------------------------------------------------------------------------
r56278 | nobu | 2016-09-28 10:16:43 +0900 (Wed, 28 Sep 2016) | 4 lines

rubygems 2.6.7

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
  rubygems to 2.6.7, not the master, with r56225.
------------------------------------------------------------------------
r56277 | nobu | 2016-09-28 09:57:53 +0900 (Wed, 28 Sep 2016) | 5 lines

rubygems 2.6.7

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
  rubygems to 2.6.7.
  Release note of 2.6.7: https://github.com/rubygems/rubygems/commit/60f35bd1d2359fc30301d2d4cd72bc6833e8d12a
------------------------------------------------------------------------
r56276 | nagachika | 2016-09-28 03:09:00 +0900 (Wed, 28 Sep 2016) | 3 lines

* ChangeLog: fix typo of r56271. [ci skip]

* NEWS: ditto.
------------------------------------------------------------------------
r56275 | svn | 2016-09-28 00:21:02 +0900 (Wed, 28 Sep 2016) | 1 line

* 2016-09-28
------------------------------------------------------------------------
r56274 | nobu | 2016-09-28 00:21:01 +0900 (Wed, 28 Sep 2016) | 4 lines

error.c: check argument of Warning.warn

* error.c (rb_warning_s_warn): the argument must be an
  ASCII-compatible string.  [ruby-core:77430] [Bug #12793]
------------------------------------------------------------------------
r56273 | nobu | 2016-09-27 23:22:33 +0900 (Tue, 27 Sep 2016) | 8 lines

parse.y: fix up r56198

* parse.y (symbol, dsym, parser_set_number_literal): set state to
  ENDARG, so that `do` after a literal should be `do_block` and
  bound to the outer method.  [ruby-core:72482] [Bug #11873]
* parse.y (parse_ident): revert r56198.
* parse.y (warn_balanced): the state of symbol and numeric
  literals is now EXPR_ENDARG, do not exclude it.
------------------------------------------------------------------------
r56272 | nobu | 2016-09-27 23:19:32 +0900 (Tue, 27 Sep 2016) | 4 lines

test_syntax.rb: more test_warn_balanced

* test/ruby/test_syntax.rb (test_warn_balanced): more assertions
  for a symbol literal and a local variable.
------------------------------------------------------------------------
r56271 | shyouhei | 2016-09-27 23:01:17 +0900 (Tue, 27 Sep 2016) | 2 lines

* NEWS: news about Warning.warning. [ci skip]

------------------------------------------------------------------------
r56270 | kazu | 2016-09-27 21:13:52 +0900 (Tue, 27 Sep 2016) | 1 line

* test/ripper/test_ripper.rb: fix squiggly heredoc identifier
------------------------------------------------------------------------
r56269 | shyouhei | 2016-09-27 18:19:14 +0900 (Tue, 27 Sep 2016) | 6 lines

	* error.c: This makes all warnings raised call Warning.warn, which
	  by default does the same thing it does currently
	  (rb_write_error_str).  You can override Warning.warn to change
	  the behavior. [ruby-core:75016] [Feature #12299]


------------------------------------------------------------------------
r56268 | nobu | 2016-09-27 17:35:31 +0900 (Tue, 27 Sep 2016) | 4 lines

iseq.c: syntax error in compile_file

* iseq.c (iseqw_s_compile_file): deal with syntax error as well as
  compile, and should not abort when rescued.
------------------------------------------------------------------------
r56267 | nobu | 2016-09-27 17:35:30 +0900 (Tue, 27 Sep 2016) | 4 lines

assertions.rb: success option

* test/lib/test/unit/assertions.rb (assert_in_out_err): add
  success option to check the exit status.
------------------------------------------------------------------------
r56266 | nobu | 2016-09-27 15:23:36 +0900 (Tue, 27 Sep 2016) | 4 lines

iseq.c: kwarg to compile

* iseq.c (iseqw_s_compile, iseqw_s_compile_file): allow keyword
  arguments as the options.
------------------------------------------------------------------------
r56265 | nobu | 2016-09-27 14:34:41 +0900 (Tue, 27 Sep 2016) | 3 lines

iseq.c: file name encoding

* iseq.c (iseqw_s_compile): keep the encoding of file name.
------------------------------------------------------------------------
r56264 | nobu | 2016-09-27 14:26:26 +0900 (Tue, 27 Sep 2016) | 1 line

ChangeLog: remove extra line
------------------------------------------------------------------------
r56263 | kazu | 2016-09-27 12:50:41 +0900 (Tue, 27 Sep 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56262 | naruse | 2016-09-27 12:17:47 +0900 (Tue, 27 Sep 2016) | 3 lines

* lib/cgi/cookie.rb (parse): don't allow , as a separator. [Bug #12791]

* lib/webrick/cookie.rb (parse): ditto.
------------------------------------------------------------------------
r56261 | svn | 2016-09-27 06:12:13 +0900 (Tue, 27 Sep 2016) | 1 line

* 2016-09-27
------------------------------------------------------------------------
r56260 | headius | 2016-09-27 06:12:12 +0900 (Tue, 27 Sep 2016) | 1 line

* test/ripper/test_ripper.rb: add a test for dedent_string.
------------------------------------------------------------------------
r56256 | knu | 2016-09-26 21:39:18 +0900 (Mon, 26 Sep 2016) | 4 lines

Remove Ns before puctuation

* man/erb.1, man/irb.1, man/ri.1, man/ruby.1: Remove Ns before
  puctuation.
------------------------------------------------------------------------
r56254 | nobu | 2016-09-26 16:33:16 +0900 (Mon, 26 Sep 2016) | 4 lines

test_exception.rb: another assertion

* test/ruby/test_exception.rb (test_throw_false): test the thrown
  tag.  [Bug #12743]
------------------------------------------------------------------------
r56253 | rhe | 2016-09-26 16:24:55 +0900 (Mon, 26 Sep 2016) | 10 lines

stringio.c: fix signed integer overflow

* ext/stringio/stringio.c (strio_seek): Avoid signed integer overflow.
  It's not harmful in practice here, but is still undefined behavior.

* ext/stringio/stringio.c (strio_extend): Check that the new length does
  not exceed LONG_MAX. This fixes the invalid write on the overflow.

* test/stringio/test_stringio.rb (test_write_integer_overflow): Add a
  test case for the above fix in strio_extend().
------------------------------------------------------------------------
r56252 | rhe | 2016-09-26 15:43:51 +0900 (Mon, 26 Sep 2016) | 10 lines

eval_intern.h: make TH_PUSH_TAG() initialize rb_vm_tag::tag with Qundef

* eval_intern.h (TH_PUSH_TAG): Initialize struct rb_vm_tag::tag with
  Qundef rather than 0 which is equal to Qfalse. Since Kernel#throw(obj)
  searches a tag with rb_vm_tag::tag == obj, throw(false) can
  accidentally find an unrelated tag which is not created by
  Kernel#catch.  [ruby-core:77229] [Bug #12743]

* test/ruby/test_exception.rb (test_throw_false): Add a test case for
  this.
------------------------------------------------------------------------
r56251 | sonots | 2016-09-26 14:45:29 +0900 (Mon, 26 Sep 2016) | 3 lines

* lib/tempfile.rb: provide default basename parameter
  for Tempfile.create. [Feature #11965] Patch by Yuki Kurihara
* test/test_tempfile.rb: ditto.
------------------------------------------------------------------------
r56250 | nobu | 2016-09-26 14:10:56 +0900 (Mon, 26 Sep 2016) | 5 lines

string.c: fast path of lstrip_offset

* string.c (lstrip_offset): add a fast path in the case of single
  byte optimizable strings, as well as rstrip_offset.
  [ruby-core:77392] [Feature #12788]
------------------------------------------------------------------------
r56249 | nobu | 2016-09-26 12:00:14 +0900 (Mon, 26 Sep 2016) | 3 lines

minitest-5.9.1

* gems/bundled_gems: update to minitest-5.9.1.
------------------------------------------------------------------------
r56248 | rhe | 2016-09-26 11:50:31 +0900 (Mon, 26 Sep 2016) | 5 lines

rbinstall.rb: don't install gemspec for skipped libraries

* tool/rbinstall.rb (gem): Don't install gemspec if no files will be
  installed for the gem. This happens when the extension library is not
  compiled.
------------------------------------------------------------------------
r56247 | rhe | 2016-09-26 11:09:50 +0900 (Mon, 26 Sep 2016) | 12 lines

string.c: fix integer overflow in enc_strlen() and rb_enc_strlen_cr()

* string.c (enc_strlen, rb_enc_strlen_cr): Avoid signed integer
  overflow. The result type of a pointer subtraction may have the same
  size as long. This fixes String#size returning an negative value on
  i686-linux environment:

    str = "\x00" * ((1<<31)-2))
    str.slice!(-3, 3)
    str.force_encoding("UTF-32BE")
    str << 1234
    p str.size
------------------------------------------------------------------------
r56246 | svn | 2016-09-26 07:29:17 +0900 (Mon, 26 Sep 2016) | 1 line

* 2016-09-26
------------------------------------------------------------------------
r56245 | nobu | 2016-09-26 07:29:16 +0900 (Mon, 26 Sep 2016) | 4 lines

test_dln.rb: fix constants

* test/-ext-/win32/test_dln.rb (test_check_imported): use toplevel
  constants explicitly to get rid of constants under the scope.
------------------------------------------------------------------------
r56239 | nobu | 2016-09-25 23:48:22 +0900 (Sun, 25 Sep 2016) | 4 lines

vm_args.c: split make_unused_kw_hash

* vm_args.c (make_unknown_kw_hash, make_rest_kw_hash): split
  make_unused_kw_hash for key_only parameter.
------------------------------------------------------------------------
r56238 | nobu | 2016-09-25 22:48:08 +0900 (Sun, 25 Sep 2016) | 5 lines

remove unnecessary :stag accessor

* lib/erb.rb (ERB::Compiler::TrimScanner#stag): The :stag accessor
  has already been available because it is defined in parent
  Scanner class.  [Fix GH-1445]
------------------------------------------------------------------------
r56237 | nobu | 2016-09-25 22:33:08 +0900 (Sun, 25 Sep 2016) | 3 lines

proc.c: trivial optimization

* proc.c (rb_proc_arity): reduce repeated GetProcPtr.
------------------------------------------------------------------------
r56236 | svn | 2016-09-25 19:23:34 +0900 (Sun, 25 Sep 2016) | 1 line

* 2016-09-25
------------------------------------------------------------------------
r56235 | ktsj | 2016-09-25 19:23:33 +0900 (Sun, 25 Sep 2016) | 2 lines

* node.c (dump_array): remove duplicate header of NODE_ARRAY/
  NODE_VALUES.
------------------------------------------------------------------------
r56231 | nobu | 2016-09-24 22:26:24 +0900 (Sat, 24 Sep 2016) | 4 lines

appveyor.yml: build zlib together

* appveyor.yml (install): extract zlib source under ext/zlib and
  build within the build process.
------------------------------------------------------------------------
r56230 | nobu | 2016-09-24 22:26:21 +0900 (Sat, 24 Sep 2016) | 6 lines

install extra libraries

* ext/extmk.rb (extract_makefile, extmake, configuration): store
  extra libraries to be installed.
* tool/rbinstall.rb (ext-arch): install extra libraries.
* ext/zlib/extconf.rb: install zlib if built.
------------------------------------------------------------------------
r56229 | nobu | 2016-09-24 21:51:14 +0900 (Sat, 24 Sep 2016) | 3 lines

use OpenSSL-Win64

* appveyor.yml (install): use pre-installed OpenSSL-Win64.
------------------------------------------------------------------------
r56228 | nobu | 2016-09-24 21:51:14 +0900 (Sat, 24 Sep 2016) | 1 line

use TESTOPTS instead of OPTS for tests
------------------------------------------------------------------------
r56227 | nobu | 2016-09-24 20:52:56 +0900 (Sat, 24 Sep 2016) | 5 lines

Download by AppVeyor

* appveyor.yml (install): use AppVeyor command-line utility to
  download files, instead of Start-FileDownload cmdlet which no
  longer works more than once.
------------------------------------------------------------------------
r56226 | kazu | 2016-09-24 14:26:42 +0900 (Sat, 24 Sep 2016) | 1 line

* spec/README: update URL. [ci skip]
------------------------------------------------------------------------
r56225 | nobu | 2016-09-24 11:28:25 +0900 (Sat, 24 Sep 2016) | 3 lines

fid typos [ci skip]

* fix typos, "a" before "Integer" to "an".  [Fix GH-1438]
------------------------------------------------------------------------
r56224 | nobu | 2016-09-24 10:19:43 +0900 (Sat, 24 Sep 2016) | 6 lines

test_ruby_mode.rb: fix for Emacs 25.1

* test/misc/test_ruby_mode.rb (assert_indent): since write-region
  in Emacs 25.1 no longer displays the "Wrote file" message, shows
  the explicit message to check if successfully finished.
  [ruby-core:77355] [Bug #12785]
------------------------------------------------------------------------
r56223 | svn | 2016-09-24 10:18:35 +0900 (Sat, 24 Sep 2016) | 1 line

* 2016-09-24
------------------------------------------------------------------------
r56222 | nobu | 2016-09-24 10:18:34 +0900 (Sat, 24 Sep 2016) | 7 lines

test_ruby_mode.rb: save-buffer 0

* test/misc/test_ruby_mode.rb (EXPR_SAVE): use a numeric prefix
  argument of 0, not to make the previous version into a backup
  file, instead of backup-inhibited.
* test/misc/test_ruby_mode.rb (run_emacs): always save the buffer
  if modified.
------------------------------------------------------------------------
r56221 | shugo | 2016-09-23 23:59:26 +0900 (Fri, 23 Sep 2016) | 1 line

* vm_method.c (make_method_entry_refined): fix wrong use of ||.
------------------------------------------------------------------------
r56220 | nobu | 2016-09-23 23:18:41 +0900 (Fri, 23 Sep 2016) | 4 lines

zlib: no checks [ci skip]

* ext/zlib/extconf.rb: no feature checks when building zlib from
  the source, assume it is recent.
------------------------------------------------------------------------
r56219 | nobu | 2016-09-23 23:18:39 +0900 (Fri, 23 Sep 2016) | 3 lines

zlib: fix directory [ci skip]

* ext/zlib/extconf.rb: fix directory to install zlib library.
------------------------------------------------------------------------
r56218 | knu | 2016-09-23 21:40:16 +0900 (Fri, 23 Sep 2016) | 1 line

Add support for the `Lk` macro to tool/mdoc2man.rb
------------------------------------------------------------------------
r56217 | nobu | 2016-09-23 21:16:00 +0900 (Fri, 23 Sep 2016) | 1 line

forwardable.rb: remove debug print
------------------------------------------------------------------------
r56216 | shugo | 2016-09-23 21:08:00 +0900 (Fri, 23 Sep 2016) | 1 line

Remove a garbage file.
------------------------------------------------------------------------
r56215 | svn | 2016-09-23 20:46:34 +0900 (Fri, 23 Sep 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56214 | svn | 2016-09-23 20:46:34 +0900 (Fri, 23 Sep 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56213 | shugo | 2016-09-23 20:46:33 +0900 (Fri, 23 Sep 2016) | 2 lines

* eval.c (rb_mod_refine): refine modules as well.
  [ruby-core:76199] [Feature #12534]
------------------------------------------------------------------------
r56212 | knu | 2016-09-23 20:21:55 +0900 (Fri, 23 Sep 2016) | 4 lines

Update the paragraphs in "Rich Libraries" which included a dead link

* man/ruby.1: Update the paragraphs in "Rich Libraries" which
  included a dead link.
------------------------------------------------------------------------
r56211 | knu | 2016-09-23 20:21:52 +0900 (Fri, 23 Sep 2016) | 5 lines

Use the `Lk` macro for hyperlinks

* man/ruby.1, man/erb.1, man/irb.1, man/ri.1: Use the `Lk` macro
  for hyperlinks, which has been available since mdocml 1.5.1
  (released more than seven years ago).
------------------------------------------------------------------------
r56210 | nobu | 2016-09-23 15:47:06 +0900 (Fri, 23 Sep 2016) | 4 lines

forwardable.rb: private methods

* lib/forwardable.rb (_delegator_method): allow private methods to
  be delegated, with warnings.  [ruby-core:77341] [Bug #12782]
------------------------------------------------------------------------
r56209 | nobu | 2016-09-23 14:27:38 +0900 (Fri, 23 Sep 2016) | 4 lines

test_fileutils.rb: use Dir.mktmpdir

* test/fileutils/test_fileutils.rb: use Dir.mktmpdir instead of
  fixed name for temporary directory.
------------------------------------------------------------------------
r56208 | nobu | 2016-09-23 12:15:31 +0900 (Fri, 23 Sep 2016) | 4 lines

compile.c: tailcall in conditinal block

* compile.c (iseq_peephole_optimize): enable tail call
  optimization inside a conditional block.
------------------------------------------------------------------------
r56207 | svn | 2016-09-23 10:32:56 +0900 (Fri, 23 Sep 2016) | 1 line

* 2016-09-23
------------------------------------------------------------------------
r56206 | nobu | 2016-09-23 10:32:55 +0900 (Fri, 23 Sep 2016) | 3 lines

ignore all versions [ci skip]

.gitignore: ignore all versions of unicode data.
------------------------------------------------------------------------
r56205 | kazu | 2016-09-22 23:05:48 +0900 (Thu, 22 Sep 2016) | 1 line

sync with svn:ignore. see r56105 [ci skip]
------------------------------------------------------------------------
r56204 | nobu | 2016-09-22 15:35:28 +0900 (Thu, 22 Sep 2016) | 4 lines

zlib: try zlib source

* ext/zlib/extconf.rb: try building zlib from the source if
  exists.
------------------------------------------------------------------------
r56203 | nobu | 2016-09-22 15:35:27 +0900 (Thu, 22 Sep 2016) | 7 lines

dlntest.dll: move

* ext/-test-/win32/dln/{depend,extconf.rb} (dlntest.dll): make
  under the extension directory, instead of the top directory.

* test/-ext-/win32/test_dln.rb (test_check_imported): explicit
  PATH environment variable to load the DLL.
------------------------------------------------------------------------
r56202 | svn | 2016-09-22 13:06:54 +0900 (Thu, 22 Sep 2016) | 1 line

* 2016-09-22
------------------------------------------------------------------------
r56201 | kazu | 2016-09-22 13:06:53 +0900 (Thu, 22 Sep 2016) | 4 lines

gc.c: fix rdoc of garbage_collect [ci skip]

* gc.c (gc_start_internal): [DOC] methods without arguments
  like r56194. [Bug #12777]
------------------------------------------------------------------------
r56200 | naruse | 2016-09-21 17:46:06 +0900 (Wed, 21 Sep 2016) | 3 lines

* process.c (InitVM_process): Support CLOCK_MONOTONIC_RAW_APPROX,
  CLOCK_UPTIME_RAW, and CLOCK_UPTIME_RAW_APPROX which are introduced
  by macOS 10.12.
------------------------------------------------------------------------
r56199 | nobu | 2016-09-21 13:47:35 +0900 (Wed, 21 Sep 2016) | 5 lines

parse.y: preserve cmdarg_stack

* parse.y (brace_body, do_body): preserve cmdarg_stack so that
  `do` after cmdarg in a block should be `do_block` and bound to
  the outer method.  [ruby-core:72482] [Bug #11873]
------------------------------------------------------------------------
r56198 | nobu | 2016-09-21 13:38:46 +0900 (Wed, 21 Sep 2016) | 4 lines

parse.y: do after cmdarg in paren

* parse.y: `do` after cmdarg in parentheses should be `do_block`
  and bound to the outer method.  [ruby-core:72482] [Bug #11873]
------------------------------------------------------------------------
r56197 | nobu | 2016-09-21 13:36:32 +0900 (Wed, 21 Sep 2016) | 4 lines

parse.y: remove spaces [ci skip]

* parse.y (cmd_brace_block, do_block): remove spaces before tab in
  indent.
------------------------------------------------------------------------
r56196 | svn | 2016-09-21 13:32:04 +0900 (Wed, 21 Sep 2016) | 1 line

* 2016-09-21
------------------------------------------------------------------------
r56195 | nobu | 2016-09-21 13:32:03 +0900 (Wed, 21 Sep 2016) | 3 lines

parse.y: block bodies

* parse.y (brace_body, do_body): extract block bodies.
------------------------------------------------------------------------
r56194 | nobu | 2016-09-20 23:02:53 +0900 (Tue, 20 Sep 2016) | 4 lines

gc.c: fix rdoc of garbage_collect [ci skip]

* gc.c (gc_start_internal): [DOC] add ObjectSpace.garbage_collect
  and fix GC#garbage_collect.  [Bug #12777]
------------------------------------------------------------------------
r56193 | kazu | 2016-09-20 21:25:36 +0900 (Tue, 20 Sep 2016) | 1 line

* doc/extension.ja.rdoc: translate r56189 (rb_gc_adjust_memory_usage). [ci skip]
------------------------------------------------------------------------
r56192 | akr | 2016-09-20 20:12:38 +0900 (Tue, 20 Sep 2016) | 2 lines

describe "0.class == Integer" to detect the feature.

------------------------------------------------------------------------
r56191 | hsbt | 2016-09-20 17:52:31 +0900 (Tue, 20 Sep 2016) | 1 line

* gems/bundled_gems: Update rake-11.3.0
------------------------------------------------------------------------
r56190 | svn | 2016-09-20 16:52:26 +0900 (Tue, 20 Sep 2016) | 1 line

* 2016-09-20
------------------------------------------------------------------------
r56189 | nobu | 2016-09-20 16:52:25 +0900 (Tue, 20 Sep 2016) | 4 lines

gc.c: rb_gc_adjust_memory_usage

* gc.c (rb_gc_adjust_memory_usage): notify memory usage to the GC
  engine by extension libraries, to trigger GC.  [Feature #12690]
------------------------------------------------------------------------
r56188 | nobu | 2016-09-19 17:21:16 +0900 (Mon, 19 Sep 2016) | 3 lines

bundled_gems: minitest certificate expired

* gems/bundled_gems: certificate of minitest-5.9.0 has expired.
------------------------------------------------------------------------
r56187 | nobu | 2016-09-19 17:05:26 +0900 (Mon, 19 Sep 2016) | 5 lines

deprecate Fixnum and Bignum

* numeric.c (Init_Numeric), bignum.c (Init_Bignum): deprecate
  Fixnum and Bignum.  this may be reverted after previews.
  [Feature #12739]
------------------------------------------------------------------------
r56186 | svn | 2016-09-19 10:36:57 +0900 (Mon, 19 Sep 2016) | 1 line

* 2016-09-19
------------------------------------------------------------------------
r56185 | nobu | 2016-09-19 10:36:56 +0900 (Mon, 19 Sep 2016) | 6 lines

enumerator.c: lazy enum improvement

* enumerator.c (lazy_init_yielder): directly call stored functions.
  [Feature #6183]
* enumerator.c (lazy_add_method): create lazy enumerator which
  uses lazy_init_yielder().
------------------------------------------------------------------------
r56184 | kou | 2016-09-18 22:51:57 +0900 (Sun, 18 Sep 2016) | 4 lines

* lib/rss/rss.rb (RSS::BaseModel): Remove needless codes.
  [Bug #12773][ruby-dev:49813]
  Reported by Kazuhiro NISHIYAMA. Thanks!!!

------------------------------------------------------------------------
r56183 | kazu | 2016-09-18 19:24:48 +0900 (Sun, 18 Sep 2016) | 1 line

* lib/sync.rb: Fix NameError when error.
------------------------------------------------------------------------
r56182 | nobu | 2016-09-18 14:23:12 +0900 (Sun, 18 Sep 2016) | 1 line

common.mk: use EXTOUT to benchmark [ci skip]
------------------------------------------------------------------------
r56181 | svn | 2016-09-18 14:21:06 +0900 (Sun, 18 Sep 2016) | 1 line

* 2016-09-18
------------------------------------------------------------------------
r56180 | nobu | 2016-09-18 14:21:05 +0900 (Sun, 18 Sep 2016) | 6 lines

mkmf.rb: fix for bundled gems

* lib/mkmf.rb (install_dirs): enable extout in RUBYARCHDIR only
  when extmk.

* lib/mkmf.rb (create_makefile): ditto for TIMESTAMP_DIR.
------------------------------------------------------------------------
r56179 | hsbt | 2016-09-17 22:46:07 +0900 (Sat, 17 Sep 2016) | 2 lines

* vm_insnhelper.c (vm_throw_start): Remove too much ";"
  [fix GH-1432]
------------------------------------------------------------------------
r56178 | rhe | 2016-09-17 19:19:25 +0900 (Sat, 17 Sep 2016) | 5 lines

openssl: really fix test failure on Ubuntu 16.04

* test/openssl/test_ssl.rb (test_ctx_options): Fix test failure on
  Ubuntu 16.04. The fix in r56147 was incomplete. This is a cherry-pick
  of the commit b039f3e268c2 at ruby/openssl.
------------------------------------------------------------------------
r56177 | nobu | 2016-09-17 18:22:26 +0900 (Sat, 17 Sep 2016) | 4 lines

objspace_dump.c: dc is no longer used [ci skip]

* ext/objspace/objspace_dump.c (heap_i): remove no longer used
  variable.
------------------------------------------------------------------------
r56176 | kazu | 2016-09-17 10:51:22 +0900 (Sat, 17 Sep 2016) | 1 line

* doc/extension.ja.rdoc: translate r56130 (rb_check_arity). [ci skip]
------------------------------------------------------------------------
r56175 | svn | 2016-09-17 02:44:46 +0900 (Sat, 17 Sep 2016) | 1 line

* 2016-09-17
------------------------------------------------------------------------
r56174 | tenderlove | 2016-09-17 02:44:45 +0900 (Sat, 17 Sep 2016) | 5 lines

Use JSON lines format for full heap dumps.

This commit changes full heap dumps back to using JSON lines format
(http://jsonlines.org) so that we can process very large heaps without
loading the entire heap in to memory at once.
------------------------------------------------------------------------
r56173 | ngoto | 2016-09-16 22:11:28 +0900 (Fri, 16 Sep 2016) | 5 lines

* ext/openssl/ossl_ssl.c (ssl_npn_select_cb_common): Fix compile error
  with old version of fcc (Fujitsu C Compiler) on Solaris 10.
  [Bug #12769] [ruby-dev:49809]


------------------------------------------------------------------------
r56172 | ngoto | 2016-09-16 21:29:42 +0900 (Fri, 16 Sep 2016) | 7 lines

* internal.h (MAYBE_UNUSED): The fallback definition is needed.
  Fix compile error with some non-GCC compilers such as
  Oracle Solaris Studio 12.3 on Solaris 10.
  [Bug #12767] [ruby-dev:49807]

* internal.h (WARN_UNUSED_RESULT): ditto.

------------------------------------------------------------------------
r56171 | ngoto | 2016-09-16 21:20:35 +0900 (Fri, 16 Sep 2016) | 3 lines

* hash.c (each_pair_i_fast): Fix compile error with old version of
  fcc on Solaris 10. [Bug #12768] [ruby-dev:49808]

------------------------------------------------------------------------
r56170 | usa | 2016-09-16 19:47:54 +0900 (Fri, 16 Sep 2016) | 3 lines

* win32/Makefile.sub (config.h): fixed compile error with VC introduced
  by previous commit.

------------------------------------------------------------------------
r56169 | shyouhei | 2016-09-16 15:15:55 +0900 (Fri, 16 Sep 2016) | 39 lines

	* internal.h (WARN_UNUSED_RESULT): moved to configure.in, to
	  actually check its availability rather to check GCC's version.

	* configure.in (WARN_UNUSED_RESULT): moved to here.

	* configure.in (RUBY_FUNC_ATTRIBUTE): change function declaration
	  to return int rather than void, because it makes no sense for a
	  warn_unused_result attributed function to return void.

	  Funny thing however is that it also makes no sense for noreturn
	  attributed function to return int.  So there is a fundamental
	  conflict between them.  While I tested this, I confirmed both
	  GCC 6 and Clang 3.8 prefers int over void to correctly detect
	  necessary attributes under this setup.  Maybe subject to change
	  in future.

	* internal.h (UNINITIALIZED_VAR): renamed to MAYBE_UNUSED, then
	  moved to configure.in for the same reason we move
	  WARN_UNUSED_RESULT.

	* configure.in (MAYBE_UNUSED): moved to here.

	* internal.h (__has_attribute): deleted, because it has no use now.

	* string.c (rb_str_enumerate_lines): refactor macro rename.

	* string.c (rb_str_enumerate_bytes): ditto.

	* string.c (rb_str_enumerate_chars): ditto.

	* string.c (rb_str_enumerate_codepoints): ditto.

	* thread.c (do_select): ditto.

	* vm_backtrace.c (rb_debug_inspector_open): ditto.

	* vsnprintf.c (BSD_vfprintf): ditto.


------------------------------------------------------------------------
r56168 | shyouhei | 2016-09-16 15:15:00 +0900 (Fri, 16 Sep 2016) | 4 lines

	* ChangeLog (add-log-time-format): Not exactly sure when but
	  recently (25.x maybe), emacs changed its API to take optional
	  two arguments.  We have to follow that.

------------------------------------------------------------------------
r56167 | svn | 2016-09-16 06:44:57 +0900 (Fri, 16 Sep 2016) | 1 line

* 2016-09-16
------------------------------------------------------------------------
r56166 | tenderlove | 2016-09-16 06:44:56 +0900 (Fri, 16 Sep 2016) | 5 lines

Don't include bad password in URI exception output

We shouldn't include the bad password in the URI exception output
message.  Just knowing that there is a bad password is enough
information.
------------------------------------------------------------------------
r56165 | kazu | 2016-09-15 21:41:07 +0900 (Thu, 15 Sep 2016) | 1 line

* doc/extension.ja.rdoc: Fix file name. [ci skip]
------------------------------------------------------------------------
r56164 | naruse | 2016-09-15 01:03:28 +0900 (Thu, 15 Sep 2016) | 1 line

Add $(srcdir) for lib directory
------------------------------------------------------------------------
r56163 | svn | 2016-09-15 01:00:57 +0900 (Thu, 15 Sep 2016) | 1 line

* 2016-09-15
------------------------------------------------------------------------
r56162 | svn | 2016-09-15 01:00:57 +0900 (Thu, 15 Sep 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56161 | naruse | 2016-09-15 01:00:55 +0900 (Thu, 15 Sep 2016) | 1 line

* benchmark/: add vnmakarov's benchmarks around hash [ruby-core:75265]
------------------------------------------------------------------------
r56160 | sho-h | 2016-09-14 21:52:00 +0900 (Wed, 14 Sep 2016) | 2 lines

* .document: [DOC] add rbconfig. [ci skip]

------------------------------------------------------------------------
r56159 | svn | 2016-09-14 07:22:15 +0900 (Wed, 14 Sep 2016) | 1 line

* 2016-09-14
------------------------------------------------------------------------
r56158 | naruse | 2016-09-14 07:22:14 +0900 (Wed, 14 Sep 2016) | 1 line

* hash.c (each_pair_i_fast): use rb_yield_values2 to avoid var args.
------------------------------------------------------------------------
r56157 | rhe | 2016-09-13 21:33:16 +0900 (Tue, 13 Sep 2016) | 28 lines

string.c: avoid signed integer overflow

The behavior on signed integer overflow is undefined. On platform with
sizeof(long)==4, it's fairly easy that 'len + termlen' overflows, where
len is the string length and termlen is the terminator length.

So, prevent the integer overflow by avoiding adding to a string length,
or casting to size_t before adding where the total size is passed to
{RE,}ALLOC*().

* string.c (STR_HEAP_SIZE, RESIZE_CAPA_TERM, str_new0, rb_str_buf_new,
  str_shared_replace, rb_str_init, str_make_independent_expand,
  rb_str_resize): Avoid overflow by casting the length to size_t. size_t
  should be able to represent LONG_MAX+termlen.

* string.c (rb_str_modify_expand): Check that the new length is in the
  range of long before resizing. Also refactor to use RESIZE_CAPA_TERM
  macro.

* string.c (str_buf_cat): Fix so that it does not create a negative
  length String. Also fix the condition for 'string sizes too big', the
  total length can be up to LONG_MAX.

* string.c (rb_str_plus): Check the resulting String length does not
  exceed LONG_MAX.

* string.c (rb_str_dump): Fix integer overflow. The dump result will be
  longer then the original String.
------------------------------------------------------------------------
r56156 | rhe | 2016-09-13 21:33:13 +0900 (Tue, 13 Sep 2016) | 22 lines

Use PRIuSIZE format specifier for size_t values

Use PRIuSIZE instead of PRIdSIZE. This fixes the exception message shown
on too large xmalloc2. This commit also fixes other incorrect use of
PRIdSIZE in other functions; though most of them are debug print.

* gc.c (heap_extend_pages, get_envparam_size, ruby_malloc_size_overflow,
  gc_profile_dump_on): Use PRIuSIZE instead of PRIdSIZE as the passed
  value is size_t, not ssize_t.

* iseq.c (get_line_info, rb_iseq_disasm_insn): Ditto.

* sprintf.c (rb_str_format): Ditto.

* thread_win32.c (native_thread_create): Ditto.

* vm.c (get_param): Ditto.

* ext/objspace/objspace_dump.c (dump_append_string_content,
  dump_object): Ditto.

* ext/socket/raddrinfo.c (host_str, port_str): Ditto.
------------------------------------------------------------------------
r56155 | rhe | 2016-09-13 21:28:54 +0900 (Tue, 13 Sep 2016) | 4 lines

string.c: rename STR_EMBEDABLE_P to STR_EMBEDDABLE_P

* string.c (STR_EMBEDDABLE_P): Renamed from STR_EMBEDABLE_P(). And use
  it in more places.
------------------------------------------------------------------------
r56154 | kazu | 2016-09-13 21:26:04 +0900 (Tue, 13 Sep 2016) | 1 line

README{,.ja}.md: Drop support for BeOS now that Haiku is stable since 2.3.0. [ci skip]
------------------------------------------------------------------------
r56153 | kazu | 2016-09-13 21:26:03 +0900 (Tue, 13 Sep 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56152 | kazu | 2016-09-13 21:26:01 +0900 (Tue, 13 Sep 2016) | 1 line

fix unbalanced backquote [ci skip]
------------------------------------------------------------------------
r56151 | nobu | 2016-09-13 21:11:57 +0900 (Tue, 13 Sep 2016) | 5 lines

string.c: STR_EMBEDABLE_P

* string.c (STR_EMBEDABLE_P): extract the predicate macro to tell
  if the given length is capable in an embedded string, and fix
  possible integer overflow.
------------------------------------------------------------------------
r56150 | ko1 | 2016-09-13 18:39:08 +0900 (Tue, 13 Sep 2016) | 4 lines

* test/ruby/test_exception.rb: fix thread issues.
  * use Queue instead of a local variable for synchronization.
  * join created thread to soleve leaking threads warning.

------------------------------------------------------------------------
r56149 | nobu | 2016-09-13 17:12:54 +0900 (Tue, 13 Sep 2016) | 5 lines

string.c: fix integer overflow

* string.c (rb_str_change_terminator_length): fix integer overflow
  in the case growing the terminator length and the string length
  is around LONG_MAX.
------------------------------------------------------------------------
r56148 | rhe | 2016-09-13 16:08:15 +0900 (Tue, 13 Sep 2016) | 9 lines

string.c: fix buffer overflow check condition in rb_str_set_len()

* string.c (rb_str_set_len): The buffer overflow check is wrong. The
  space for termlen is allocated outside the capacity returned by
  rb_str_capacity(). This fixes r41920 ("string.c: multi-byte
  terminator", 2013-07-11).  [ruby-core:77257] [Bug #12757]

* test/-ext-/string/test_set_len.rb (test_capacity_equals_to_new_size):
  Test for this change. Applying only the test will trigger [BUG].
------------------------------------------------------------------------
r56147 | rhe | 2016-09-13 14:59:53 +0900 (Tue, 13 Sep 2016) | 7 lines

openssl: workaround for Ubuntu's patched OpenSSL

* test/openssl/test_ssl.rb (test_ctx_options): Add a workaround for
  patched OpenSSL to fix the Ruby CI failure on Ubuntu 16.04.
  http://rubyci.s3.amazonaws.com/ubuntu/ruby-trunk/log/20160913T033003Z.fail.html.gz
  This commit is a cherry-pick of the following commit at ruby/openssl:
  https://github.com/ruby/openssl/commit/f9c04779a84b45d85dc26dc19ea600d0613539e2
------------------------------------------------------------------------
r56146 | naruse | 2016-09-13 06:04:25 +0900 (Tue, 13 Sep 2016) | 1 line

* common.mk (benchmark): fix lib path.
------------------------------------------------------------------------
r56145 | svn | 2016-09-13 00:40:10 +0900 (Tue, 13 Sep 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56144 | tenderlove | 2016-09-13 00:40:09 +0900 (Tue, 13 Sep 2016) | 28 lines

Copy the serial number from the super class to the singleton class

This helps hit inline method caches more frequently.  Before this
commit:

```
[aaron@TC ruby (trunk)]$ time ./ruby -v benchmark/bm_vm2_poly_singleton.rb
ruby 2.4.0dev (2016-09-12 trunk 56141) [x86_64-darwin15]

real  0m3.679s
user  0m3.632s
sys 0m0.022s
```

After this commit:

```
[aaron@TC ruby (trunk)]$ time ./ruby -v benchmark/bm_vm2_poly_singleton.rb
ruby 2.4.0dev (2016-09-12 trunk 56141) [x86_64-darwin15]
last_commit=Copy the serial number from the super class to the singleton class

real  0m2.246s
user  0m2.203s
sys 0m0.020s
```

[Feature #12364]
[ruby-core:75425]
------------------------------------------------------------------------
r56143 | svn | 2016-09-13 00:16:10 +0900 (Tue, 13 Sep 2016) | 1 line

* 2016-09-13
------------------------------------------------------------------------
r56142 | usa | 2016-09-13 00:16:09 +0900 (Tue, 13 Sep 2016) | 2 lines

* time.c (time_arg): guard for mswin64 CI.

------------------------------------------------------------------------
r56141 | hsbt | 2016-09-12 13:48:05 +0900 (Mon, 12 Sep 2016) | 1 line

Added missing references of github and redmine.
------------------------------------------------------------------------
r56140 | svn | 2016-09-12 13:46:28 +0900 (Mon, 12 Sep 2016) | 1 line

* 2016-09-12
------------------------------------------------------------------------
r56139 | hsbt | 2016-09-12 13:46:27 +0900 (Mon, 12 Sep 2016) | 3 lines

* lib/uri/mailto.rb: Removed needless `return` and use `.`` instead of `::`
  with class method.
* test/uri/test_mailto.rb: Added tests for coverage.
------------------------------------------------------------------------
r56138 | kazu | 2016-09-11 21:33:46 +0900 (Sun, 11 Sep 2016) | 1 line

NEWS: News about Module.used_modules.
------------------------------------------------------------------------
r56137 | kazu | 2016-09-11 21:32:27 +0900 (Sun, 11 Sep 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56136 | kazu | 2016-09-11 19:34:56 +0900 (Sun, 11 Sep 2016) | 1 line

Update URL of Japanese document of net/pop
------------------------------------------------------------------------
r56135 | kazu | 2016-09-11 19:33:36 +0900 (Sun, 11 Sep 2016) | 1 line

Use https instead of http in some URLs
------------------------------------------------------------------------
r56134 | usa | 2016-09-11 19:17:43 +0900 (Sun, 11 Sep 2016) | 2 lines

* ChangeLog: added refs. [Bug #12748] [ruby-dev:49786]

------------------------------------------------------------------------
r56133 | svn | 2016-09-11 19:08:02 +0900 (Sun, 11 Sep 2016) | 1 line

* 2016-09-11
------------------------------------------------------------------------
r56132 | usa | 2016-09-11 19:08:01 +0900 (Sun, 11 Sep 2016) | 4 lines

* win32/win32.c (rb_w32_write_console): should set writen length as the
  return value.


------------------------------------------------------------------------
r56131 | svn | 2016-09-10 17:16:51 +0900 (Sat, 10 Sep 2016) | 1 line

* 2016-09-10
------------------------------------------------------------------------
r56130 | nobu | 2016-09-10 17:16:50 +0900 (Sat, 10 Sep 2016) | 3 lines

extension.rdoc: rb_check_arity [ci skip]

* doc/extension.rdoc (rb_check_arity): described.
------------------------------------------------------------------------
r56127 | kazu | 2016-09-09 22:44:15 +0900 (Fri, 09 Sep 2016) | 1 line

* gems/bundled_gems: sort lines.
------------------------------------------------------------------------
r56126 | nobu | 2016-09-09 18:27:38 +0900 (Fri, 09 Sep 2016) | 4 lines

json_generator_test.rb: no Bignum

* test/json/json_generator_test.rb (test_broken_bignum): get rid
  of use of Bignum, obsolete name.
------------------------------------------------------------------------
r56125 | nobu | 2016-09-09 17:59:48 +0900 (Fri, 09 Sep 2016) | 5 lines

thread.c: set cause by Thread#raise

* thread.c (rb_threadptr_raise): set cause from the called thread,
  but not from the thread to be interrupted.
  [ruby-core:77222] [Bug #12741]
------------------------------------------------------------------------
r56124 | nobu | 2016-09-09 13:50:07 +0900 (Fri, 09 Sep 2016) | 4 lines

fix file names [ci skip]

* doc/extension.rdoc, doc/extension.ja.rdoc: fix file name.
  pointed out by @takkanm in the RubyKaigi talk.
------------------------------------------------------------------------
r56123 | duerst | 2016-09-09 13:14:55 +0900 (Fri, 09 Sep 2016) | 2 lines

* News: Announcing update to Unicode version 9.0.0 [ci skip]

------------------------------------------------------------------------
r56120 | nobu | 2016-09-09 12:02:23 +0900 (Fri, 09 Sep 2016) | 4 lines

object.c: update rdoc

* object.c (InitVM_Object): update rdoc of NIL/TRUE/FALSE, and use
  rb_deprecate_constant.
------------------------------------------------------------------------
r56119 | nobu | 2016-09-09 12:02:22 +0900 (Fri, 09 Sep 2016) | 4 lines

variable.c: rb_deprecate_constant

* variable.c (rb_deprecate_constant): new function to deprecate a
  constant by the name.
------------------------------------------------------------------------
r56118 | nobu | 2016-09-09 10:10:01 +0900 (Fri, 09 Sep 2016) | 4 lines

variable.c: fix deprecated constant message

* variable.c (rb_const_search): warn with the actual class/module
  name which defines the deprecated constant.
------------------------------------------------------------------------
r56117 | nobu | 2016-09-09 10:07:41 +0900 (Fri, 09 Sep 2016) | 4 lines

variable.c: fix private constant message

* variable.c (rb_const_search): raise with the actual class/module
  name which defines the private constant.
------------------------------------------------------------------------
r56116 | svn | 2016-09-09 09:49:06 +0900 (Fri, 09 Sep 2016) | 1 line

* 2016-09-09
------------------------------------------------------------------------
r56115 | nobu | 2016-09-09 09:49:05 +0900 (Fri, 09 Sep 2016) | 4 lines

e2mmap.rb: remove legacy code

* lib/e2mmap.rb (Exception2MessageMapper::E2MM.def_exception):
  remove legacy code.  Symbol is no longer a number already.
------------------------------------------------------------------------
r56112 | nobu | 2016-09-08 17:59:00 +0900 (Thu, 08 Sep 2016) | 4 lines

io.c: check if Integer

* io.c (rb_file_initialize): check if fd is an Integer but not a
  Fixnum.
------------------------------------------------------------------------
r56111 | ktsj | 2016-09-08 17:56:30 +0900 (Thu, 08 Sep 2016) | 3 lines

* array.c (flatten): use rb_obj_class instead of rb_class_of
  because rb_class_of may return a singleton class.
  [ruby-dev:49781] [Bug #12738]
------------------------------------------------------------------------
r56110 | nobu | 2016-09-08 17:40:16 +0900 (Thu, 08 Sep 2016) | 4 lines

rbinstall.rb: gem bindir

* tool/rbinstall.rb (gem): use the bindir of each gemspec instead
  of hardcoded 'bin', since rdoc 5.0.0 overrides it.
------------------------------------------------------------------------
r56109 | shugo | 2016-09-08 16:49:02 +0900 (Thu, 08 Sep 2016) | 2 lines

* eval.c (rb_mod_s_used_modules): rename Module.used_refinements to
  Module.used_modules.  [Feature #7418] [ruby-core:49805]
------------------------------------------------------------------------
r56107 | naruse | 2016-09-08 14:45:09 +0900 (Thu, 08 Sep 2016) | 1 line

Unbundle tk
------------------------------------------------------------------------
r56105 | kazu | 2016-09-08 14:35:34 +0900 (Thu, 08 Sep 2016) | 5 lines

Update svn:ignore [ci skip]

* enc/unicode/data/9.0.0 (svn:ignore): ignore downloaded files.
  see r55716 for 8.0.0.

------------------------------------------------------------------------
r56104 | hsbt | 2016-09-08 14:33:59 +0900 (Thu, 08 Sep 2016) | 3 lines

* ext/psych/psych.gemspec, lib/rdoc/rdoc.gemspec: Use file list instead of
  git output. It shows warning message when invoke `make install`
  [Bug #12736][ruby-dev:49778]
------------------------------------------------------------------------
r56102 | akr | 2016-09-08 13:57:49 +0900 (Thu, 08 Sep 2016) | 2 lines

replace fixnum by integer in documents.

------------------------------------------------------------------------
r56101 | shugo | 2016-09-08 13:44:51 +0900 (Thu, 08 Sep 2016) | 2 lines

* insns.def (setclassvariable, setconstant): warn when self is a
  refinement.  [Bug #10103] [ruby-core:64143]
------------------------------------------------------------------------
r56100 | mrkn | 2016-09-08 11:34:54 +0900 (Thu, 08 Sep 2016) | 1 line

NEWS: Add Hash#transform_values
------------------------------------------------------------------------
r56099 | mrkn | 2016-09-08 11:33:18 +0900 (Thu, 08 Sep 2016) | 7 lines

hash.c: map_v -> transform_values

* hash.c (rb_hash_transform_values, rb_hash_transform_values_bang):
  Rename map_v to transform_values.
  [Feature #12512] [ruby-core:76095]

* test/ruby/test_hash.rb: ditto.
------------------------------------------------------------------------
r56098 | rhe | 2016-09-08 10:09:19 +0900 (Thu, 08 Sep 2016) | 5 lines

openssl: import v2.0.0.beta.2

* {ext,test}/openssl: Import Ruby/OpenSSL 2.0.0.beta.2. The full commit
  history since v2.0.0.beta.1 can be found at:
  https://github.com/ruby/openssl/compare/v2.0.0.beta.1...v2.0.0.beta.2
------------------------------------------------------------------------
r56097 | hsbt | 2016-09-08 07:23:38 +0900 (Thu, 08 Sep 2016) | 3 lines

* lib/rdoc/*, test/rdoc/*: Update rdoc-5.0.0.beta2
  Fixed ri parse defect with left-hand matched classes.
  https://github.com/rdoc/rdoc/pull/420
------------------------------------------------------------------------
r56096 | svn | 2016-09-08 01:15:46 +0900 (Thu, 08 Sep 2016) | 1 line

* 2016-09-08
------------------------------------------------------------------------
r56095 | svn | 2016-09-08 01:15:46 +0900 (Thu, 08 Sep 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56094 | shugo | 2016-09-08 01:15:45 +0900 (Thu, 08 Sep 2016) | 3 lines

* eval.c (rb_mod_s_used_refinements): new method
  Module.used_refinements.  based on the patch by Charlie
  Somerville.  [Feature #7418] [ruby-core:49805]
------------------------------------------------------------------------
r56093 | kazu | 2016-09-07 21:32:04 +0900 (Wed, 07 Sep 2016) | 1 line

Use our domain instead of other's domain
------------------------------------------------------------------------
r56092 | kazu | 2016-09-07 21:32:02 +0900 (Wed, 07 Sep 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r56091 | nobu | 2016-09-07 17:50:39 +0900 (Wed, 07 Sep 2016) | 4 lines

util.h: POSIX-noncompliant setenv

* include/ruby/util.h (setenv): remove POSIX-noncompliant
  definition with 2 arguments.
------------------------------------------------------------------------
r56090 | duerst | 2016-09-07 17:35:39 +0900 (Wed, 07 Sep 2016) | 3 lines

* unicode/8.0.0/casefold.h, name2ctype.h, unicode/data/8.0.0:
  removing directories/files related to Unicode version 8.0.0

------------------------------------------------------------------------
r56089 | nobu | 2016-09-07 17:21:56 +0900 (Wed, 07 Sep 2016) | 4 lines

timeout.rb: custom error message

* lib/timeout.rb (Timeout#timeout): add custom error message
  argument.  [Feature #11650]
------------------------------------------------------------------------
r56088 | svn | 2016-09-07 17:13:09 +0900 (Wed, 07 Sep 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56087 | duerst | 2016-09-07 17:13:08 +0900 (Wed, 07 Sep 2016) | 4 lines

* common.mk: Updated Unicode version to 9.0.0 [Feature #12513]
* unicode/9.0.0/casefold.h, name2ctype.h, unicode/data/9.0.0:
  new directories/files for Unicode version 9.0.0

------------------------------------------------------------------------
r56086 | nobu | 2016-09-07 16:35:45 +0900 (Wed, 07 Sep 2016) | 4 lines

class.c: instance method conditions

* class.c (ins_methods_i, ins_methods_prot_i, ins_methods_priv_i),
  (ins_methods_pub_i): check for each conditions to match.
------------------------------------------------------------------------
r56085 | akr | 2016-09-07 16:14:30 +0900 (Wed, 07 Sep 2016) | 7 lines

lib/open-uri.rb: Allow http to https redirection.

* lib/open-uri.rb: Allow http to https redirection.
  Note that https to http is still forbidden.
  [ruby-core:20485] [Feature #859] by Roman Shterenzon.


------------------------------------------------------------------------
r56084 | ktsj | 2016-09-07 16:02:36 +0900 (Wed, 07 Sep 2016) | 1 line

* ChangeLog: fix ticket number.
------------------------------------------------------------------------
r56083 | ktsj | 2016-09-07 15:06:09 +0900 (Wed, 07 Sep 2016) | 6 lines

* lib/csv.rb (CSV::{Row,Table}#{each,delete_if}): returns an enumerator
  if no block is given. [ruby-core:75346] [Feature #11058]

* test/csv/test_row.rb: add test for above.

* test/csv/test_table.rb: ditto.
------------------------------------------------------------------------
r56082 | ktsj | 2016-09-07 14:54:11 +0900 (Wed, 07 Sep 2016) | 1 line

* gems/bundled_gems: update to power_assert 0.3.1.
------------------------------------------------------------------------
r56081 | hsbt | 2016-09-07 12:16:15 +0900 (Wed, 07 Sep 2016) | 4 lines

* ext/psych/*, test/psych/*: Update psych-2.1.1
  This version fixed following pull requests.
  https://github.com/tenderlove/psych/pull/284
  https://github.com/tenderlove/psych/pull/276
------------------------------------------------------------------------
r56080 | svn | 2016-09-07 11:51:13 +0900 (Wed, 07 Sep 2016) | 1 line

* 2016-09-07
------------------------------------------------------------------------
r56079 | hsbt | 2016-09-07 11:51:12 +0900 (Wed, 07 Sep 2016) | 3 lines

* lib/rdoc/*, test/rdoc/*: Update rdoc-5.0.0.beta1
  This version is mostly same as r56072. It contains to remove code
  for Ruby 1.8
------------------------------------------------------------------------
r56078 | nobu | 2016-09-06 12:10:43 +0900 (Tue, 06 Sep 2016) | 4 lines

socket/depend: add srcs [ci skip]

* ext/socket/depend (srcs): phony target to update confdefs source
  files.
------------------------------------------------------------------------
r56077 | nobu | 2016-09-06 12:03:35 +0900 (Tue, 06 Sep 2016) | 4 lines

common.mk: fix path arguments [ci skip]

* common.mk (ext/date/zonetab.h): fix inverted relative path
  arguments.
------------------------------------------------------------------------
r56076 | usa | 2016-09-06 10:21:54 +0900 (Tue, 06 Sep 2016) | 3 lines

* time.c (obj2subsecx): subsec might be GC'ed.  try to get rid of SEGV on mswin
  CI.

------------------------------------------------------------------------
r56075 | svn | 2016-09-06 09:23:13 +0900 (Tue, 06 Sep 2016) | 1 line

* 2016-09-06
------------------------------------------------------------------------
r56074 | hsbt | 2016-09-06 09:23:12 +0900 (Tue, 06 Sep 2016) | 2 lines

* lib/rdoc/rdoc.gemspec: partly reverted for default gem installer.
  upstream configuration is not working on ruby core repository.
------------------------------------------------------------------------
r56073 | svn | 2016-09-05 19:35:32 +0900 (Mon, 05 Sep 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56072 | hsbt | 2016-09-05 19:35:30 +0900 (Mon, 05 Sep 2016) | 3 lines

* lib/rdoc/*, test/rdoc/*: Update rdoc/rdoc master(f191513)
  https://github.com/rdoc/rdoc/blob/master/History.rdoc#423--2016--
  https://github.com/rdoc/rdoc/blob/master/History.rdoc#422--2016-02-09
------------------------------------------------------------------------
r56071 | svn | 2016-09-05 09:58:24 +0900 (Mon, 05 Sep 2016) | 1 line

* 2016-09-05
------------------------------------------------------------------------
r56070 | nobu | 2016-09-05 09:58:23 +0900 (Mon, 05 Sep 2016) | 5 lines

rbinstall.rb: install just one gemspec [ci skip]

* tool/rbinstall.rb (gem): install gemspec match with the
  directory only.  some gems, (e.g., json) have multiple gemspec
  files.
------------------------------------------------------------------------
r56069 | nobu | 2016-09-04 15:25:38 +0900 (Sun, 04 Sep 2016) | 4 lines

rbinstall.rb: install iff expected platforms [ci skip]

* tool/rbinstall.rb (gem): install only gemspecs for expected
  platforms.  e.g., ignore json-java.gemspec in json gem.
------------------------------------------------------------------------
r56068 | nobu | 2016-09-04 15:15:58 +0900 (Sun, 04 Sep 2016) | 4 lines

rbinstall.rb: chdir to gem directory [ci skip]

* tool/rbinstall.rb (gem): load gemspec files under each
  directories, since some gemspecs read files there.
------------------------------------------------------------------------
r56067 | nobu | 2016-09-04 14:27:48 +0900 (Sun, 04 Sep 2016) | 4 lines

extmk.rb: no ext, no build_complete

* ext/extmk.rb (create_makefile): touch gem.build_complete only if
  building an extension library.
------------------------------------------------------------------------
r56066 | nobu | 2016-09-04 14:05:20 +0900 (Sun, 04 Sep 2016) | 4 lines

extmk.rb: fix gem.build_complete location

* ext/extmk.rb (timestamp_file): make build_complete file at the
  toplevel of the gem directory without target_prefix.
------------------------------------------------------------------------
r56065 | nobu | 2016-09-04 13:56:56 +0900 (Sun, 04 Sep 2016) | 4 lines

extmk.rb: expand target_prefix

* ext/extmk.rb (timestamp_file): should expand target_prefix in
  timestamp file name.
------------------------------------------------------------------------
r56064 | nobu | 2016-09-04 13:44:06 +0900 (Sun, 04 Sep 2016) | 4 lines

extmk.rb: append target_prefix

* ext/extmk.rb (timestamp_file, create_makefile): should append
  target_prefix as RUBYARCHDIR does.
------------------------------------------------------------------------
r56063 | svn | 2016-09-04 00:21:44 +0900 (Sun, 04 Sep 2016) | 1 line

* 2016-09-04
------------------------------------------------------------------------
r56062 | sho-h | 2016-09-04 00:21:43 +0900 (Sun, 04 Sep 2016) | 3 lines

* proc.c: [DOC] fix Object#define_singleton_method and
  main.define_method return value. [ci skip]

------------------------------------------------------------------------
r56061 | svn | 2016-09-03 11:28:32 +0900 (Sat, 03 Sep 2016) | 1 line

* 2016-09-03
------------------------------------------------------------------------
r56060 | nobu | 2016-09-03 11:28:31 +0900 (Sat, 03 Sep 2016) | 5 lines

thread_pthread.c: check stack on co-routine case

* thread_pthread.c (ruby_init_stack): check stack bounds even if
  get_main_stack succeeded, on the "co-routine" case.
  https://github.com/ruby/ruby/commit/53953ee#commitcomment-18887413
------------------------------------------------------------------------
r56059 | nobu | 2016-09-02 16:07:01 +0900 (Fri, 02 Sep 2016) | 4 lines

internal.h: fix typos

* internal.h (MEMO_V1_SET, MEMO_V2_SET): fix typos.  use the macro
  parameter, not the local variable.
------------------------------------------------------------------------
r56058 | svn | 2016-09-02 00:55:14 +0900 (Fri, 02 Sep 2016) | 1 line

* 2016-09-02
------------------------------------------------------------------------
r56057 | nobu | 2016-09-02 00:55:13 +0900 (Fri, 02 Sep 2016) | 5 lines

extmk.rb: fix conflict of timestamp files

* ext/extmk.rb (timestamp_file): move extmk.rb specific tricks
  from lib/mkmf.rb.  keep RUBYCOMMONDIR prefix not to conflict
  with a timestamp file in the toplevel.
------------------------------------------------------------------------
r56056 | nobu | 2016-09-01 16:02:32 +0900 (Thu, 01 Sep 2016) | 6 lines

mkmf.rb: architecture timestamp directories

* lib/mkmf.rb (timestamp_file): substitute TARGET_SO_DIR with
  RUBYARCHDIR seprately from other normal paths, to make timestamp
  files for architecture dependent directories separately.  and
  remove RUBYCOMMONDIR prefix.
------------------------------------------------------------------------
r56055 | nobu | 2016-09-01 15:10:25 +0900 (Thu, 01 Sep 2016) | 5 lines

rbinstall.rb: prefix with space [ci skip]

* tool/rbinstall.rb (bin): exec via /bin/sh if the prefix contains
  space charaters, because shebang does not support that case in
  general.
------------------------------------------------------------------------
r56054 | nobu | 2016-09-01 14:54:25 +0900 (Thu, 01 Sep 2016) | 4 lines

mkmf.rb: fix up r56053

* lib/mkmf.rb (timestamp_file): TARGET_SO_DIR is defaulted to
  RUBYARCHDIR but different for each extension libraries.
------------------------------------------------------------------------
r56053 | nobu | 2016-09-01 14:24:19 +0900 (Thu, 01 Sep 2016) | 5 lines

extmk.rb: hacks for bundled gems

* ext/extmk.rb (gems): move dirty hacks for bundled gems from
  mkmf.rb.
* lib/mkmf.rb (create_makefile): yield all configuration strings.
------------------------------------------------------------------------
r56052 | svn | 2016-09-01 12:58:02 +0900 (Thu, 01 Sep 2016) | 1 line

* 2016-09-01
------------------------------------------------------------------------
r56051 | nobu | 2016-09-01 12:58:01 +0900 (Thu, 01 Sep 2016) | 6 lines

no Borland make [ci skip]

* ext/extmk.rb: remove Borland make support.  Borland C++ has not
  been supported since years ago.

* lib/mkmf.rb: ditto.
------------------------------------------------------------------------
r56050 | nobu | 2016-08-31 20:27:24 +0900 (Wed, 31 Aug 2016) | 4 lines

mkmf.rb: fix up r56047

* lib/mkmf.rb (create_makefile): install to $(RUBYARCHDIR) other
  than bundled extension libraries.
------------------------------------------------------------------------
r56049 | nobu | 2016-08-31 20:20:45 +0900 (Wed, 31 Aug 2016) | 4 lines

mkmf.rb: fix up r56047

* lib/mkmf.rb (create_makefile): TARGET_SO_DIR should not be the
  root directory when sodir is empty.
------------------------------------------------------------------------
r56048 | nobu | 2016-08-31 17:39:23 +0900 (Wed, 31 Aug 2016) | 5 lines

extmk.rb: build_complete

* ext/extmk.rb (create_makefile): make gem.build_complete file
  under TARGET_SO_DIR and install it only when the gem build
  succeeded.  [ruby-core:77057] [Bug #12681]
------------------------------------------------------------------------
r56047 | nobu | 2016-08-31 15:36:12 +0900 (Wed, 31 Aug 2016) | 6 lines

mkmf.rb: TARGET_SO_DIR

* ext/extmk.rb: move TARGET_SO_DIR stuffs to mkmf.rb.
* lib/mkmf.rb (create_makefile): create target shared object files
  under $(TARGET_SO_DIR) which is $sodir if it is defined with
  $extout.  [ruby-core:77058] [Bug #12681]
------------------------------------------------------------------------
r56046 | nobu | 2016-08-31 11:41:31 +0900 (Wed, 31 Aug 2016) | 4 lines

mkmf.rb: separate timestamp files

* lib/mkmf.rb (timestamp_file): separate timestamp files for each
  architectures.
------------------------------------------------------------------------
r56045 | nobu | 2016-08-31 11:03:07 +0900 (Wed, 31 Aug 2016) | 3 lines

extmk.rb: filter gems

* ext/extmk.rb: filter gems as well as exts.
------------------------------------------------------------------------
r56044 | yui-knk | 2016-08-31 01:54:06 +0900 (Wed, 31 Aug 2016) | 1 line

* doc/extension.ja.rdoc: [DOC] Fix a typo. [ci skip]
------------------------------------------------------------------------
r56043 | svn | 2016-08-31 00:52:25 +0900 (Wed, 31 Aug 2016) | 1 line

* 2016-08-31
------------------------------------------------------------------------
r56042 | nobu | 2016-08-31 00:52:24 +0900 (Wed, 31 Aug 2016) | 4 lines

extmk.rb: fix gem target directory name

* ext/extmk.rb: make the gems target directory under the expanded
  name.  [ruby-core:77102] [Bug #12714]
------------------------------------------------------------------------
r56041 | kazu | 2016-08-30 21:40:56 +0900 (Tue, 30 Aug 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r56040 | kazu | 2016-08-30 21:40:55 +0900 (Tue, 30 Aug 2016) | 1 line

sort entries [ci skip]
------------------------------------------------------------------------
r56039 | nobu | 2016-08-30 16:29:59 +0900 (Tue, 30 Aug 2016) | 4 lines

vm.c: unnecessary condition

* vm.c (vm_stat): remove unnecessary condition, when argc != 1 arg
  is always Qnil.
------------------------------------------------------------------------
r56038 | nobu | 2016-08-30 15:27:29 +0900 (Tue, 30 Aug 2016) | 4 lines

Fix rdoc of OpenStruct.json_create [ci skip]

* ext/json/lib/json/add/ostruct.rb (OpenStruct.json_create):
  Correct documentation, fix the name of values.  [Fix GH-1421]
------------------------------------------------------------------------
r56037 | nobu | 2016-08-30 15:22:30 +0900 (Tue, 30 Aug 2016) | 1 line

Use qualified names
------------------------------------------------------------------------
r56036 | usa | 2016-08-30 14:59:17 +0900 (Tue, 30 Aug 2016) | 5 lines

* io.c (nogvl_fsync, nogvl_fdatasync): on Windows, just ignore if the
  fd is associated to non-disk device.  if call fsync and/or fdatasync
  with such fds, it causes Errno::EBADF exception and the behavior is
  incomatible with ruby 2.1 and earlier unintendedly introduced.

------------------------------------------------------------------------
r56035 | naruse | 2016-08-30 13:49:26 +0900 (Tue, 30 Aug 2016) | 4 lines

fix r56030 [Bug #12711]

check whether it was syscall or not by getting previous instruction.
syscall instruction is 0x0f 0x05.
------------------------------------------------------------------------
r56034 | okkez | 2016-08-30 09:44:34 +0900 (Tue, 30 Aug 2016) | 3 lines

* doc/NEWS-2.1.0: fix method name
* doc/NEWS-2.2.0: ditto.

------------------------------------------------------------------------
r56033 | okkez | 2016-08-30 09:34:10 +0900 (Tue, 30 Aug 2016) | 2 lines

* doc/NEWS-2.1.0: fix method name

------------------------------------------------------------------------
r56031 | svn | 2016-08-30 03:43:18 +0900 (Tue, 30 Aug 2016) | 1 line

* 2016-08-30
------------------------------------------------------------------------
r56030 | naruse | 2016-08-30 03:43:17 +0900 (Tue, 30 Aug 2016) | 4 lines

* vm_dump.c (backtrace): use rip in the saved context for the case
  the SIGSEGV is received when the process is in userland.
  Note that ip in the stack should be used if the signal is received
  when it is in kernel (when it is calling syscall) [Bug #12711]
------------------------------------------------------------------------
r56029 | svn | 2016-08-29 14:47:11 +0900 (Mon, 29 Aug 2016) | 1 line

* properties.
------------------------------------------------------------------------
r56028 | svn | 2016-08-29 14:47:11 +0900 (Mon, 29 Aug 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r56027 | rhe | 2016-08-29 14:47:09 +0900 (Mon, 29 Aug 2016) | 7 lines

import Ruby/OpenSSL 2.0.0.beta.1

* NEWS, {ext,test,sample}/openssl: Import Ruby/OpenSSL 2.0.0.beta.1.
  ext/openssl is now converted into a default gem. The full commit
  history since r55538 can be found at:
  https://github.com/ruby/openssl/compare/08e1881f5663...v2.0.0.beta.1
  [Feature #9612]
------------------------------------------------------------------------
r56026 | svn | 2016-08-29 14:47:08 +0900 (Mon, 29 Aug 2016) | 1 line

* 2016-08-29
------------------------------------------------------------------------
r56025 | rhe | 2016-08-29 14:47:08 +0900 (Mon, 29 Aug 2016) | 5 lines

assertions.rb: add an alias pend for skip

* test/lib/test/unit/assertions.rb (pend): Add an alias 'pend' for
  'skip'. This is required for test-unit compatibility. In particular,
  ext/openssl uses it.
------------------------------------------------------------------------
r56024 | svn | 2016-08-28 17:53:23 +0900 (Sun, 28 Aug 2016) | 1 line

* 2016-08-28
------------------------------------------------------------------------
r56023 | nobu | 2016-08-28 17:53:22 +0900 (Sun, 28 Aug 2016) | 3 lines

thread_sync.c: alias_global_const

* thread_sync.c (alias_global_const): extract from a macro.
------------------------------------------------------------------------
r56021 | nobu | 2016-08-27 10:26:17 +0900 (Sat, 27 Aug 2016) | 5 lines

multiple arguments

* array.c (rb_ary_concat_multi): take multiple arguments.  based
  on the patch by Satoru Horie.  [Feature #12333]
* string.c (rb_str_concat_multi, rb_str_prepend_multi): ditto.
------------------------------------------------------------------------
r56020 | nobu | 2016-08-27 08:26:03 +0900 (Sat, 27 Aug 2016) | 4 lines

parse.y: heredoc token

* parse.y (parser_heredoc_identifier): gather branches by quote
  char.
------------------------------------------------------------------------
r56017 | nobu | 2016-08-27 01:08:40 +0900 (Sat, 27 Aug 2016) | 5 lines

test_regex_casefold.rb: skip if no data file

* test/ruby/enc/test_regex_casefold.rb (setup): skip with error
  message if CaseFolding.txt does not present, instead of printing
  the message, which causes unknown command in parallel test.
------------------------------------------------------------------------
r56016 | nobu | 2016-08-27 00:11:32 +0900 (Sat, 27 Aug 2016) | 4 lines

parse.y: STR_TERM_END

* parse.y (parser_parse_string): store the end of string literal
  mark in nd_term instead of nd_func.
------------------------------------------------------------------------
r56015 | svn | 2016-08-27 00:07:52 +0900 (Sat, 27 Aug 2016) | 1 line

* 2016-08-27
------------------------------------------------------------------------
r56014 | nobu | 2016-08-27 00:07:51 +0900 (Sat, 27 Aug 2016) | 4 lines

parse.y: parser_string_term

* parse.y (parser_string_term): return the token of string or
  regexp literal terminator.
------------------------------------------------------------------------
r56013 | nobu | 2016-08-26 17:29:23 +0900 (Fri, 26 Aug 2016) | 4 lines

parse.y: reset indent in heredoc_dedent

* parse.y (parser_heredoc_dedent): reset heredoc_indent and return
  the dedented node.
------------------------------------------------------------------------
r56012 | nobu | 2016-08-26 17:29:22 +0900 (Fri, 26 Aug 2016) | 3 lines

parse.y: new_string1

* parse.y (new_string1): extract from the rule.
------------------------------------------------------------------------
r56011 | nobu | 2016-08-26 17:29:18 +0900 (Fri, 26 Aug 2016) | 3 lines

parse.y: new_xstring_gen

* parse.y (new_xstring_gen): extract from the rule.
------------------------------------------------------------------------
r56010 | svn | 2016-08-26 17:29:18 +0900 (Fri, 26 Aug 2016) | 1 line

* 2016-08-26
------------------------------------------------------------------------
r56009 | nobu | 2016-08-26 17:29:17 +0900 (Fri, 26 Aug 2016) | 3 lines

parse.y: new_regexp_gen

* parse.y (new_regexp_gen): extract from the rule.
------------------------------------------------------------------------
r56008 | nobu | 2016-08-25 11:57:41 +0900 (Thu, 25 Aug 2016) | 6 lines

win32/file.c: use ALLOC_N

* win32/file.c (home_dir, replace_to_long_name): use ALLOC_N
  instead of casted xmalloc with multiplication.

win32/file.c (rb_file_expand_path_internal): ditto.
------------------------------------------------------------------------
r56007 | nobu | 2016-08-25 11:11:19 +0900 (Thu, 25 Aug 2016) | 3 lines

win32/file.h: rb_w32_filecp

* win32/file.h (rb_w32_filecp): add declaration.
------------------------------------------------------------------------
r56006 | nobu | 2016-08-25 00:42:33 +0900 (Thu, 25 Aug 2016) | 4 lines

win32/file.c: remove a codepage argument

* win32/file.c (append_wstr): remove a codepage argument, and use
  INVALID_CODE_PAGE for conversion by econv.
------------------------------------------------------------------------
r56005 | svn | 2016-08-25 00:39:53 +0900 (Thu, 25 Aug 2016) | 1 line

* 2016-08-25
------------------------------------------------------------------------
r56004 | nobu | 2016-08-25 00:39:52 +0900 (Thu, 25 Aug 2016) | 4 lines

win32/file.c: fix result length

* win32/file.c (append_wstr): exclude the terminator from the
  result length when input len == -1.
------------------------------------------------------------------------
r56001 | kou | 2016-08-24 22:42:08 +0900 (Wed, 24 Aug 2016) | 2 lines

* gc.c (gc_reset_malloc_info): Remove too much ";".

------------------------------------------------------------------------
r56000 | nobu | 2016-08-24 22:04:36 +0900 (Wed, 24 Aug 2016) | 3 lines

win32/file.c: use enum

* win32/file.c (home_dir): use enum instead of magic numbers.
------------------------------------------------------------------------
r55999 | ngoto | 2016-08-24 20:11:03 +0900 (Wed, 24 Aug 2016) | 2 lines

Fix ChangeLog [ci skip]

------------------------------------------------------------------------
r55998 | ngoto | 2016-08-24 20:08:30 +0900 (Wed, 24 Aug 2016) | 4 lines

* include/ruby/defines.h (ALWAYS_INLINE): Add alternative definition.
  Fix compile error with compilers that do not have force inline
  attribute, including old version of fcc on Solaris 10.

------------------------------------------------------------------------
r55997 | naruse | 2016-08-24 16:56:51 +0900 (Wed, 24 Aug 2016) | 1 line

* .gdbinit: follow r55766's VM change.
------------------------------------------------------------------------
r55996 | nobu | 2016-08-24 13:43:25 +0900 (Wed, 24 Aug 2016) | 4 lines

common.mk: unnecessary dependents of prelude.c

* common.mk (PRELUDE_C): remove unnecessary dependents, which are
  not included directly.
------------------------------------------------------------------------
r55995 | svn | 2016-08-24 12:57:59 +0900 (Wed, 24 Aug 2016) | 1 line

* 2016-08-24
------------------------------------------------------------------------
r55994 | nobu | 2016-08-24 12:57:58 +0900 (Wed, 24 Aug 2016) | 7 lines

object.c: fix {Module,Class}.new rdoc [ci skip]

* object.c (rb_mod_initialize, rb_class_initialize): [DOC] these
  methods do not invoke module_eval/class_eval, just eval the
  given block under the new module/class but sharing the context
  with the surrounding scope like those methods.
  [ruby-core:77023] [Bug #12696]
------------------------------------------------------------------------
r55993 | nobu | 2016-08-23 17:00:09 +0900 (Tue, 23 Aug 2016) | 4 lines

goruby.c: call Init_golf [ci skip]

* goruby.c (init_golf): call Init_golf, because ruby_init_ext only
  registers the function since r43514.
------------------------------------------------------------------------
r55992 | nobu | 2016-08-23 11:05:24 +0900 (Tue, 23 Aug 2016) | 4 lines

test_ssl_server.rb: fix FD leak

* test/webrick/test_ssl_server.rb (assert_self_signed_cert): close
  underlying TCP socket to fix FD leak.
------------------------------------------------------------------------
r55991 | nobu | 2016-08-23 10:34:42 +0900 (Tue, 23 Aug 2016) | 4 lines

test_psych.rb: close Tempfile

* test/psych/test_psych.rb (test_load_file_with_fallback): fix
  Tempfile leak.  https://github.com/tenderlove/psych/pull/288
------------------------------------------------------------------------
r55990 | nobu | 2016-08-23 10:15:04 +0900 (Tue, 23 Aug 2016) | 4 lines

string.c: rb_fs_setter

* string.c (rb_fs_setter): check and convert $; value at
  assignment.
------------------------------------------------------------------------
r55987 | svn | 2016-08-23 02:10:01 +0900 (Tue, 23 Aug 2016) | 1 line

* 2016-08-23
------------------------------------------------------------------------
r55986 | nobu | 2016-08-23 02:10:00 +0900 (Tue, 23 Aug 2016) | 4 lines

string.c: $; name in error message

* string.c (rb_str_split_m): show $; name in error message when it
  is a wrong object.
------------------------------------------------------------------------
r55985 | nobu | 2016-08-22 16:29:54 +0900 (Mon, 22 Aug 2016) | 5 lines

csv.rb: performance with very long quoted lines

* lib/csv.rb (CSV#shift): store partial quoted strings in an array
  and join at last, to improve performance with very long quoted
  lines.  [ruby-core:76987] [Bug #12691]
------------------------------------------------------------------------
r55984 | nobu | 2016-08-22 14:35:59 +0900 (Mon, 22 Aug 2016) | 4 lines

irb.1: useless option [ci skip]

* man/irb.1: remove useless -width option.
  [ruby-dev:49767] [Bug #12692]
------------------------------------------------------------------------
r55983 | nobu | 2016-08-22 13:21:54 +0900 (Mon, 22 Aug 2016) | 3 lines

array.c: elements in self

* array.c (rb_ary_splice): consider elements in middle of self.
------------------------------------------------------------------------
r55982 | svn | 2016-08-22 09:03:00 +0900 (Mon, 22 Aug 2016) | 1 line

* 2016-08-22
------------------------------------------------------------------------
r55981 | nobu | 2016-08-22 09:02:59 +0900 (Mon, 22 Aug 2016) | 4 lines

iseq.c: undef allocator

* iseq.c (Init_ISeq): undefine allocator of InstructionSequence,
  to get rid of segfaults at method call on uninitialized object.
------------------------------------------------------------------------
r55980 | kazu | 2016-08-21 20:03:15 +0900 (Sun, 21 Aug 2016) | 2 lines

fix a typo [ci skip]

------------------------------------------------------------------------
r55978 | tadd | 2016-08-21 14:14:07 +0900 (Sun, 21 Aug 2016) | 2 lines

* ChangeLog: fix typo.

------------------------------------------------------------------------
r55977 | nobu | 2016-08-21 13:03:22 +0900 (Sun, 21 Aug 2016) | 6 lines

array.c: no temporary array

* array.c (rb_ary_splice): use pointer and length pair instead of
  an array object to replace.

* array.c (rb_ary_insert): get rid of creating temporary array.
------------------------------------------------------------------------
r55976 | svn | 2016-08-21 05:51:20 +0900 (Sun, 21 Aug 2016) | 1 line

* 2016-08-21
------------------------------------------------------------------------
r55975 | mrkn | 2016-08-21 05:51:19 +0900 (Sun, 21 Aug 2016) | 1 line

enum.c (enum_sort): prevent wasteful array duplicaion
------------------------------------------------------------------------
r55974 | nobu | 2016-08-20 14:58:58 +0900 (Sat, 20 Aug 2016) | 1 line

rubystub.c: sys/param.h for MAXPATHLEN
------------------------------------------------------------------------
r55973 | nobu | 2016-08-20 11:20:34 +0900 (Sat, 20 Aug 2016) | 3 lines

rubystub

* rubystub.c: generalize win32/stub.c.
------------------------------------------------------------------------
r55972 | svn | 2016-08-20 11:19:20 +0900 (Sat, 20 Aug 2016) | 1 line

* 2016-08-20
------------------------------------------------------------------------
r55971 | nobu | 2016-08-20 11:19:19 +0900 (Sat, 20 Aug 2016) | 4 lines

win32.c: no newline for rb_fatal

* win32/win32.c (StartSockets): rb_fatal does not need a newline
  at the end.
------------------------------------------------------------------------
r55970 | nobu | 2016-08-19 19:44:53 +0900 (Fri, 19 Aug 2016) | 3 lines

ruby_cmdline_options_t

* ruby.c (ruby_cmdline_options_t): typedef.
------------------------------------------------------------------------
r55969 | nobu | 2016-08-19 17:32:16 +0900 (Fri, 19 Aug 2016) | 4 lines

Revert r55968 "scriptbin on cygwin"

win32/stub.c only works with malloced argv as win32/win32.c, to
realloc it.
------------------------------------------------------------------------
r55968 | nobu | 2016-08-19 17:01:20 +0900 (Fri, 19 Aug 2016) | 3 lines

scriptbin on cygwin

* cygwin/GNUmakefile.in (scriptbin): enable on cygwin.
------------------------------------------------------------------------
r55967 | nobu | 2016-08-19 17:01:19 +0900 (Fri, 19 Aug 2016) | 3 lines

strip stub program

* cygwin/GNUmakefile.in (STUBPROGRAM): strip.
------------------------------------------------------------------------
r55966 | nobu | 2016-08-19 13:38:20 +0900 (Fri, 19 Aug 2016) | 5 lines

extmk.rb: makefiles for gems

* ext/extmk.rb (extmake): now yield makefile content at creation.
  substitute makefiles for gems in the block, not to rewrite when
  nothing changed.
------------------------------------------------------------------------
r55965 | nobu | 2016-08-19 11:39:09 +0900 (Fri, 19 Aug 2016) | 4 lines

parse.y: lparen_arg statement

* parse.y (primary): allow parenthesised statement as a method
  argument.  [Feature #12686]
------------------------------------------------------------------------
r55964 | nobu | 2016-08-19 09:12:47 +0900 (Fri, 19 Aug 2016) | 4 lines

vm.c: check TOPLEVEL_BINDING

* vm.c (vm_set_main_stack): TOPLEVEL_BINDING must be built.
  http://www.viva64.com/en/b/0414/#ID0EQ1CI  [ruby-core:76973]
------------------------------------------------------------------------
r55963 | svn | 2016-08-19 00:59:13 +0900 (Fri, 19 Aug 2016) | 1 line

* 2016-08-19
------------------------------------------------------------------------
r55962 | yui-knk | 2016-08-19 00:59:12 +0900 (Fri, 19 Aug 2016) | 2 lines

* proc.c (mnew_missing): Remove an unused argument.
  After r51126 rid is not used.
------------------------------------------------------------------------
r55955 | nobu | 2016-08-18 12:19:24 +0900 (Thu, 18 Aug 2016) | 4 lines

test_rand.rb: refine probability test

* test/ruby/test_rand.rb (test_new_seed): refine probability of
  failure from 1/256 to 1/256**8.
------------------------------------------------------------------------
r55954 | hsbt | 2016-08-18 09:26:53 +0900 (Thu, 18 Aug 2016) | 1 line

* gems/bundled_gems: bump to test-unit-3.2.1
------------------------------------------------------------------------
r55953 | svn | 2016-08-18 02:36:29 +0900 (Thu, 18 Aug 2016) | 1 line

* 2016-08-18
------------------------------------------------------------------------
r55952 | nobu | 2016-08-18 02:36:28 +0900 (Thu, 18 Aug 2016) | 4 lines

skip failed gems

* tool/rbinstall.rb: skip gems which failed to build extensions.
  [ruby-dev:49764] [Bug #12683]
------------------------------------------------------------------------
r55951 | nobu | 2016-08-17 23:35:16 +0900 (Wed, 17 Aug 2016) | 3 lines

bump up tk

* gems/bundled_gems (tk): bump up to 0.1.1.
------------------------------------------------------------------------
r55950 | nobu | 2016-08-17 23:14:44 +0900 (Wed, 17 Aug 2016) | 5 lines

gem extensions

* ext/extmk.rb: build gem extensions into separate directories
* tool/rbinstall.rb: install pre-built gem extension files gem
  extension directories.  [ruby-core:76931] [Bug #12681]
------------------------------------------------------------------------
r55949 | nobu | 2016-08-17 16:20:23 +0900 (Wed, 17 Aug 2016) | 3 lines

mkmf.rb: use TARGET_SO

* lib/mkmf.rb (create_makefile): use TARGET_SO consistently.
------------------------------------------------------------------------
r55948 | svn | 2016-08-17 10:13:01 +0900 (Wed, 17 Aug 2016) | 1 line

* 2016-08-17
------------------------------------------------------------------------
r55947 | nobu | 2016-08-17 10:13:00 +0900 (Wed, 17 Aug 2016) | 4 lines

make-snapshot: remove $GZIP

* tool/make-snapshot: remove deprecated environment variable GZIP
  to its command line arguments.
------------------------------------------------------------------------
r55946 | nobu | 2016-08-16 22:02:33 +0900 (Tue, 16 Aug 2016) | 4 lines

make-snapshot: UNICODE_VERSION

* tool/make-snapshot (package): propagate UNICODE_VERSION to make
  snapshot from the parent make.
------------------------------------------------------------------------
r55945 | nobu | 2016-08-16 22:01:30 +0900 (Tue, 16 Aug 2016) | 6 lines

open Unicode data in binary mode

* tool/enc-unicode.rb (data_foreach): open in binary mode because
  Unicode 9.0.0 contains non-ascii characters.

* template/unicode_norm_gen.tmpl: ditto.
------------------------------------------------------------------------
r55944 | nobu | 2016-08-16 21:36:40 +0900 (Tue, 16 Aug 2016) | 4 lines

common.mk: make unicode header dir

* common.mk (UNICODE_HDR_DIR): make unicode header directory.
  [ruby-core:76879] [Bug #12677]
------------------------------------------------------------------------
r55942 | nobu | 2016-08-16 21:04:34 +0900 (Tue, 16 Aug 2016) | 4 lines

common.mk: separate unicode headers

* common.mk (UNICODE_HDR_DIR): separate unicode header files from
  unicode data files.  [ruby-core:76879] [Bug #12677]
------------------------------------------------------------------------
r55933 | nobu | 2016-08-16 17:53:49 +0900 (Tue, 16 Aug 2016) | 3 lines

common.mk: UNICODE_HDR_DIR

* common.mk (UNICODE_HDR_DIR): directory for unicode headers.
------------------------------------------------------------------------
r55932 | nobu | 2016-08-16 17:41:59 +0900 (Tue, 16 Aug 2016) | 3 lines

common.mk: MAKE_ENC

* common.mk (MAKE_ENC): arguments for enc.mk
------------------------------------------------------------------------
r55915 | hsbt | 2016-08-16 11:18:51 +0900 (Tue, 16 Aug 2016) | 2 lines

* lib/net/http/header.rb: Fix typo. [ci skip][fix GH-1407]
* transcode.c: ditto.
------------------------------------------------------------------------
r55914 | svn | 2016-08-16 11:02:34 +0900 (Tue, 16 Aug 2016) | 1 line

* 2016-08-16
------------------------------------------------------------------------
r55913 | nobu | 2016-08-16 11:02:33 +0900 (Tue, 16 Aug 2016) | 4 lines

make-snapshot: save unicode headers

* tool/make-snapshot (package): save generated header files from
  unicode data.  [ruby-core:76879] [Bug #12677]
------------------------------------------------------------------------
r55901 | nobu | 2016-08-15 20:31:36 +0900 (Mon, 15 Aug 2016) | 4 lines

node.c: nd_alen only in the head

* node.c (dump_array): show nd_alen field in NODE_ARRAY only in
  the first node.  it is nd_end in the rest nodes.
------------------------------------------------------------------------
r55900 | kazu | 2016-08-15 16:42:56 +0900 (Mon, 15 Aug 2016) | 1 line

* appveyor.yml: Update libressl version to 2.3.7.
------------------------------------------------------------------------
r55899 | nobu | 2016-08-15 11:46:53 +0900 (Mon, 15 Aug 2016) | 4 lines

extmk.rb: no static-ext in gems

* ext/extmk.rb (extmake): extension libraries in gems cannot link
  statically.
------------------------------------------------------------------------
r55898 | svn | 2016-08-15 10:59:59 +0900 (Mon, 15 Aug 2016) | 1 line

* 2016-08-15
------------------------------------------------------------------------
r55897 | nobu | 2016-08-15 10:59:58 +0900 (Mon, 15 Aug 2016) | 4 lines

numeric.c: round_to_nearest

* numeric.c (round_to_nearest): extract and reduce for platforms
  where round is not available.
------------------------------------------------------------------------
r55896 | nobu | 2016-08-14 22:35:42 +0900 (Sun, 14 Aug 2016) | 4 lines

id_table.c: extend, don't shrink

* id_table.c (hash_table_extend): should not shrink the table than
  the previous capacity.  [ruby-core:76534] [Bug #12614]
------------------------------------------------------------------------
r55895 | nobu | 2016-08-14 18:51:25 +0900 (Sun, 14 Aug 2016) | 4 lines

gems: tk 0.1.0

* gems/bundled_gems: add gemified tk 0.1.0.
  this needs `extract-gems` to build.
------------------------------------------------------------------------
r55894 | kou | 2016-08-14 14:55:04 +0900 (Sun, 14 Aug 2016) | 2 lines

* object.c (InitVM_Object): Update referenced document path.

------------------------------------------------------------------------
r55893 | svn | 2016-08-14 09:34:57 +0900 (Sun, 14 Aug 2016) | 1 line

* 2016-08-14
------------------------------------------------------------------------
r55892 | hsbt | 2016-08-14 09:34:56 +0900 (Sun, 14 Aug 2016) | 1 line

ChangeLog: Fix wrong date
------------------------------------------------------------------------
r55891 | nobu | 2016-08-13 23:08:03 +0900 (Sat, 13 Aug 2016) | 4 lines

numeric.c: infinite recursion

* numeric.c (num_funcall0, num_funcall1): get rid of infinite
  recursion in fallback methods of Numeric.
------------------------------------------------------------------------
r55890 | nobu | 2016-08-13 23:04:21 +0900 (Sat, 13 Aug 2016) | 5 lines

test_comparable.rb: fix clamp test

* test/ruby/test_comparable.rb (TestComparable#test_clamp): fix
  test.  the result which is not clamped should be the receiver.
  [Feature #10594]
------------------------------------------------------------------------
r55889 | nobu | 2016-08-13 22:01:13 +0900 (Sat, 13 Aug 2016) | 4 lines

win32ole.c: fix long conversion

* ext/win32ole/win32ole.c (ole_val2variant): reuse the converted
  result for V_I8.
------------------------------------------------------------------------
r55888 | nobu | 2016-08-13 11:10:11 +0900 (Sat, 13 Aug 2016) | 4 lines

parse.y: chained assignments

* parse.y (command_asgn, arg): fix syntax errors with chained
  assignment with op assign.  [Bug #12669]
------------------------------------------------------------------------
r55887 | nobu | 2016-08-13 10:52:22 +0900 (Sat, 13 Aug 2016) | 4 lines

parse.y: rescue modifier in rhs of op asgn

* parse.y (stmt, arg): rescue modifier in command op assignment
  should be limited to rhs only.  [ruby-core:75621] [Bug #12402]
------------------------------------------------------------------------
r55886 | nobu | 2016-08-13 10:49:16 +0900 (Sat, 13 Aug 2016) | 4 lines

win32ole.c: fix long conversion

* ext/win32ole/win32ole.c (ole_val2variant): get rid of repeated
  conversions and fix a compile error due to V_I8 in old VC.
------------------------------------------------------------------------
r55885 | nobu | 2016-08-13 10:26:24 +0900 (Sat, 13 Aug 2016) | 4 lines

getnameinfo.c: rubysocket.h for inet_ntop

* ext/socket/getnameinfo.c: needs rubysocket.h for fallback
  definition of inet_ntop.
------------------------------------------------------------------------
r55884 | nobu | 2016-08-13 10:21:29 +0900 (Sat, 13 Aug 2016) | 4 lines

vm_insnhelper.c: fix ALWAYS_INLINE usage

* vm_insnhelper.c (vm_getivar): ALWAYS_INLINE macro needs an
  argument.
------------------------------------------------------------------------
r55883 | svn | 2016-08-13 07:54:24 +0900 (Sat, 13 Aug 2016) | 1 line

* 2016-08-13
------------------------------------------------------------------------
r55882 | suke | 2016-08-13 07:54:23 +0900 (Sat, 13 Aug 2016) | 4 lines

* ext/win32ole/win32ole.c (ole_val2variant): fix integer conversion in
  cygwin64.


------------------------------------------------------------------------
r55881 | naruse | 2016-08-12 21:08:13 +0900 (Fri, 12 Aug 2016) | 5 lines

* lib/webrick/config.rb (WEBrick::Config::General):
  disable reverse lookup by default. [ruby-core:45514] [Feature #6559]
  Socket.do_not_reverse_lookup is true by default but WEBrick
  overwrote it.
  patch by Eric Hodel [ruby-core:45527]
------------------------------------------------------------------------
r55880 | kazu | 2016-08-12 16:48:09 +0900 (Fri, 12 Aug 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55879 | nobu | 2016-08-12 12:55:16 +0900 (Fri, 12 Aug 2016) | 5 lines

ChangeLog: fix name in r55863 [ci skip]

* ChangeLog: fix the original patch author's name to the name
  written in the patch, not "author name" in git.
  [Feature #10594]
------------------------------------------------------------------------
r55878 | nobu | 2016-08-12 12:50:33 +0900 (Fri, 12 Aug 2016) | 5 lines

error.c: fix newline in syntax error

* error.c (rb_syntax_error_append): fix newline in syntax error
  message to the beginning, not after file name and line number.
  [Feature #11951]
------------------------------------------------------------------------
r55877 | nobu | 2016-08-12 12:29:50 +0900 (Fri, 12 Aug 2016) | 4 lines

parse.y: const_decl_gen

* parse.y (const_decl_gen): extract as a function as well as
  ripper.
------------------------------------------------------------------------
r55876 | nobu | 2016-08-12 12:29:49 +0900 (Fri, 12 Aug 2016) | 3 lines

parse.y: assign_error

* parse.y (assign_error_gen): [ripper] rename without backref.
------------------------------------------------------------------------
r55865 | svn | 2016-08-12 00:00:11 +0900 (Fri, 12 Aug 2016) | 1 line

* 2016-08-12
------------------------------------------------------------------------
r55864 | kazu | 2016-08-12 00:00:09 +0900 (Fri, 12 Aug 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55863 | nobu | 2016-08-11 16:24:25 +0900 (Thu, 11 Aug 2016) | 3 lines

Comparable#clamp

* compar.c (cmp_clamp): Introduce Comparable#clamp.  [Feature #10594]
------------------------------------------------------------------------
r55862 | nobu | 2016-08-11 16:20:36 +0900 (Thu, 11 Aug 2016) | 5 lines

compar.c: utility functions

* compar.c (rb_cmp): call comparison method by predefiend ID.

* compar.c (cmpint): returns compared result.
------------------------------------------------------------------------
r55861 | nobu | 2016-08-11 11:32:19 +0900 (Thu, 11 Aug 2016) | 4 lines

parse.y: node_assign

* parse.y (stmt, command_asgn): unifiy parser and ripper code by
  node_assign macro.
------------------------------------------------------------------------
r55860 | nobu | 2016-08-11 11:20:34 +0900 (Thu, 11 Aug 2016) | 3 lines

parse.y: backref_assign_error

* parse.y (backref_assign_error): unify parser and ripper code.
------------------------------------------------------------------------
r55859 | nobu | 2016-08-11 11:12:57 +0900 (Thu, 11 Aug 2016) | 3 lines

parse.y: const declaration macro

* parse.y (const_decl): unify parser and ripper code.
------------------------------------------------------------------------
r55858 | nobu | 2016-08-11 10:24:24 +0900 (Thu, 11 Aug 2016) | 4 lines

parse.y: const field macros

* parse.y (const_path_field, top_const_field): unify parser and
  ripper code.
------------------------------------------------------------------------
r55857 | svn | 2016-08-11 03:17:42 +0900 (Thu, 11 Aug 2016) | 1 line

* 2016-08-11
------------------------------------------------------------------------
r55856 | marcandre | 2016-08-11 03:17:41 +0900 (Thu, 11 Aug 2016) | 4 lines

* lib/prime.rb: Optimize prime?
  Adapted from patch by Jabari Zakiya [#12665]

* test/test_prime.rb: Improve test
------------------------------------------------------------------------
r55853 | nobu | 2016-08-10 22:37:03 +0900 (Wed, 10 Aug 2016) | 4 lines

parse.y: rhs with rescue modifier

* parse.y (command_rhs, arg_rhs): introduce new rules to reduce
  repeated rules with rescue modifier.
------------------------------------------------------------------------
r55852 | nobu | 2016-08-10 20:11:36 +0900 (Wed, 10 Aug 2016) | 7 lines

win32/resolv: fix for cygwin

* ext/win32/resolv/resolv.c: needs windows.h for iphlpapi.h on
  cygwin.  [ruby-core:76791] [Bug #12663]

* ext/win32/resolv/resolv.c (w32error_make_error): use
  Win32::Resolv::Error, an alias of Win32::Registry::Error.
------------------------------------------------------------------------
r55851 | nobu | 2016-08-10 17:26:46 +0900 (Wed, 10 Aug 2016) | 4 lines

parse.y: rescue modifier in rhs

* parse.y (command_asgn): rescue modifier in command assignment
  should be limited to rhs only.  [ruby-core:75621] [Bug #12402]
------------------------------------------------------------------------
r55850 | svn | 2016-08-10 15:35:06 +0900 (Wed, 10 Aug 2016) | 1 line

* 2016-08-10
------------------------------------------------------------------------
r55849 | nobu | 2016-08-10 15:35:05 +0900 (Wed, 10 Aug 2016) | 6 lines

win32/resolv: fix for cygwin

* ext/win32/resolv/resolv.c: needs windows.h for iphlpapi.h on
  cygwin.  [ruby-core:76791] [Bug #12663]
* ext/win32/resolv/resolv.c (w32error_make_error): use
  Win32::Resolv::Error, an alias of Win32::Registry::Error.
------------------------------------------------------------------------
r55848 | kazu | 2016-08-09 21:00:35 +0900 (Tue, 09 Aug 2016) | 2 lines

Remove empty directories

------------------------------------------------------------------------
r55847 | mrkn | 2016-08-09 17:54:15 +0900 (Tue, 09 Aug 2016) | 6 lines

hash.c: implement Hash#map_v and Hash#map_v!

* hash.c (rb_hash_map_v, rb_hash_map_v_bang): impelement Hash#map_v and
  Hash#map_v! [Feature #12512] [ruby-core:76095]

* test/ruby/test_hash.rb: add tests for above change.
------------------------------------------------------------------------
r55846 | naruse | 2016-08-09 16:52:23 +0900 (Tue, 09 Aug 2016) | 2 lines

* vm_insnhelper.c (vm_getivar): use always_inline because
  gcc7 doesn't inline this without always_inline.
------------------------------------------------------------------------
r55845 | nobu | 2016-08-09 16:36:14 +0900 (Tue, 09 Aug 2016) | 4 lines

test_objectspace.rb: errors in a finalizer

* test/ruby/test_objectspace.rb (test_finalizer_with_super):
  adjust number of arguments to get rid of errors in a finalizer.
------------------------------------------------------------------------
r55844 | naruse | 2016-08-09 15:44:45 +0900 (Tue, 09 Aug 2016) | 2 lines

* ext/tk: Tk is removed from stdlib.  [Feature #8539]
  https://github.com/ruby/tk is the new upstream.
------------------------------------------------------------------------
r55843 | nobu | 2016-08-09 14:05:12 +0900 (Tue, 09 Aug 2016) | 4 lines

tcltklib.c: repeated checks and conversions [ci skip]

* ext/tk/tcltklib.c (ip_init): get rid of repeated checks and
  conversions in StringValueCStr.
------------------------------------------------------------------------
r55842 | nobu | 2016-08-09 14:05:11 +0900 (Tue, 09 Aug 2016) | 8 lines

tcltklib.c: use StringValueCStr [ci skip]

* ext/tk/tcltklib.c (set_max_block_time, tcl_protect_core,
  ip_init, ip_create_slave_core, get_obj_from_str,
  ip_cancel_eval_core, lib_set_system_encoding,
  alloc_invoke_arguments, lib_merge_tklist): use StringValueCStr
  instead of StringValuePtr for values to be passed to Tcl
  interperter.
------------------------------------------------------------------------
r55841 | nobu | 2016-08-09 14:05:10 +0900 (Tue, 09 Aug 2016) | 4 lines

tcltklib.c: use PRIsVALUE [ci skip]

* ext/tk/tcltklib.c (set_max_block_time): use PRIsVALUE to get rid
  of dangling pointer.
------------------------------------------------------------------------
r55840 | nobu | 2016-08-09 14:05:09 +0900 (Tue, 09 Aug 2016) | 5 lines

tcltklib.c: missing break [ci skip]

* ext/tk/tcltklib.c (set_max_block_time): fix missing break.
  TclTkLib.set_max_block_time(1) works but
  TclTkLib.set_max_block_time(1.0) didn't.
------------------------------------------------------------------------
r55839 | nobu | 2016-08-09 10:42:51 +0900 (Tue, 09 Aug 2016) | 4 lines

tcltk.rb: suppress a warning [ci skip]

* ext/tk/lib/tcltk.rb (TclTkWidget#initialize): suppress an
  "assigned but unused variable" warning.
------------------------------------------------------------------------
r55838 | nobu | 2016-08-09 10:42:49 +0900 (Tue, 09 Aug 2016) | 5 lines

tcltklib/sample2.rb: use attr_accessor [ci skip]

* ext/tk/sample/tcltklib/sample2.rb (Othello::BoardView::Square):
  use attr_accessor instead of attr with optional boolean
  argument.
------------------------------------------------------------------------
r55837 | nobu | 2016-08-09 10:42:48 +0900 (Tue, 09 Aug 2016) | 7 lines

use true and false [ci skip]

* ext/tk/lib/tk/texttag.rb, ext/tk/sample/tcltklib/sample2.rb,
  ext/tk/sample/tkline.rb, ext/tk/sample/tktimer.rb: use true and
  false instead of TRUE and FALSE.

* ext/win32ole/sample/ienavi.rb (stop_msg_loop): ditto.
------------------------------------------------------------------------
r55836 | svn | 2016-08-09 00:16:31 +0900 (Tue, 09 Aug 2016) | 1 line

* 2016-08-09
------------------------------------------------------------------------
r55835 | kazu | 2016-08-09 00:16:30 +0900 (Tue, 09 Aug 2016) | 1 line

* doc/maintainers.rdoc: Remove moved file section.
------------------------------------------------------------------------
r55834 | suke | 2016-08-08 21:04:45 +0900 (Mon, 08 Aug 2016) | 6 lines

* ext/win32ole/sample/excel1.rb, ext/win32ole/sample/excel2.rb,
  ext/win32ole/sample/excel3.rb, ext/win32ole/sample/ie.rb,
  ext/win32ole/sample/ienavi.rb, ext/win32ole/sample/ienavi2.rb: use
  true instead of deprecated TRUE. [ci skip]


------------------------------------------------------------------------
r55833 | nobu | 2016-08-08 14:11:51 +0900 (Mon, 08 Aug 2016) | 4 lines

internal.h: fix r55831

* internal.h (RBASIC_CLEAR_CLASS): fix compile error and size to
  fill.
------------------------------------------------------------------------
r55832 | nobu | 2016-08-08 14:04:36 +0900 (Mon, 08 Aug 2016) | 5 lines

test/unit.rb: no verbose in worker processes

* test/lib/test/unit.rb (Test::Unit::Parallel::Worker.launch):
  disable verbose flag in worker processes, get rid of unexpected
  output within marshaled results.
------------------------------------------------------------------------
r55831 | shyouhei | 2016-08-08 13:19:58 +0900 (Mon, 08 Aug 2016) | 5 lines

	* internal.h (RBASIC_CLEAR_CLASS): Reroute ANSI C's strict
	  aliasing rule.
  	  [ruby-core:74427][Bug #12191][ruby-core:76747][Bug #12657]


------------------------------------------------------------------------
r55830 | svn | 2016-08-08 01:33:05 +0900 (Mon, 08 Aug 2016) | 1 line

* 2016-08-08
------------------------------------------------------------------------
r55829 | kazu | 2016-08-08 01:33:04 +0900 (Mon, 08 Aug 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55828 | nobu | 2016-08-07 19:34:11 +0900 (Sun, 07 Aug 2016) | 3 lines

suppress warnings

* basictest/runner.rb, bootstraptest/runner.rb: disable warnings.
------------------------------------------------------------------------
r55827 | nobu | 2016-08-07 19:34:10 +0900 (Sun, 07 Aug 2016) | 3 lines

vcs.rb: suppress warnings

* tool/vcs.rb (VCS#modified): get rid of set but unused variables.
------------------------------------------------------------------------
r55826 | nobu | 2016-08-07 19:05:57 +0900 (Sun, 07 Aug 2016) | 3 lines

extmk.rb: suppress a warning

* ext/extmk.rb: get rid of shadowing outer local variable.
------------------------------------------------------------------------
r55825 | nobu | 2016-08-07 19:04:41 +0900 (Sun, 07 Aug 2016) | 3 lines

extmk.rb: remove sysquote

* ext/extmk.rb (sysquote): removed.  unnecessary since r52161.
------------------------------------------------------------------------
r55824 | nobu | 2016-08-07 18:08:29 +0900 (Sun, 07 Aug 2016) | 4 lines

deprecate TRUE,FALSE,NIL

* object.c (InitVM_Object): deprecate toplevel constants TRUE,
  FALSE, and NIL.  [Feature #12574]
------------------------------------------------------------------------
r55823 | svn | 2016-08-07 06:50:11 +0900 (Sun, 07 Aug 2016) | 1 line

* 2016-08-07
------------------------------------------------------------------------
r55822 | normal | 2016-08-07 06:50:10 +0900 (Sun, 07 Aug 2016) | 16 lines

openssl: avoid undefined behavior on empty SSL_write

SSL_write(3ssl) manpage has this in the WARNINGS section:

       When calling SSL_write() with num=0 bytes to be sent the
       behaviour is undefined.

And indeed, the new test case demonstrates failures when
empty strings are used.  So, match the behavior of IO#write,
IO#write_nonblock, and IO#syswrite by returning zero, as the
OpenSSL::SSL::SSLSocket API already closely mimics the IO one.

* ext/openssl/ossl_ssl.c (ossl_ssl_write_internal):
  avoid undefined behavior
* test/openssl/test_pair.rb (test_write_zero): new test
  [ruby-core:76751] [Bug #12660]
------------------------------------------------------------------------
r55821 | nobu | 2016-08-06 09:35:33 +0900 (Sat, 06 Aug 2016) | 4 lines

id_table.h: dummy sentinel

* id_table.h (rb_id_table_iterator_result): add dummy sentinel
  member because C standard prohibits a trailing comma.
------------------------------------------------------------------------
r55820 | svn | 2016-08-06 00:39:47 +0900 (Sat, 06 Aug 2016) | 1 line

* 2016-08-06
------------------------------------------------------------------------
r55819 | nobu | 2016-08-06 00:39:46 +0900 (Sat, 06 Aug 2016) | 6 lines

hash.c: env_name_new

* hash.c (env_enc_str_new): make string for an environment
  variable name or value.
* hash.c (env_name_new): make environment value string with the
  encoding for its name.
------------------------------------------------------------------------
r55818 | usa | 2016-08-05 23:19:26 +0900 (Fri, 05 Aug 2016) | 3 lines

* hasn.c (env_str_new): taint the string.  get rid of a test failure
  introduced at r55811.

------------------------------------------------------------------------
r55817 | nobu | 2016-08-05 17:31:23 +0900 (Fri, 05 Aug 2016) | 5 lines

win32.c: initialize with an impossible value

* win32/win32.c (getifaddrs, rb_w32_getppid): initialize the API
  pointers with an impossible value not to try everytime on old
  platforms.
------------------------------------------------------------------------
r55816 | nobu | 2016-08-05 17:28:03 +0900 (Fri, 05 Aug 2016) | 4 lines

win32.c: static API pointers

* win32/win32.c (rb_w32_inet_ntop, rb_w32_inet_): make the
  API pointers static not to get the address everytime.
------------------------------------------------------------------------
r55815 | nobu | 2016-08-05 17:22:35 +0900 (Fri, 05 Aug 2016) | 4 lines

win32.c: call get_final_path pointer

* win32/win32.c (get_final_path): initialize this pointer without
  further comparisons.
------------------------------------------------------------------------
r55814 | svn | 2016-08-05 17:04:05 +0900 (Fri, 05 Aug 2016) | 1 line

* 2016-08-05
------------------------------------------------------------------------
r55813 | nobu | 2016-08-05 17:04:04 +0900 (Fri, 05 Aug 2016) | 4 lines

hash.c: call w32_getenv pointer

* hash.c (w32_getenv): call rb_w32_getenv and rb_w32_ugetenv via
  this pointer without further comparisons.
------------------------------------------------------------------------
r55812 | svn | 2016-08-04 11:54:33 +0900 (Thu, 04 Aug 2016) | 1 line

* 2016-08-04
------------------------------------------------------------------------
r55811 | nobu | 2016-08-04 11:54:32 +0900 (Thu, 04 Aug 2016) | 4 lines

hash.c: set encoding

* hash.c (env_assoc): the encoding of the value should be the
  locale, as well as other methods, [], fetch, values, etc.
------------------------------------------------------------------------
r55810 | nobu | 2016-08-03 21:31:25 +0900 (Wed, 03 Aug 2016) | 4 lines

parse.y: reg_fragment_enc_error

* parse.y (reg_fragment_enc_error): compile_error is different
  between parser and ripper.  [ruby-core:76397] [Bug #12651]
------------------------------------------------------------------------
r55809 | nobu | 2016-08-03 17:20:13 +0900 (Wed, 03 Aug 2016) | 3 lines

NEWS: Kernel#clone [ci skip]

* NEWS (Kernel#clone): mention freeze flag.  [Feature #12300]
------------------------------------------------------------------------
r55808 | nobu | 2016-08-03 17:15:08 +0900 (Wed, 03 Aug 2016) | 4 lines

object.c: restrict freeze option

* object.c (rb_obj_clone2): restrict freeze option to true other
  than false which only has the effect.  [Feature #12300]
------------------------------------------------------------------------
r55807 | nobu | 2016-08-03 15:03:50 +0900 (Wed, 03 Aug 2016) | 4 lines

object.c: suppress warning

* object.c (rb_obj_clone2): remove set but not used variable to
  suppress unused-but-set-variable warning.
------------------------------------------------------------------------
r55806 | nobu | 2016-08-03 11:30:37 +0900 (Wed, 03 Aug 2016) | 4 lines

vm_insnhelper.c: extra semicolon

* vm_insnhelper.c (CHECK): remove extra semicolon and fold too
  long line.
------------------------------------------------------------------------
r55805 | svn | 2016-08-03 10:50:52 +0900 (Wed, 03 Aug 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55804 | ko1 | 2016-08-03 10:50:50 +0900 (Wed, 03 Aug 2016) | 10 lines

* vm_core.h: introduce VM_FRAME_RUBYFRAME_P()
  and VM_FRAME_CFRAME_P().
  Most of case, RUBY_VM_NORMAL_ISEQ_P() is no
  longer needed.

* vm_core.h: introduce rb_obj_is_iseq().

* cont.c, vm.c: VM_FRAME_MAGIC_DUMMY with
  VM_FRAME_FLAG_CFRAME.

------------------------------------------------------------------------
r55803 | ko1 | 2016-08-03 09:28:12 +0900 (Wed, 03 Aug 2016) | 5 lines

* vm_core.h: rename macros and make them inline functions.

  * rename VM_FRAME_TYPE_FINISH_P() to VM_FRAME_FINISHED_P().
  * rename VM_FRAME_TYPE_BMETHOD_P() to VM_FRAME_BMETHOD_P().

------------------------------------------------------------------------
r55802 | svn | 2016-08-03 09:16:35 +0900 (Wed, 03 Aug 2016) | 1 line

* 2016-08-03
------------------------------------------------------------------------
r55801 | ko1 | 2016-08-03 09:16:34 +0900 (Wed, 03 Aug 2016) | 3 lines

* vm_core.h: introduce VM_FRAME_FLAG_CFRAME to represent cfp->iseq
  type.

------------------------------------------------------------------------
r55800 | kazu | 2016-08-02 22:18:47 +0900 (Tue, 02 Aug 2016) | 2 lines

Remove empty directories

------------------------------------------------------------------------
r55799 | nobu | 2016-08-02 21:42:42 +0900 (Tue, 02 Aug 2016) | 4 lines

math.c: faster tanh

* math.c (tanh): make faster by the extract form if three
  hyperbolic functions are unavailable.  [Feature #12647]
------------------------------------------------------------------------
r55798 | nobu | 2016-08-02 21:40:51 +0900 (Tue, 02 Aug 2016) | 3 lines

math.c: tanh overflow

* math.c (tanh): check overflows, and return +-1.0.
------------------------------------------------------------------------
r55797 | nobu | 2016-08-02 12:37:02 +0900 (Tue, 02 Aug 2016) | 4 lines

socket/option.c: inet_ntop

* ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
  the fallback definition.  [ruby-core:76646] [Bug #12645]
------------------------------------------------------------------------
r55796 | nobu | 2016-08-02 11:18:14 +0900 (Tue, 02 Aug 2016) | 4 lines

tcltklib.c: remove RUBY_VERSION

* ext/tk/tcltklib.c (tcltklib_compile_info): remove RUBY_VERSION,
  use RUBY_API_VERSION instead.
------------------------------------------------------------------------
r55795 | nobu | 2016-08-02 10:59:13 +0900 (Tue, 02 Aug 2016) | 4 lines

tcltklib.c: compile info

* ext/tk/tcltklib.c (tcltklib_compile_info): build compile info
  statically.
------------------------------------------------------------------------
r55794 | nobu | 2016-08-02 10:47:21 +0900 (Tue, 02 Aug 2016) | 4 lines

vm_core.h: suppress warnings

* vm_core.h (VM_ENV_FLAGS, VM_FRAME_TYPE): return unsigned to
  suppress sign-compare warnings.
------------------------------------------------------------------------
r55793 | svn | 2016-08-02 04:12:29 +0900 (Tue, 02 Aug 2016) | 1 line

* 2016-08-02
------------------------------------------------------------------------
r55792 | usa | 2016-08-02 04:12:28 +0900 (Tue, 02 Aug 2016) | 6 lines

* win32/win32.c (set_pioinfo_extra): use more reliable way to search
  the position of pioinfo of VC14, and also support debug library of it.
  patched by davispuh AT gmail.com
  [ruby-core:76644] [Bug #12644]
  this fixes also [Bug #12631]

------------------------------------------------------------------------
r55789 | nobu | 2016-08-01 21:39:54 +0900 (Mon, 01 Aug 2016) | 4 lines

extmk.rb: build gems

* ext/extmk.rb: [EXPERIMENTAL] build extension libraries in
  extracted gems.
------------------------------------------------------------------------
r55788 | shyouhei | 2016-08-01 16:23:56 +0900 (Mon, 01 Aug 2016) | 11 lines

hide struct internal [Feature #9916]

	* include/ruby/ruby.h (struct RStruct): no longer.

	* internal.h (struct RStruct): moved here.

	* struct.c (rb_struct_ptr): a compensation function for the lack
	  of RSTRUCT_PTR.  But now that we have RSTRUCT_GET/SET, that must
	  not be used anyway.  I mark this deprecated.  Dont use it.


------------------------------------------------------------------------
r55787 | svn | 2016-08-01 14:55:36 +0900 (Mon, 01 Aug 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55786 | shyouhei | 2016-08-01 14:55:35 +0900 (Mon, 01 Aug 2016) | 9 lines

Object#clone with freeze: false [Feature #12300]

	* object.c (rb_obj_clone2): Allow Object#clone to take freeze:
	  false keyword argument to not freeze the clone.
  	  [ruby-core:75017][Feature #12300]

 	* test/ruby/test_object.rb (TestObject): test for it.


------------------------------------------------------------------------
r55785 | svn | 2016-08-01 12:16:31 +0900 (Mon, 01 Aug 2016) | 1 line

* 2016-08-01
------------------------------------------------------------------------
r55784 | hsbt | 2016-08-01 12:16:30 +0900 (Mon, 01 Aug 2016) | 1 line

* ext/json/*, test/json/json_parser_test.rb: Update json-2.0.2.
------------------------------------------------------------------------
r55783 | nobu | 2016-07-31 16:24:45 +0900 (Sun, 31 Jul 2016) | 4 lines

resolv.c: fix commit miss

* ext/win32/resolv/resolv.c (Init_resolv): remove dead code.
  [Bug #12604]
------------------------------------------------------------------------
r55782 | svn | 2016-07-31 16:17:27 +0900 (Sun, 31 Jul 2016) | 1 line

* 2016-07-31
------------------------------------------------------------------------
r55781 | nobu | 2016-07-31 16:17:25 +0900 (Sun, 31 Jul 2016) | 5 lines

win32/resolv: get_dns_server_list

* ext/win32/resolv/resolv.c (get_dns_server_list): [Win32] get DNS
  servers only for connected network devices by GetNetworkParams
  API.  [Bug #12604]
------------------------------------------------------------------------
r55780 | nobu | 2016-07-30 19:32:06 +0900 (Sat, 30 Jul 2016) | 3 lines

iso_8859_2.c: dedent [ci skip]

* enc/iso_8859_2.c: remove unnecessary indent.
------------------------------------------------------------------------
r55777 | duerst | 2016-07-30 12:13:28 +0900 (Sat, 30 Jul 2016) | 3 lines

* string.c (String#downcase), NEWS: Mentioned that case mapping for all
  of ISO-8859-1~16 is now supported. [ci skip]

------------------------------------------------------------------------
r55776 | svn | 2016-07-30 12:00:10 +0900 (Sat, 30 Jul 2016) | 1 line

* 2016-07-30
------------------------------------------------------------------------
r55775 | duerst | 2016-07-30 12:00:09 +0900 (Sat, 30 Jul 2016) | 3 lines

* enc/iso_8859_2.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-2, by Yushiro Ishii.

------------------------------------------------------------------------
r55773 | nobu | 2016-07-29 20:57:14 +0900 (Fri, 29 Jul 2016) | 4 lines

rb_funcallv

* *.c: rename rb_funcall2 to rb_funcallv, except for extensions
  which are/will be/may be gems.  [Fix GH-1406]
------------------------------------------------------------------------
r55772 | ko1 | 2016-07-29 10:52:17 +0900 (Fri, 29 Jul 2016) | 2 lines

* proc.c (env_write): remove unused function.

------------------------------------------------------------------------
r55771 | ko1 | 2016-07-29 10:51:09 +0900 (Fri, 29 Jul 2016) | 4 lines

* vm_core.h (VM_LOCAL_P): should return an integer value.
  reported at
  http://d.hatena.ne.jp/nagachika/20160728/ruby_trunk_changes_55764_55770

------------------------------------------------------------------------
r55770 | ko1 | 2016-07-29 04:27:52 +0900 (Fri, 29 Jul 2016) | 4 lines

* vm_core.h (VM_ENV_LOCAL_P): return truthy (0 or not) value.

* vm.c (rb_vm_make_proc_lambda): use VM_ENV_ESCAPED_P() macro.

------------------------------------------------------------------------
r55769 | svn | 2016-07-29 04:13:27 +0900 (Fri, 29 Jul 2016) | 1 line

* 2016-07-29
------------------------------------------------------------------------
r55768 | ko1 | 2016-07-29 04:13:26 +0900 (Fri, 29 Jul 2016) | 16 lines

* vm.c, internal.h: remove RubyVM::Env class and all of env objects
  are imemo objects (imemo_env).

* NEWS: describe this change. I believe nobody touch these objects
  because there are no method defined.

* vm_core.h: remove the following definitions.
  * rb_cEnv decl.
  * GetEnvPtr() because Env is no longer T_DATA object.

* vm_core.h (rb_env_t): fix layout for imemo values.

* vm_core.h (vm_assert_env): added.

* vm_core.h (vm_env_new): added.

------------------------------------------------------------------------
r55767 | svn | 2016-07-28 20:02:32 +0900 (Thu, 28 Jul 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55766 | ko1 | 2016-07-28 20:02:30 +0900 (Thu, 28 Jul 2016) | 18 lines

* vm_core.h: revisit the structure of frame, block and env.
  [Bug #12628]

  This patch introduce many changes.

  * Introduce concept of "Block Handler (BH)" to represent
    passed blocks.

  * move rb_control_frame_t::flag to ep[0] (as a special local
    variable). This flags represents not only frame type, but also
    env flags such as escaped.

  * rename `rb_block_t` to `struct rb_block`.

  * Make Proc, Binding and RubyVM::Env objects wb-protected.

  Check [Bug #12628] for more details.

------------------------------------------------------------------------
r55765 | svn | 2016-07-28 15:05:15 +0900 (Thu, 28 Jul 2016) | 1 line

* 2016-07-28
------------------------------------------------------------------------
r55764 | nobu | 2016-07-28 15:05:14 +0900 (Thu, 28 Jul 2016) | 7 lines

ruby.h: use __extension__

* include/ruby/ruby.h (ruby_fl_type): use __extension__ to get rid
  of pedantic warning against RUBY_FL_USER19.
  https://github.com/skylightio/skylight-ruby/issues/64
* include/ruby/ruby.h (rb_mul_size_overflow): ditto for use of
  int128.
------------------------------------------------------------------------
r55763 | duerst | 2016-07-27 10:33:01 +0900 (Wed, 27 Jul 2016) | 2 lines

* enc/windows_1253.c: Remove dead code found by Coverity Scan.

------------------------------------------------------------------------
r55762 | nobu | 2016-07-27 01:22:56 +0900 (Wed, 27 Jul 2016) | 4 lines

dtrace: wait command

* test/dtrace/helper.rb (DTrace::TestCase::READ_PROBES): wait
  the spawned command not to make a waiter thread.  fix up r55736.
------------------------------------------------------------------------
r55761 | svn | 2016-07-27 01:03:52 +0900 (Wed, 27 Jul 2016) | 1 line

* 2016-07-27
------------------------------------------------------------------------
r55760 | nobu | 2016-07-27 01:03:51 +0900 (Wed, 27 Jul 2016) | 4 lines

gmake.mk: test-framework by love

* defs/gmake.mk (sudo-precheck): test the test-framework before
  installation by love.
------------------------------------------------------------------------
r55759 | nobu | 2016-07-26 22:43:38 +0900 (Tue, 26 Jul 2016) | 4 lines

gc.c: running finalizer state

* gc.c (run_finalizer): make saved running finalizer state
  volatile to ensure not to be clobbered by longjmp.
------------------------------------------------------------------------
r55758 | nobu | 2016-07-26 22:02:34 +0900 (Tue, 26 Jul 2016) | 4 lines

gmake.mk: love dependency

* defs/gmake.mk (test-almost): depends on install when making
  love.
------------------------------------------------------------------------
r55757 | nobu | 2016-07-26 22:02:33 +0900 (Tue, 26 Jul 2016) | 1 line

test: use assert_include
------------------------------------------------------------------------
r55756 | nobu | 2016-07-26 21:51:50 +0900 (Tue, 26 Jul 2016) | 4 lines

dtrace: chomp CR

* test/dtrace/helper.rb (DTrace::TestCase::READ_PROBES): chomp CR
  by pty.  fix up r55736.
------------------------------------------------------------------------
r55755 | ko1 | 2016-07-26 19:28:21 +0900 (Tue, 26 Jul 2016) | 6 lines

* vm_insnhelper.c: introduce rb_vm_pop_frame() and use it
  instead of setting rb_thread_t::cfp directly.

* vm_insnhelper.c (vm_pop_frame): return the result of
  finish frame or not.

------------------------------------------------------------------------
r55754 | ko1 | 2016-07-26 19:07:12 +0900 (Tue, 26 Jul 2016) | 2 lines

* gc.c (rb_raw_obj_info): support to show Proc obj.

------------------------------------------------------------------------
r55753 | ko1 | 2016-07-26 18:57:50 +0900 (Tue, 26 Jul 2016) | 5 lines

* gc.c (gc_mark): add `inline' explicitly.
  I expected to inline this function implicitly at the loop
  (ex: marking T_ARRAY objects) but sometimes it remains as
  normal call.

------------------------------------------------------------------------
r55752 | duerst | 2016-07-26 16:33:18 +0900 (Tue, 26 Jul 2016) | 3 lines

* enc/windows_1257.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for Windows-1257, by Sho Koike.

------------------------------------------------------------------------
r55751 | duerst | 2016-07-26 16:19:43 +0900 (Tue, 26 Jul 2016) | 4 lines

* enc/windows_1250.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for Windows-1250, by Sho Koike.
* ChangeLog: Fixed order of previous two entries.

------------------------------------------------------------------------
r55750 | duerst | 2016-07-26 15:54:18 +0900 (Tue, 26 Jul 2016) | 3 lines

* enc/windows_1251.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for Windows-1251, by Shunsuke Sato.

------------------------------------------------------------------------
r55749 | duerst | 2016-07-26 15:30:39 +0900 (Tue, 26 Jul 2016) | 3 lines

* enc/windows_1251.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for Windows-1251, by Shunsuke Sato.

------------------------------------------------------------------------
r55748 | svn | 2016-07-26 13:05:04 +0900 (Tue, 26 Jul 2016) | 1 line

* 2016-07-26
------------------------------------------------------------------------
r55747 | svn | 2016-07-26 13:05:04 +0900 (Tue, 26 Jul 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55746 | duerst | 2016-07-26 13:05:03 +0900 (Tue, 26 Jul 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb: Add explicit skip test for
  availability of Unicode data files.

------------------------------------------------------------------------
r55745 | nobu | 2016-07-25 21:33:15 +0900 (Mon, 25 Jul 2016) | 4 lines

range.c: check_step_domain

* range.c (check_step_domain): check step argument domain by <=>
  method, instead of < and >.
------------------------------------------------------------------------
r55744 | kazu | 2016-07-25 21:12:19 +0900 (Mon, 25 Jul 2016) | 1 line

fix filenames [ci skip]
------------------------------------------------------------------------
r55743 | ko1 | 2016-07-25 17:00:46 +0900 (Mon, 25 Jul 2016) | 4 lines

* debug.c (ruby_debug_printf): use rb_raw_obj_info()
  instead of rb_inspect() because it is more robust way
  to see object internal.

------------------------------------------------------------------------
r55742 | svn | 2016-07-25 06:43:06 +0900 (Mon, 25 Jul 2016) | 1 line

* 2016-07-25
------------------------------------------------------------------------
r55741 | nobu | 2016-07-25 06:43:05 +0900 (Mon, 25 Jul 2016) | 4 lines

dtrace: simplify

* test/dtrace/helper.rb (DTrace::TestCase::RUBYBIN): simply
  substitute basename.
------------------------------------------------------------------------
r55740 | duerst | 2016-07-24 16:33:15 +0900 (Sun, 24 Jul 2016) | 7 lines

* regenc.h/c, include/ruby/oniguruma.h, enc/ascii.c, big5.c, cp949.c,
  emacs_mule.c, euc_jp.c, euc_kr.c, euc_tw.c, gb18030.c, gbk.c,
  iso_8859_1|2|3|4|5|6|7|8|9|10|11|13|14|15|16.c, koi8_r.c, koi8_u.c,
  shift_jis.c, unicode.c, us_ascii.c, utf_16|32be|le.c, utf_8.c,
  windows_1250|51|52|53|54|57.c, windows_31j.c, unicode.c:
  Remove conditional compilation macro ONIG_CASE_MAPPING. [Feature #12386].

------------------------------------------------------------------------
r55739 | hsbt | 2016-07-24 12:53:47 +0900 (Sun, 24 Jul 2016) | 1 line

* doc/maintainers.rdoc: xmlrpc is bundled gem from Ruby 2.4.
------------------------------------------------------------------------
r55738 | hsbt | 2016-07-24 12:08:22 +0900 (Sun, 24 Jul 2016) | 1 line

* doc/maintainers.rdoc: Update OpenSSL maintainer.
------------------------------------------------------------------------
r55737 | svn | 2016-07-24 00:04:13 +0900 (Sun, 24 Jul 2016) | 1 line

* 2016-07-24
------------------------------------------------------------------------
r55736 | nobu | 2016-07-24 00:04:12 +0900 (Sun, 24 Jul 2016) | 4 lines

dtrace: suppress an empty line

* test/dtrace/helper.rb (DTrace::TestCase#trap_probe): suppress
  an extra empty line to the controlling tty by dtrace on Darwin.
------------------------------------------------------------------------
r55735 | nobu | 2016-07-23 23:59:25 +0900 (Sat, 23 Jul 2016) | 4 lines

dtrace: use miniruby instead of ruby-runner

* test/dtrace/helper.rb (DTrace::TestCase#trap_probe): ruby-runner
  cannot be the target of dtrace, use miniruby instead.
------------------------------------------------------------------------
r55734 | nobu | 2016-07-23 22:43:44 +0900 (Sat, 23 Jul 2016) | 3 lines

internal.h: inline Check_Type

* internal.h (Check_Type): inline check for the object type.
------------------------------------------------------------------------
r55733 | nobu | 2016-07-23 04:06:07 +0900 (Sat, 23 Jul 2016) | 4 lines

ruby.h: use prefixed name

* include/ruby/ruby.h (RTEST, NIL_P): use RUBY prefixed name in
  macros.
------------------------------------------------------------------------
r55732 | svn | 2016-07-23 01:43:13 +0900 (Sat, 23 Jul 2016) | 1 line

* 2016-07-23
------------------------------------------------------------------------
r55731 | normal | 2016-07-23 01:43:12 +0900 (Sat, 23 Jul 2016) | 6 lines

webrick: filter out HTTP_PROXY for CGIHandler

* lib/webrick/httpservlet/cgihandler.rb (do_GET): delete HTTP_PROXY
* test/webrick/test_cgi.rb (test_cgi_env): new test
* test/webrick/webrick.cgi (do_GET): new endpoint to dump env
  [ruby-core:76511] [Bug #12610]
------------------------------------------------------------------------
r55730 | hsbt | 2016-07-22 23:23:12 +0900 (Fri, 22 Jul 2016) | 1 line

* ChangeLog: Fix wrong license name.
------------------------------------------------------------------------
r55729 | nobu | 2016-07-22 19:55:22 +0900 (Fri, 22 Jul 2016) | 7 lines

Fix Issues reported by PVS-Studio static analyzer

* vm.c (vm_set_main_stack): remove unnecessary check.  toplevel
  binding must be initialized.  [Bug #12611] (N1)
* win32/win32.c (w32_symlink): fix return type.  [Bug #12611] (N3)
* string.c (rb_str_split_m): simplify the condition.
  [Bug #12611](N4)
------------------------------------------------------------------------
r55728 | duerst | 2016-07-22 17:13:38 +0900 (Fri, 22 Jul 2016) | 5 lines

* string.c (String#dump): Change escaping of non-ASCII characters in
  UTF-8 to use upper-case four-digit hexadecimal escapes without braces
  where possible [Feature #12419].
* test/ruby/test_string.rb (test_dump): Add tests for above.

------------------------------------------------------------------------
r55727 | kou | 2016-07-22 10:43:17 +0900 (Fri, 22 Jul 2016) | 2 lines

Fix a typo

------------------------------------------------------------------------
r55726 | kou | 2016-07-22 10:39:49 +0900 (Fri, 22 Jul 2016) | 5 lines

* lib/rexml/attribute.rb (REXML::Attribute#to_string): Fix wrong
  entry reference name of double quote.
  [Bug#12609][ruby-core:76509]
  Patch by Joseph Marrero. Thanks!!!

------------------------------------------------------------------------
r55725 | duerst | 2016-07-22 10:32:20 +0900 (Fri, 22 Jul 2016) | 3 lines

* template/unicode_norm_gen.tmpl: Remove
  UnicodeNormalize::UNICODE_VERSION at origin [Feature #12546].

------------------------------------------------------------------------
r55724 | hsbt | 2016-07-22 09:24:01 +0900 (Fri, 22 Jul 2016) | 2 lines

* LEGAL: Added entries for files under the USD license.
  [Bug #12598][ruby-core:76428][ci skip]
------------------------------------------------------------------------
r55723 | hsbt | 2016-07-22 09:20:10 +0900 (Fri, 22 Jul 2016) | 2 lines

* LEGAL: Added entry for `lib/rdoc/generator/template/darkfish/css/fonts.css`
  [Misc #12550][ruby-core:76255][ci skip]
------------------------------------------------------------------------
r55722 | nobu | 2016-07-22 06:28:34 +0900 (Fri, 22 Jul 2016) | 4 lines

gc.c: reduce EXEC_TAG

* gc.c (run_finalizer): push and exec tag just once, instead of
  protecting for each finalizer.
------------------------------------------------------------------------
r55721 | svn | 2016-07-22 06:12:54 +0900 (Fri, 22 Jul 2016) | 1 line

* 2016-07-22
------------------------------------------------------------------------
r55720 | nobu | 2016-07-22 06:12:53 +0900 (Fri, 22 Jul 2016) | 4 lines

gc.c: set finalizing

* gc.c (gc_start_internal, rb_gc_start): set finalizing flag
  whenever calling deferred finalizers not to recurse.
------------------------------------------------------------------------
r55719 | hsbt | 2016-07-21 22:27:02 +0900 (Thu, 21 Jul 2016) | 3 lines

* missing/strl{cat,cpy}.c: Update latest upstream files.
  [Misc #12205][ruby-core:74487]
* LEGAL: Update license for missing/strl{cat,cpy}.c.
------------------------------------------------------------------------
r55718 | hsbt | 2016-07-21 21:54:09 +0900 (Thu, 21 Jul 2016) | 2 lines

* LEGAL: added file list with CC0 license.
  [ruby-core:76254][Bug #12549]
------------------------------------------------------------------------
r55717 | usa | 2016-07-21 08:25:11 +0900 (Thu, 21 Jul 2016) | 2 lines

* enc/unicode/data/8.0.0 (svn:ignore): also be ignored dotfiles.

------------------------------------------------------------------------
r55716 | usa | 2016-07-21 07:52:14 +0900 (Thu, 21 Jul 2016) | 3 lines

* enc/unicode/data (svn:ignore): after r55701, this directory has versioned data.
* enc/unicode/data/8.0.0 (svn:ignore): ignore downloaded files.

------------------------------------------------------------------------
r55715 | nobu | 2016-07-21 06:15:19 +0900 (Thu, 21 Jul 2016) | 4 lines

enum.c: [DOC] Enumerable#uniq [ci skip]

* enum.c (enum_uniq): add rdoc, reference to Array#uniq.
  [Feature #11090]
------------------------------------------------------------------------
r55714 | nobu | 2016-07-21 06:00:30 +0900 (Thu, 21 Jul 2016) | 4 lines

NEWS: Enumerable#uniq [ci skip]

* NEWS: mention Enumerable#uniq and Enumerator::Lazy#uniq.
  [Feature #11090]
------------------------------------------------------------------------
r55713 | kazu | 2016-07-21 01:00:12 +0900 (Thu, 21 Jul 2016) | 1 line

Fix commit miss
------------------------------------------------------------------------
r55712 | svn | 2016-07-21 00:59:00 +0900 (Thu, 21 Jul 2016) | 1 line

* 2016-07-21
------------------------------------------------------------------------
r55711 | kazu | 2016-07-21 00:58:59 +0900 (Thu, 21 Jul 2016) | 1 line

fix typos
------------------------------------------------------------------------
r55710 | nobu | 2016-07-20 17:44:08 +0900 (Wed, 20 Jul 2016) | 4 lines

enumerator.c: Enumerator::Lazy#uniq

* enumerator.c (lazy_uniq): new method Enumerator::Lazy#uniq.
  [Feature #11090]
------------------------------------------------------------------------
r55709 | nobu | 2016-07-20 17:39:12 +0900 (Wed, 20 Jul 2016) | 4 lines

enum.c: Enumerable#uniq

* enum.c (enum_uniq): new method Enumerable#uniq.
  [Feature #11090]
------------------------------------------------------------------------
r55708 | svn | 2016-07-20 17:35:26 +0900 (Wed, 20 Jul 2016) | 1 line

* 2016-07-20
------------------------------------------------------------------------
r55707 | nobu | 2016-07-20 17:35:25 +0900 (Wed, 20 Jul 2016) | 6 lines

hash.c: rb_hash_add_new_element

* hash.c (rb_hash_add_new_element): add new element or do nothing
  if it is contained already.
* array.c (ary_add_hash, ary_add_hash_by): use
  rb_hash_add_new_element.
------------------------------------------------------------------------
r55706 | duerst | 2016-07-19 18:21:18 +0900 (Tue, 19 Jul 2016) | 3 lines

* lib/unicode_normalize/tables.rb: Remove
  UnicodeNormalize::UNICODE_VERSION (#12546).

------------------------------------------------------------------------
r55705 | nobu | 2016-07-19 15:39:01 +0900 (Tue, 19 Jul 2016) | 4 lines

variable.c: exclude private constants

* variable.c (rb_local_constants_i): exclude private constants
  when excluding inherited constants too.  [Bug #12345]
------------------------------------------------------------------------
r55704 | svn | 2016-07-19 01:01:53 +0900 (Tue, 19 Jul 2016) | 1 line

* 2016-07-19
------------------------------------------------------------------------
r55703 | kazu | 2016-07-19 01:01:52 +0900 (Tue, 19 Jul 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55702 | mrkn | 2016-07-17 23:53:00 +0900 (Sun, 17 Jul 2016) | 19 lines

numeric.c, complex.c: Add finite? and infinite? consistent with Float

* numeric.c (num_finite_p, num_infinite_p): Add Numeric#finite? and
  Numeric#infinite?  [Feature #12039] [ruby-core:73618]

* complex.c (rb_complex_finite_p): Add Complex#finite?

* complex.c (rb_complex_infinite_p): Add Complex#infinite?

* test/ruby/test_bignum.rb: Add test for Integer#finite? and
  Integer#infinite?

* test/ruby/test_fixnum.rb: ditto.

* test/ruby/test_rational.rb: Add test for Rational#finite? and
  Rational#infinite?

* test/ruby/test_complex.rb: Add test for Complex#finite? and
  Complex#infinite?
------------------------------------------------------------------------
r55701 | nobu | 2016-07-17 20:59:26 +0900 (Sun, 17 Jul 2016) | 4 lines

Move generated headers to unicode data directory

* common.mk, enc/depend (casefold.h, name2ctype.h): move to
  unicode data directory per version.
------------------------------------------------------------------------
r55700 | svn | 2016-07-17 17:40:54 +0900 (Sun, 17 Jul 2016) | 1 line

* 2016-07-17
------------------------------------------------------------------------
r55699 | shyouhei | 2016-07-17 17:40:53 +0900 (Sun, 17 Jul 2016) | 2 lines

	* insns.def: tabify [ci skip]

------------------------------------------------------------------------
r55698 | nobu | 2016-07-16 21:41:23 +0900 (Sat, 16 Jul 2016) | 6 lines

common.mk: INCFLAGS

* common.mk (INCFLAGS): move from Makefile.in.

* win32/Makefile.sub (XCFLAGS): missing directory is not
  neccessary as an include path.
------------------------------------------------------------------------
r55697 | usa | 2016-07-16 06:39:57 +0900 (Sat, 16 Jul 2016) | 2 lines

* time.c (time_arg): revert r55688 beause it had no effect. retry...

------------------------------------------------------------------------
r55696 | nobu | 2016-07-16 06:26:02 +0900 (Sat, 16 Jul 2016) | 5 lines

common.mk: directory timestamps

* common.mk, enc/Makefile.in: moved timestamp files for
  directories under the specific directory, to get rid of match
  with files under the source directory.
------------------------------------------------------------------------
r55695 | svn | 2016-07-16 05:24:02 +0900 (Sat, 16 Jul 2016) | 1 line

* 2016-07-16
------------------------------------------------------------------------
r55694 | usa | 2016-07-16 05:24:01 +0900 (Sat, 16 Jul 2016) | 2 lines

Revert r55693 because it broke building on all platforms (and had no ChangeLog).

------------------------------------------------------------------------
r55693 | nobu | 2016-07-15 23:08:20 +0900 (Fri, 15 Jul 2016) | 5 lines

common.mk: directory timestamps

* common.mk, enc/Makefile.in: moved timestamp files for
  directories under the specific directory, to get rid of match
  with files under the source directory.
------------------------------------------------------------------------
r55692 | ngoto | 2016-07-15 22:08:54 +0900 (Fri, 15 Jul 2016) | 3 lines

* string.c (str_buf_cat): Fix potential interger overflow of capa.
  In addition, termlen is used instead of +1.

------------------------------------------------------------------------
r55691 | ngoto | 2016-07-15 21:35:52 +0900 (Fri, 15 Jul 2016) | 3 lines

* string.c (str_buf_cat): Fix capa size for embed string.
  Fix bug in r55547. [Bug #12536]

------------------------------------------------------------------------
r55690 | hsbt | 2016-07-15 18:13:20 +0900 (Fri, 15 Jul 2016) | 1 line

* gems/bundled_gems: update latest gems.
------------------------------------------------------------------------
r55689 | nobu | 2016-07-15 17:08:59 +0900 (Fri, 15 Jul 2016) | 5 lines

util.c: do not underflow

* util.c (ruby_strtod): do not underflow only by preceeding zeros,
  which may be canceled out by the exponent.
  http://twitter.com/kazuho/status/753829998767714305
------------------------------------------------------------------------
r55688 | usa | 2016-07-15 15:35:37 +0900 (Fri, 15 Jul 2016) | 4 lines

* time.c (time_arg): it seems that this function sometimes causes SEGV
  on mswin CI, then force to prevent `vtm->subsecx` from GC.  this is
  experimental.

------------------------------------------------------------------------
r55687 | nobu | 2016-07-15 09:53:50 +0900 (Fri, 15 Jul 2016) | 4 lines

enc/unicode: check Unicode versions

* enc/unicode/case-folding.rb, tool/enc-unicode.rb: check if
  Unicode versions are consistent with each other.
------------------------------------------------------------------------
r55686 | normal | 2016-07-15 08:30:29 +0900 (Fri, 15 Jul 2016) | 51 lines

string.c: reduce malloc overhead for default buffer size

* string.c (STR_BUF_MIN_SIZE): reduce from 128 to 127
  [ruby-core:76371] [Feature #12025]
* string.c (rb_str_buf_new): adjust for above reduction

From Jeremy Evans <code@jeremyevans.net>:

This changes the minimum buffer size for string buffers from 128 to
127.  The underlying C buffer is always 1 more than the ruby buffer,
so this changes the actual amount of memory used for the minimum
string buffer from 129 to 128.  This makes it much easier on the
malloc implementation, as evidenced by the following code (note that
time -l is used here, but Linux systems may need time -v).

$ cat bench_mem.rb
i = ARGV.first.to_i
Array.new(1000000){" " * i}
$ /usr/bin/time -l ruby bench_mem.rb 128
        3.10 real         2.19 user         0.46 sys
    289080  maximum resident set size
     72673  minor page faults
        13  block output operations
        29  voluntary context switches
$ /usr/bin/time -l ruby bench_mem.rb 127
        2.64 real         2.09 user         0.27 sys
    162720  maximum resident set size
     40966  minor page faults
         2  block output operations
         4  voluntary context switches

To try to ensure a power-of-2 growth, when a ruby string capacity
needs to be increased, after doubling the capacity, add one.  This
ensures the ruby capacity will be odd, which means actual amount
of memory used will be even, which is probably better than the
current case of the ruby capacity being even and the actual amount
of memory used being odd.

A very similar patch was proposed 4 years ago in feature #5875. It
ended up being rejected, because no performance increase was shown.
One reason for that is that ruby does not use STR_BUF_MIN_SIZE
unless rb_str_buf_new is called, and that previously did not have
a ruby API, only a C API, so unless you were using a C extension
that called it, there would be no performance increase.

With the recently proposed feature #12024, String.buffer is added,
which is a ruby API for creating string buffers.  Using
String.buffer(100) wastes much less memory with this patch, as the
malloc implementation can more easily deal with the power-of-2
sized memory usage.  As measured above, memory usage is 44% less,
and performance is 17% better.
------------------------------------------------------------------------
r55685 | nobu | 2016-07-15 01:32:13 +0900 (Fri, 15 Jul 2016) | 4 lines

enc-unicode.rb: check Unicode version

* tool/enc-unicode.rb (data_foreach): check Unicode version in
  data files, and yield each lines.
------------------------------------------------------------------------
r55684 | nobu | 2016-07-15 01:30:01 +0900 (Fri, 15 Jul 2016) | 1 line

Download Unicode files just once [ci skip]
------------------------------------------------------------------------
r55683 | svn | 2016-07-15 00:35:39 +0900 (Fri, 15 Jul 2016) | 1 line

* 2016-07-15
------------------------------------------------------------------------
r55682 | kazu | 2016-07-15 00:35:38 +0900 (Fri, 15 Jul 2016) | 2 lines

SVK is dead

------------------------------------------------------------------------
r55681 | kazu | 2016-07-14 21:49:26 +0900 (Thu, 14 Jul 2016) | 2 lines

Remove empty directory

------------------------------------------------------------------------
r55680 | nobu | 2016-07-14 20:01:59 +0900 (Thu, 14 Jul 2016) | 4 lines

common.mk: prefix for nmake

* common.mk (incs): prefix to enc/unicode/name2ctype.h and
  enc/jis/props.h for nmake.
------------------------------------------------------------------------
r55679 | nobu | 2016-07-14 19:45:33 +0900 (Thu, 14 Jul 2016) | 3 lines

Makefile.sub: update enc/unicode/name2ctype.h

* win32/Makefile.sub (enc/unicode/name2ctype.h): remove stale recipe.
------------------------------------------------------------------------
r55678 | nobu | 2016-07-14 17:26:04 +0900 (Thu, 14 Jul 2016) | 7 lines

common.mk: update enc/unicode/name2ctype.h

* Makefile.in (enc/unicode/name2ctype.h): remove stale recipe,
  which did not support Unicode age properties.
* common.mk (enc/unicode/name2ctype.h): update by --header option
  of tool/enc-unicode.rb.  enc/unicode/name2ctype.kwd file has not
  been used.
------------------------------------------------------------------------
r55677 | nobu | 2016-07-14 15:46:53 +0900 (Thu, 14 Jul 2016) | 5 lines

make-snapshot: fix VPATH regexp [ci skip]

* tool/make-snapshot (package): replace nmake style VPATH in
  common.mk by regexp same as one for uncommon.mk, not to replace
  too much, BEGIN and END in awk and ruby.
------------------------------------------------------------------------
r55676 | nobu | 2016-07-14 13:42:50 +0900 (Thu, 14 Jul 2016) | 4 lines

common.mk: rule for name2ctype.kwd

* common.mk (enc/unicode/name2ctype.kwd): rule to create from
  Unicode data files, used only when the target does not exist.
------------------------------------------------------------------------
r55675 | nobu | 2016-07-14 13:10:56 +0900 (Thu, 14 Jul 2016) | 5 lines

json/ext: remove stale directory

* ext/json/lib/json/ext: remove stale directory.  bundled
  extension libraries are placed under the directory for each
  architectures, but not mixed with plain text script libraries.
------------------------------------------------------------------------
r55674 | nobu | 2016-07-14 13:04:48 +0900 (Thu, 14 Jul 2016) | 3 lines

Unicode version check

* common.mk (RBCONFIG): check if Unicode versions match.
------------------------------------------------------------------------
r55673 | svn | 2016-07-14 12:48:55 +0900 (Thu, 14 Jul 2016) | 1 line

* append newline at EOF.
------------------------------------------------------------------------
r55672 | svn | 2016-07-14 12:48:55 +0900 (Thu, 14 Jul 2016) | 1 line

* 2016-07-14
------------------------------------------------------------------------
r55671 | hsbt | 2016-07-14 12:48:54 +0900 (Thu, 14 Jul 2016) | 2 lines

* ext/json/**/*.rb: merge original files from upstream repository.
  It only fixes styles of frozen string literal.
------------------------------------------------------------------------
r55670 | kazu | 2016-07-13 23:22:22 +0900 (Wed, 13 Jul 2016) | 1 line

Fix file name in comment again
------------------------------------------------------------------------
r55669 | hsbt | 2016-07-13 22:27:08 +0900 (Wed, 13 Jul 2016) | 2 lines

* test/json/json_common_interface_test.rb: use assert_raise instead of
  assert_raises.
------------------------------------------------------------------------
r55668 | svn | 2016-07-13 22:27:08 +0900 (Wed, 13 Jul 2016) | 1 line

* properties.
------------------------------------------------------------------------
r55667 | hsbt | 2016-07-13 22:27:07 +0900 (Wed, 13 Jul 2016) | 3 lines

* test/lib/test/unit.rb: added test files with `_test` suffix for json
  upstream.
* test/json: merge original test files from json upstream.
------------------------------------------------------------------------
r55666 | duerst | 2016-07-13 18:09:47 +0900 (Wed, 13 Jul 2016) | 7 lines

* enc/iso_8859_9.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-9, by Kazuki Iijima.
* enc/iso_8859_9.c: Exclude dotless i/I with dot from case-insensitive
  matching because they are not a case pair.
* test/ruby/enc/test_iso_8859.rb: Make test coverage for ISO-8859-9
  a bit more complete.

------------------------------------------------------------------------
r55665 | duerst | 2016-07-13 17:21:29 +0900 (Wed, 13 Jul 2016) | 4 lines

* enc/windows_1252.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for Windows-1252, by Serina Tai.
* test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.

------------------------------------------------------------------------
r55664 | duerst | 2016-07-13 16:19:25 +0900 (Wed, 13 Jul 2016) | 4 lines

* enc/iso_8859_7.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-7, by Kosuke Kurihara.
* test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.

------------------------------------------------------------------------
r55663 | ko1 | 2016-07-13 16:08:32 +0900 (Wed, 13 Jul 2016) | 8 lines

* gc.c (gc_mark_roots): should mark the VM object itself to mark
  singleton class of the VM object.
  Before this patch, we only set mark bit for the VM object and
  invoke mark function separately.
  [Bug #12583]

* test/ruby/test_gc.rb: add a test.

------------------------------------------------------------------------
r55662 | usa | 2016-07-13 16:03:23 +0900 (Wed, 13 Jul 2016) | 6 lines

* math.c (_USE_MATH_DEFINES): it must be set before including internal.h
  because internal.h includes ruby.h, ruby.h includes win32.h, and
  win32.h includes system's math.h.
  this change is to get rid of a compiler warning (redefinition of
  a macro) introduced at r55641.

------------------------------------------------------------------------
r55661 | nobu | 2016-07-13 15:32:37 +0900 (Wed, 13 Jul 2016) | 1 line

Fix file names in comments
------------------------------------------------------------------------
r55660 | duerst | 2016-07-13 15:19:07 +0900 (Wed, 13 Jul 2016) | 3 lines

* enc/iso_8859_1.c, enc/iso_8859_4.c: Avoid setting modification flag if
  there is no modification.

------------------------------------------------------------------------
r55659 | naruse | 2016-07-13 14:47:48 +0900 (Wed, 13 Jul 2016) | 1 line

fix type
------------------------------------------------------------------------
r55658 | duerst | 2016-07-13 14:40:12 +0900 (Wed, 13 Jul 2016) | 4 lines

* enc/iso_8859_5.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-5, by Masaru Onodera.
* test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.

------------------------------------------------------------------------
r55657 | naruse | 2016-07-13 14:29:30 +0900 (Wed, 13 Jul 2016) | 1 line

* math.c (rb_math_sqrt): r55646 must use f_signbit.
------------------------------------------------------------------------
r55656 | ko1 | 2016-07-13 14:26:00 +0900 (Wed, 13 Jul 2016) | 12 lines

* iseq.c (Init_ISeq): undef ISeq.translate and ISeq.load_iseq
  to prevent calling super classes' methods.

  Without this patch, you can write workaround like:

    class << RubyVM::InstructionSequence
      def translate; end
      undef translate
    end

* test/ruby/test_iseq.rb: add a test.

------------------------------------------------------------------------
r55655 | ko1 | 2016-07-13 14:19:12 +0900 (Wed, 13 Jul 2016) | 6 lines

* vm_method.c (method_entry_get_without_cache): check
  undefined method even if ruby_running is FALSE.

  We haven't call "undef"ed methods before ruby_running.
  So that this issue does not make troubles.

------------------------------------------------------------------------
r55654 | duerst | 2016-07-13 14:15:28 +0900 (Wed, 13 Jul 2016) | 2 lines

* enc/windows_1254.c: Adjust variable/macro names.

------------------------------------------------------------------------
r55653 | duerst | 2016-07-13 13:19:17 +0900 (Wed, 13 Jul 2016) | 3 lines

* enc/iso_8859_9.c, enc/windows_1254.c: Split Windows-1254 from
  ISO-8859-9 to be able to implement different case conversions.

------------------------------------------------------------------------
r55652 | duerst | 2016-07-13 13:08:36 +0900 (Wed, 13 Jul 2016) | 3 lines

* enc/iso_8859_7.c, enc/windows_1253.c: Split Windows-1253 from
  ISO-8859-7 to be able to implement different case conversions.

------------------------------------------------------------------------
r55651 | duerst | 2016-07-13 10:50:17 +0900 (Wed, 13 Jul 2016) | 3 lines

* enc/iso_8859_13.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-13, by Kanon Shindo.

------------------------------------------------------------------------
r55650 | duerst | 2016-07-13 10:31:44 +0900 (Wed, 13 Jul 2016) | 3 lines

* enc/iso_8859_13.c, enc/windows_1257.c: Split Windows-1257 from
  ISO-8859-13 to be able to implement different case conversions.

------------------------------------------------------------------------
r55649 | svn | 2016-07-13 09:02:35 +0900 (Wed, 13 Jul 2016) | 1 line

* 2016-07-13
------------------------------------------------------------------------
r55648 | duerst | 2016-07-13 09:02:34 +0900 (Wed, 13 Jul 2016) | 7 lines

* enc/iso_8859_3.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-3, by Takuya Miyamoto.
* test/ruby/enc/test_case_comprehensive.rb: Extend special treatment
  for Turkic.
* enc/iso_8859_3.c: Exclude dotless i/I with dot from case-insensitive
  matching because they are not a case pair.

------------------------------------------------------------------------
r55647 | duerst | 2016-07-13 08:40:26 +0900 (Wed, 13 Jul 2016) | 3 lines

* test/ruby/enc/test_iso_8859.rb: Excluded dotless i/I with dot from
  case-insensitive matching because they are not a case pair.

------------------------------------------------------------------------
r55646 | nobu | 2016-07-12 23:13:46 +0900 (Tue, 12 Jul 2016) | 4 lines

math.c: Complex sqrt

* math.c (rb_math_sqrt): [EXPERIMENTAL] move Complex sqrt support
  from mathn.rb.
------------------------------------------------------------------------
r55645 | nobu | 2016-07-12 22:17:04 +0900 (Tue, 12 Jul 2016) | 4 lines

complex.c: rb_complex prefix

* complex.c (rb_complex_plus, rb_complex_mul): rename to
  rb_complex prefix.
------------------------------------------------------------------------
r55644 | nobu | 2016-07-12 22:07:51 +0900 (Tue, 12 Jul 2016) | 4 lines

math.c: get_double_rshift

* math.c (get_double_rshift): extract bignum to double conversion
  with bit offset.
------------------------------------------------------------------------
r55643 | duerst | 2016-07-12 21:59:46 +0900 (Tue, 12 Jul 2016) | 3 lines

* revert r55642 (previous commit) because of test failure at
  https://travis-ci.org/ruby/ruby/builds/144148780

------------------------------------------------------------------------
r55642 | duerst | 2016-07-12 21:33:17 +0900 (Tue, 12 Jul 2016) | 5 lines

* enc/iso_8859_3.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-3, by Takuya Miyamoto.
* test/ruby/enc/test_case_comprehensive.rb: Extend special treatment
  for Turkic.

------------------------------------------------------------------------
r55641 | nobu | 2016-07-12 20:53:43 +0900 (Tue, 12 Jul 2016) | 4 lines

math.c: use common constants

* math.c (math_log1, math_log10): use common math constants
  instead of math function calls.
------------------------------------------------------------------------
r55640 | svn | 2016-07-12 01:30:04 +0900 (Tue, 12 Jul 2016) | 1 line

* 2016-07-12
------------------------------------------------------------------------
r55639 | svn | 2016-07-12 01:30:04 +0900 (Tue, 12 Jul 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55638 | usa | 2016-07-12 01:30:03 +0900 (Tue, 12 Jul 2016) | 8 lines

* configure.in, lib/mkmf.rb, win32/Makefile.sub (CSRCFLAG): make the
  compiler option replacable in Makefile.

* win32/Makefile.sub (OUTFLAG, COUTFLAG): ditto.

* win32/Makeile.sub, win32/setup.mak (CC): should not append `-nologo`
  option forcely.

------------------------------------------------------------------------
r55634 | akr | 2016-07-11 23:08:49 +0900 (Mon, 11 Jul 2016) | 2 lines

describe RUBY_INTEGER_UNIFICATION.

------------------------------------------------------------------------
r55632 | duerst | 2016-07-11 18:05:53 +0900 (Mon, 11 Jul 2016) | 3 lines

* enc/iso_8859_1.c: Moved test for lowercase characters without
  uppercase equivalent.

------------------------------------------------------------------------
r55631 | duerst | 2016-07-11 17:49:38 +0900 (Mon, 11 Jul 2016) | 4 lines

* enc/iso_8859_4.c, enc/iso_8859_10.c, enc/iso_8859_14.c,
  enc/iso_8859_15.c, enc/iso_8859_16.c: Replace case-by-case code with
  lookup in ENC_ISO_8859_xx_TO_LOWER_CASE table.

------------------------------------------------------------------------
r55630 | svn | 2016-07-11 16:00:59 +0900 (Mon, 11 Jul 2016) | 1 line

* 2016-07-11
------------------------------------------------------------------------
r55629 | nobu | 2016-07-11 16:00:58 +0900 (Mon, 11 Jul 2016) | 5 lines

stringio.c: convert arguments just once

* ext/stringio/stringio.c (strio_each, strio_readlines): convert
  arguments just once before reading, instead of conversions for
  each lines, as r55603.
------------------------------------------------------------------------
r55628 | nobu | 2016-07-10 23:28:25 +0900 (Sun, 10 Jul 2016) | 1 line

enc/iso_8859_4.c: adjust indent [ci skip]
------------------------------------------------------------------------
r55627 | duerst | 2016-07-10 19:53:45 +0900 (Sun, 10 Jul 2016) | 3 lines

* enc/iso_8859_10.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-10, by Toya Hosokawa.

------------------------------------------------------------------------
r55626 | duerst | 2016-07-10 19:33:51 +0900 (Sun, 10 Jul 2016) | 6 lines

* test/ruby/enc/test_case_comprehensive.rb: Changed testing logic in to
  catch unintended modifications of characters that do not have a case
  equivalent in the respective encoding.
* enc/iso_8859_1.c, enc/iso_8859_15.c: Fixed unintended modifications of
  micro sign and y with diaeresis.

------------------------------------------------------------------------
r55625 | svn | 2016-07-10 17:05:40 +0900 (Sun, 10 Jul 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55624 | duerst | 2016-07-10 17:05:39 +0900 (Sun, 10 Jul 2016) | 3 lines

* enc/iso_8859_4.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-4, by Kotaro Yoshida.

------------------------------------------------------------------------
r55623 | duerst | 2016-07-10 16:17:51 +0900 (Sun, 10 Jul 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb: Fixed a comment
  (message belongs to last commit). [ci skip]

------------------------------------------------------------------------
r55622 | duerst | 2016-07-10 16:14:34 +0900 (Sun, 10 Jul 2016) | 1 line


------------------------------------------------------------------------
r55621 | nobu | 2016-07-10 14:27:27 +0900 (Sun, 10 Jul 2016) | 5 lines

util.c: round nearly middle value

* util.c (ruby_dtoa): [EXPERIMENTAL] adjust the case that the
  Float value is close to the exact but unrepresentable middle
  value of two values in the given precision, as r55604.
------------------------------------------------------------------------
r55620 | svn | 2016-07-10 08:57:54 +0900 (Sun, 10 Jul 2016) | 1 line

* 2016-07-10
------------------------------------------------------------------------
r55619 | hsbt | 2016-07-10 08:57:52 +0900 (Sun, 10 Jul 2016) | 1 line

* thread.c: Fixed implicit conversion error with Apple clang-800.0.31
------------------------------------------------------------------------
r55618 | usa | 2016-07-09 12:51:14 +0900 (Sat, 09 Jul 2016) | 2 lines

* ChangeLog: shugo, you lose.

------------------------------------------------------------------------
r55617 | shugo | 2016-07-09 12:47:14 +0900 (Sat, 09 Jul 2016) | 3 lines

* tool/mkconfig.rb: use true instead of TRUE.

* lib/getoptlong.rb: use false instead of FALSE.
------------------------------------------------------------------------
r55616 | svn | 2016-07-09 11:44:40 +0900 (Sat, 09 Jul 2016) | 1 line

* 2016-07-09
------------------------------------------------------------------------
r55615 | nobu | 2016-07-09 11:44:39 +0900 (Sat, 09 Jul 2016) | 4 lines

Use keyword

* tool/mkconfig.rb: use keyword true, instead of the toplevel
  constant.
------------------------------------------------------------------------
r55614 | kazu | 2016-07-08 22:22:23 +0900 (Fri, 08 Jul 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55613 | ngoto | 2016-07-08 21:51:36 +0900 (Fri, 08 Jul 2016) | 3 lines

* thread.c (rb_wait_for_single_fd): Clean up fds.revents every time
  before calling ppoll(2). [Bug #12575] [ruby-dev:49725]

------------------------------------------------------------------------
r55612 | nobu | 2016-07-08 14:38:16 +0900 (Fri, 08 Jul 2016) | 4 lines

numeric.c: round as double

* numeric.c (flo_round): compare as double, not long double with
  i387.
------------------------------------------------------------------------
r55611 | shugo | 2016-07-08 14:21:54 +0900 (Fri, 08 Jul 2016) | 2 lines

* vm_args.c (vm_caller_setup_arg_block): call rb_sym_to_proc()
  directly to reduce method dispatch overhead.
------------------------------------------------------------------------
r55610 | shugo | 2016-07-08 08:46:51 +0900 (Fri, 08 Jul 2016) | 2 lines

* io.c (rb_io_s_read): add description of pipes to the documentation
  of IO.read.
------------------------------------------------------------------------
r55609 | naruse | 2016-07-08 03:59:38 +0900 (Fri, 08 Jul 2016) | 4 lines

* vm_args.c (setup_parameters_complex): don't raise ArgumentError
  if an array is given for instance_exec with optional argument.
  [ruby-core:76300] [Bug #12568]
  https://github.com/rails/rails/pull/25699
------------------------------------------------------------------------
r55608 | naruse | 2016-07-08 03:59:38 +0900 (Fri, 08 Jul 2016) | 1 line

suppress warnings: unused variables
------------------------------------------------------------------------
r55607 | svn | 2016-07-08 00:49:18 +0900 (Fri, 08 Jul 2016) | 1 line

* 2016-07-08
------------------------------------------------------------------------
r55606 | naruse | 2016-07-08 00:49:17 +0900 (Fri, 08 Jul 2016) | 7 lines

* vm_eval.c (yield_under): change prototype to get argc/argv.

* vm_eval.c (specific_eval): change for above.

* vm_eval.c (rb_obj_instance_exec): avoid object allocation.

* vm_eval.c (rb_mod_module_exec): ditto.
------------------------------------------------------------------------
r55605 | shugo | 2016-07-07 20:08:52 +0900 (Thu, 07 Jul 2016) | 3 lines

* vm_args.c (vm_caller_setup_arg_block): disable symbol block
  argument optimization when tail call optimization is enabled,
  in order to avoid SEGV.  [ruby-core:76288] [Bug #12565]
------------------------------------------------------------------------
r55604 | nobu | 2016-07-07 16:37:55 +0900 (Thu, 07 Jul 2016) | 6 lines

numeric.c: round nearly middle value

* numeric.c (flo_round): [EXPERIMENTAL] adjust the case that the
  receiver is close to the exact but unrepresentable middle value
  of two values in the given precision.
  http://d.hatena.ne.jp/hnw/20160702
------------------------------------------------------------------------
r55603 | nobu | 2016-07-07 16:31:09 +0900 (Thu, 07 Jul 2016) | 4 lines

io.c: convert arguments just once

* io.c (rb_io_s_foreach, rb_io_s_readlines): convert arguments
  just once before reading, instead of conversions for each lines.
------------------------------------------------------------------------
r55602 | naruse | 2016-07-07 03:17:36 +0900 (Thu, 07 Jul 2016) | 3 lines

require "rbconfig/sizeof"

They may fail parallel test-all
------------------------------------------------------------------------
r55601 | svn | 2016-07-07 01:05:58 +0900 (Thu, 07 Jul 2016) | 1 line

* 2016-07-07
------------------------------------------------------------------------
r55600 | usa | 2016-07-07 01:05:57 +0900 (Thu, 07 Jul 2016) | 2 lines

* tool/redmine-backporter.rb: fixed command alias bug.

------------------------------------------------------------------------
r55597 | ngoto | 2016-07-06 22:26:53 +0900 (Wed, 06 Jul 2016) | 3 lines

enc/iso_8859_14.c: Fix compile error by old version of fcc on Solaris 10.
[Bug #12559]

------------------------------------------------------------------------
r55596 | svn | 2016-07-06 19:54:25 +0900 (Wed, 06 Jul 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55595 | duerst | 2016-07-06 19:54:24 +0900 (Wed, 06 Jul 2016) | 3 lines

* enc/iso_8859_14.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-14, by Yutaro Tada.

------------------------------------------------------------------------
r55594 | svn | 2016-07-06 19:24:51 +0900 (Wed, 06 Jul 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55593 | duerst | 2016-07-06 19:24:50 +0900 (Wed, 06 Jul 2016) | 3 lines

* enc/iso_8859_1.c, enc/iso_8859_15.c, enc/iso_8859_16.c:
  Allign indenting to onigmo convention.

------------------------------------------------------------------------
r55592 | svn | 2016-07-06 18:59:24 +0900 (Wed, 06 Jul 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55591 | duerst | 2016-07-06 18:59:23 +0900 (Wed, 06 Jul 2016) | 3 lines

* enc/iso_8859_15.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-15, by Maho Harada.

------------------------------------------------------------------------
r55590 | duerst | 2016-07-06 18:34:23 +0900 (Wed, 06 Jul 2016) | 3 lines

* enc/iso_8859_16.c, test/ruby/enc/test_case_comprehensive.rb:
  Implement non-ASCII case conversion for ISO-8859-16, by Satoshi Kayama.

------------------------------------------------------------------------
r55589 | nobu | 2016-07-06 14:48:13 +0900 (Wed, 06 Jul 2016) | 5 lines

Update dependencies

* common.mk (compile.o, loadpath.o): update dependencies.

* common.mk (vm_call.o): remove stale object dependencies.
------------------------------------------------------------------------
r55588 | nobu | 2016-07-06 14:44:58 +0900 (Wed, 06 Jul 2016) | 8 lines

Local header dependencies

* lib/mkmf.rb (create_makefile): store $headers in LOCAL_HDRS for
  depend files.
* ext/digest/digest_conf.rb (digest_conf): add implementation
  specific headers to $header.
* ext/digest/{md5,rmd160,sha1,sha2}/depend: add LOCAL_HDRS to the
  dependencies.
------------------------------------------------------------------------
r55587 | nobu | 2016-07-06 14:44:35 +0900 (Wed, 06 Jul 2016) | 1 line

Ignore -save-temps=obj files
------------------------------------------------------------------------
r55586 | nobu | 2016-07-06 14:37:14 +0900 (Wed, 06 Jul 2016) | 4 lines

update-deps: exclude timestamps

* tool/update-deps (concentrate): exclude timestamps for
  directories.
------------------------------------------------------------------------
r55585 | nobu | 2016-07-06 14:37:13 +0900 (Wed, 06 Jul 2016) | 4 lines

update-deps: for clang

* tool/update-deps (read_single_cc_deps): clang may not include
  the current working directory name in .i files.
------------------------------------------------------------------------
r55584 | nobu | 2016-07-06 14:03:14 +0900 (Wed, 06 Jul 2016) | 7 lines

probes.dmyh: remove preprocessor directives

* tool/gen_dummy_probes.rb: remove include and conditional
  directives from probes.dmyh which are removed by preprocessing.

* common.mk: remove unnecessary dependencies on vm_opts.h via
  probes.dmyh.
------------------------------------------------------------------------
r55583 | nobu | 2016-07-06 14:01:43 +0900 (Wed, 06 Jul 2016) | 1 line

Revert ext/json/parser/prereq.mk
------------------------------------------------------------------------
r55582 | shugo | 2016-07-06 09:16:17 +0900 (Wed, 06 Jul 2016) | 1 line

Add an assertion.
------------------------------------------------------------------------
r55581 | shugo | 2016-07-06 09:01:20 +0900 (Wed, 06 Jul 2016) | 2 lines

* lib/net/http/generic_rquest.rb (write_header): A Request-Line must
  not contain CR or LF.
------------------------------------------------------------------------
r55580 | svn | 2016-07-06 07:14:18 +0900 (Wed, 06 Jul 2016) | 1 line

* 2016-07-06
------------------------------------------------------------------------
r55579 | shugo | 2016-07-06 07:14:18 +0900 (Wed, 06 Jul 2016) | 2 lines

* lib/net/ftp.rb (putline): raise an ArgumentError when
  CR or LF is included in a line.
------------------------------------------------------------------------
r55578 | svn | 2016-07-05 20:49:40 +0900 (Tue, 05 Jul 2016) | 1 line

* properties.
------------------------------------------------------------------------
r55577 | svn | 2016-07-05 20:49:40 +0900 (Tue, 05 Jul 2016) | 1 line

* append newline at EOF.
------------------------------------------------------------------------
r55576 | hsbt | 2016-07-05 20:49:39 +0900 (Tue, 05 Jul 2016) | 4 lines

* ext/json/*, test/json/*: Update json-2.0.1.
  Changes of 2.0.0: https://github.com/flori/json/blob/f679ebd0c69a94e3e70a897ac9a229f5779c2ee1/CHANGES.md#2015-09-11-200
  Changes of 2.0.1: https://github.com/flori/json/blob/f679ebd0c69a94e3e70a897ac9a229f5779c2ee1/CHANGES.md#2016-07-01-201
  [Feature #12542][ruby-dev:49706][fix GH-1395]
------------------------------------------------------------------------
r55575 | ngoto | 2016-07-05 19:45:23 +0900 (Tue, 05 Jul 2016) | 21 lines

* string.c (rb_str_change_terminator_length): New function to change
  termlen and resize heap for the terminator. This is split from
  rb_str_fill_terminator (str_fill_term) because filling terminator
  and changing terminator length are different things. [Bug #12536]

* internal.h: declaration for rb_str_change_terminator_length.

* string.c (str_fill_term): Simplify only to zero-fill the terminator.
  For non-shared strings, it assumes that (capa + termlen) bytes of
  heap is allocated. This partially reverts r55557.

* encoding.c (rb_enc_associate_index): rb_str_change_terminator_length
  is used, and it should be called whenever the termlen is changed.

* string.c (str_capacity): New static function to return capacity
  of a string with the given termlen, because the termlen may
  sometimes be different from TERM_LEN(str) especially during
  changing termlen or filling terminator with specific termlen.

* string.c (rb_str_capacity): Use str_capacity.

------------------------------------------------------------------------
r55574 | svn | 2016-07-05 11:08:56 +0900 (Tue, 05 Jul 2016) | 1 line

* 2016-07-05
------------------------------------------------------------------------
r55573 | naruse | 2016-07-05 11:08:55 +0900 (Tue, 05 Jul 2016) | 5 lines

* pack.c (pack_pack): use union instead of bare variable to ease
  optimizations and avoid assigning x87 floating point number.
  [ruby-core:74496] [Bug #12209]

* pack.c (pack_unpack): ditto.
------------------------------------------------------------------------
r55572 | naruse | 2016-07-04 16:05:00 +0900 (Mon, 04 Jul 2016) | 1 line

fix typo
------------------------------------------------------------------------
r55571 | naruse | 2016-07-04 13:57:27 +0900 (Mon, 04 Jul 2016) | 2 lines

* process.c: define sig_t if not exist.
  at least Solaris 10 and 11 doesn't have sig_t.
------------------------------------------------------------------------
r55570 | svn | 2016-07-04 13:09:52 +0900 (Mon, 04 Jul 2016) | 1 line

* 2016-07-04
------------------------------------------------------------------------
r55569 | naruse | 2016-07-04 13:09:51 +0900 (Mon, 04 Jul 2016) | 2 lines

* random.c (random_ulong_limited): avoid left shift count >= width of
  type on 32bit environment.
------------------------------------------------------------------------
r55568 | kazu | 2016-07-03 22:23:27 +0900 (Sun, 03 Jul 2016) | 1 line

fix a typo and indent [ci skip]
------------------------------------------------------------------------
r55567 | duerst | 2016-07-03 18:51:46 +0900 (Sun, 03 Jul 2016) | 5 lines

* test/ruby/enc/test_case_comprehensive.rb, test_regex_casefold.rb,
  test/test_unicode_normalize.rb: Replace UNICODE_VERSION from
  UnicodeNormalize with RbConfig::CONFIG['UNICODE_VERSION'] from
  feature 12460.

------------------------------------------------------------------------
r55566 | normal | 2016-07-03 06:13:26 +0900 (Sun, 03 Jul 2016) | 14 lines

process.c (disable_child_handler_fork_child): simplify

signal(2) is portable for SIG_DFL and SIG_IGN, so we do not
need the extra code for sigaction(2).

Also, execve will reset all signal handlers to default
anyways, so there is little sense in preserving old
signal handler besides SIG_IGN.

Hopefully this makes the code easier-to-understand and
maintain.

* process.c (disable_child_handler_fork_child): simplify
  [ruby-core:75781] [Misc #12439]
------------------------------------------------------------------------
r55565 | svn | 2016-07-03 06:01:05 +0900 (Sun, 03 Jul 2016) | 1 line

* 2016-07-03
------------------------------------------------------------------------
r55564 | normal | 2016-07-03 06:01:04 +0900 (Sun, 03 Jul 2016) | 36 lines

tool: add descriptions and fix typos

* tool/asm_parse.rb: add description
* tool/change_maker.rb: ditto
* tool/downloader.rb: ditto
* tool/eval.rb: ditto
* tool/expand-config.rb: ditto
* tool/extlibs.rb: ditto
* tool/fake.rb: ditto
* tool/file2lastrev.rb: ditto
* tool/gem-unpack.rb: ditto
* tool/gen_dummy_probes.rb: ditto
* tool/gen_ruby_tapset.rb: ditto
* tool/generic_erb.rb: ditto
* tool/id2token.rb: ditto
* tool/ifchange: ditto
* tool/insns2vm.rb: ditto
* tool/instruction.rb: ditto
* tool/jisx0208.rb: ditto
* tool/merger.rb: ditto
* tool/mkrunnable.rb: ditto
* tool/node_name.rb: ditto
* tool/parse.rb: ditto
* tool/rbinstall.rb: ditto
* tool/rbuninstall.rb: ditto
* tool/rmdirs: ditto
* tool/runruby.rb: ditto
* tool/strip-rdoc.rb: ditto
* tool/vcs.rb: ditto
* tool/vtlh.rb: ditto
* tool/ytab.sed: ditto
* tool/enc-unicode.rb: fix typo
* tool/mk_call_iseq_optimized.rb: ditto
* tool/update-deps: ditto
  [ruby-core:76215] [Bug #12539]
  by Noah Gibbs <the.codefolio.guy@gmail.com>
------------------------------------------------------------------------
r55563 | naruse | 2016-07-02 18:05:05 +0900 (Sat, 02 Jul 2016) | 4 lines

* lib/uri/mailto.rb (initialize): RFC3986_Parser#split sets opaque
  only if the URI has path-rootless, not path-empty.
  [ruby-core:76055] [Bug #12498]
  patched by Chris Heisterkamp <cheister@squareup.com>
------------------------------------------------------------------------
r55562 | naruse | 2016-07-02 04:37:43 +0900 (Sat, 02 Jul 2016) | 6 lines

* regcomp.c (noname_disable_map): don't optimize out group 0
  Ruby's Regexp doesn't allow normal numbered groups if the regexp
  has named groups. On such case it optimizes out related NT_ENCLOSE.
  But even on the case it can use \g<0>.
  This fix not to remove NT_ENCLOSE whose regnum is 0.
  [ruby-core:75828] [Bug #12454]
------------------------------------------------------------------------
r55559 | ngoto | 2016-07-02 03:11:11 +0900 (Sat, 02 Jul 2016) | 4 lines

* string.c: Partially reverts r55547 and r55555.
  ChangeLog about the reverted changes are also deleted in this file.
  [Bug #12536] [ruby-dev:49699] [ruby-dev:49702]

------------------------------------------------------------------------
r55558 | svn | 2016-07-02 02:32:22 +0900 (Sat, 02 Jul 2016) | 1 line

* 2016-07-02
------------------------------------------------------------------------
r55557 | ngoto | 2016-07-02 02:32:21 +0900 (Sat, 02 Jul 2016) | 5 lines

* string.c (str_fill_term): When termlen increases, re-allocation
  of memory for termlen should always be needed.
  In this fix, if possible, decrease capa instead of realloc.
  [Bug #12536] [ruby-dev:49699]

------------------------------------------------------------------------
r55556 | kazu | 2016-07-01 21:00:07 +0900 (Fri, 01 Jul 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55555 | ngoto | 2016-07-01 20:24:11 +0900 (Fri, 01 Jul 2016) | 24 lines

* string.c: Specify termlen as far as possible.
  Additional fix for [Bug #12536] [ruby-dev:49699].

* string.c (rb_usascii_str_new, rb_utf8_str_new): Specify termlen
  which is apparently 1 for the encodings.

* string.c (str_new0_cstr): New static function to create a String
  object from a C string with specifying termlen.

* string.c (rb_usascii_str_new_cstr, rb_utf8_str_new_cstr): Specify
  termlen by using new str_new0_cstr().

* string.c (str_new_static): Specify termlen from the given encoding
  when creating a new String object is needed.

* string.c (rb_tainted_str_new_with_enc): New function to create a
  tainted String object with the given encoding. This means that
  the termlen is correctly specified. Curretly static function.
  The function name might be renamed to rb_tainted_enc_str_new
  or rb_enc_tainted_str_new.

* string.c (rb_external_str_new_with_enc): Use encoding by using the
  above rb_tainted_str_new_with_enc().

------------------------------------------------------------------------
r55554 | ngoto | 2016-07-01 19:43:07 +0900 (Fri, 01 Jul 2016) | 5 lines

* test/fiddle/test_pointer.rb (test_to_str, test_to_s, test_aref_aset):
  Attempt to use independent strings for destructive tests that
  directly modify values on memory by using Fiddle::Pointer.
  [Bug #12537] [ruby-dev:49700]

------------------------------------------------------------------------
r55553 | naruse | 2016-07-01 18:24:59 +0900 (Fri, 01 Jul 2016) | 2 lines

* .gdbinit (rb_ps_thread): show the detail of cfunc in ruby level
  backtrace.
------------------------------------------------------------------------
r55552 | ngoto | 2016-07-01 13:50:38 +0900 (Fri, 01 Jul 2016) | 5 lines

* string.c (rb_str_subseq, str_substr): When RSTRING_EMBED_LEN_MAX
  is used, TERM_LEN(str) should be considered with it because
  embedded strings are also processed by TERM_FILL.
  Additional fix for [Bug #12536] [ruby-dev:49699].

------------------------------------------------------------------------
r55551 | ngoto | 2016-07-01 12:58:51 +0900 (Fri, 01 Jul 2016) | 2 lines

string.c: Add parentheses to avoid C source code ambiguity. [Bug #12536]

------------------------------------------------------------------------
r55550 | naruse | 2016-07-01 12:13:41 +0900 (Fri, 01 Jul 2016) | 1 line

* .gdbinit (rb_count_objects): added gdb version of count_objects().
------------------------------------------------------------------------
r55549 | svn | 2016-07-01 04:36:39 +0900 (Fri, 01 Jul 2016) | 1 line

* 2016-07-01
------------------------------------------------------------------------
r55548 | naruse | 2016-07-01 04:36:38 +0900 (Fri, 01 Jul 2016) | 5 lines

* .gdbinit (rb_ps_thread): show ruby level backtrace.
  Usually you can call `rb_ps` to show ruby leve backtraces
  for all living threads.
  Note that it can call with core file like `gcore <pid>`
  and `gdb ruby core.<pid>`.
------------------------------------------------------------------------
r55547 | ngoto | 2016-06-30 19:20:23 +0900 (Thu, 30 Jun 2016) | 27 lines

* string.c: Fix memory corruptions when using UTF-16/32 strings.
  [Bug #12536] [ruby-dev:49699]

* string.c (TERM_LEN_MAX): Macro for the longest TERM_FILL length,
  the same as largest value of rb_enc_mbminlen(enc) among encodings.

* string.c (str_new, rb_str_buf_new, str_shared_replace): Allocate
  +TERM_LEN_MAX bytes instead of +1. This change may increase memory
  usage.

* string.c (rb_str_new_with_class): Use TERM_LEN of the "obj".

* string.c (rb_str_plus, rb_str_justify): Use str_new0 which is aware
  of termlen.

* string.c (str_shared_replace): Copy +termlen bytes instead of +1.

* string.c (rb_str_times): termlen should not be included in capa.

* string.c (RESIZE_CAPA_TERM): When using RSTRING_EMBED_LEN_MAX,
  termlen should be counted with it because embedded strings are
  also processed by TERM_FILL.

* string.c (rb_str_capacity, str_shared_replace, str_buf_cat): ditto.

* string.c (rb_str_drop_bytes, rb_str_setbyte, str_byte_substr): ditto.

------------------------------------------------------------------------
r55546 | nobu | 2016-06-30 17:24:11 +0900 (Thu, 30 Jun 2016) | 3 lines

case-folding.rb: define version numbers

* enc/unicode/case-folding.rb: define Unicode version numbers.
------------------------------------------------------------------------
r55545 | nobu | 2016-06-30 17:13:28 +0900 (Thu, 30 Jun 2016) | 4 lines

case-folding.rb: check version numbers

* enc/unicode/case-folding.rb: check if version numbers in each
  data files match.
------------------------------------------------------------------------
r55544 | nobu | 2016-06-30 17:13:27 +0900 (Thu, 30 Jun 2016) | 4 lines

test_stringio.rb: reduce retry count

* test/stringio/test_stringio.rb (test_overflow): reduce maximum
  retry count to get rid of timeout on some platforms.
------------------------------------------------------------------------
r55543 | nobu | 2016-06-30 16:31:06 +0900 (Thu, 30 Jun 2016) | 5 lines

Move unicode tables timestamp

* common.mk (.unicode-tables.time): move from the top source
  directory to the unicode source data directory which contains
  its version number.
------------------------------------------------------------------------
r55542 | nobu | 2016-06-30 14:45:35 +0900 (Thu, 30 Jun 2016) | 4 lines

Magic numbers

* ext/cgi/escape/escape.c (optimized_unescape_html): remove magic
  numbers for literal lengths.
------------------------------------------------------------------------
r55541 | svn | 2016-06-30 13:16:44 +0900 (Thu, 30 Jun 2016) | 1 line

* 2016-06-30
------------------------------------------------------------------------
r55540 | nobu | 2016-06-30 13:16:43 +0900 (Thu, 30 Jun 2016) | 4 lines

Initialize ID

* ext/cgi/escape/escape.c (accept_charset): initialize the static
  ID for theha class variable once at first.
------------------------------------------------------------------------
r55539 | hsbt | 2016-06-29 22:24:56 +0900 (Wed, 29 Jun 2016) | 1 line

* ext/psych/lib/psych_jars.rb: removed needless file required to JRuby.
------------------------------------------------------------------------
r55538 | rhe | 2016-06-29 22:21:54 +0900 (Wed, 29 Jun 2016) | 4 lines

openssl: fix for OpenSSL 1.0.0t

* ext/openssl/ossl_ocsp.c: The "reuse" behavior of d2i_ functions does
  not work well with OpenSSL 1.0.0t. So avoid it.
------------------------------------------------------------------------
r55537 | kazu | 2016-06-29 21:37:37 +0900 (Wed, 29 Jun 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55536 | naruse | 2016-06-29 15:23:38 +0900 (Wed, 29 Jun 2016) | 2 lines

* insns.def (opt_succ): optimize like r55515. (but this argument is
  consntant)
------------------------------------------------------------------------
r55535 | nobu | 2016-06-29 13:37:14 +0900 (Wed, 29 Jun 2016) | 4 lines

VC6 error

* win32/win32.c (GetSystemWindowsDirectoryW): use
  GetWindowsDirectoryW for VC6.
------------------------------------------------------------------------
r55534 | nobu | 2016-06-29 13:37:13 +0900 (Wed, 29 Jun 2016) | 5 lines

VC6 error

* random.c (int_pair_to_real_inclusive): get rid of VC6 compile
  error C2520: conversion from unsigned __int64 to double not
  implemented.
------------------------------------------------------------------------
r55533 | nobu | 2016-06-29 13:37:12 +0900 (Wed, 29 Jun 2016) | 4 lines

Use LONG_LONG

* missing/crypt.h (B64): use LONG_LONG instead of long long
  directly.
------------------------------------------------------------------------
r55532 | shugo | 2016-06-29 12:45:23 +0900 (Wed, 29 Jun 2016) | 3 lines

* test/ruby/test_refinement.rb: skip
  test_prepend_after_refine_wb_miss on ARM or MIPS.
  [ruby-core:76031] [Bug #12491]
------------------------------------------------------------------------
r55531 | nobu | 2016-06-29 08:45:55 +0900 (Wed, 29 Jun 2016) | 5 lines

Passed block symbol to proc

* proc.c (passed_block): convert passed block symbol to proc.
  based on the patch by Daisuke Sato in [ruby-dev:49695].
  [Bug #12531]
------------------------------------------------------------------------
r55530 | nobu | 2016-06-29 07:03:00 +0900 (Wed, 29 Jun 2016) | 6 lines

Octal mode in un.rb

* lib/fileutils.rb (FileUtils#symbolic_modes_to_i): revert r55524.

* lib/un.rb (install, chmod): support octal mode string.  fix up
  r55513.
------------------------------------------------------------------------
r55529 | svn | 2016-06-29 03:42:13 +0900 (Wed, 29 Jun 2016) | 1 line

* 2016-06-29
------------------------------------------------------------------------
r55528 | naruse | 2016-06-29 03:42:12 +0900 (Wed, 29 Jun 2016) | 11 lines

* bignum.c (rb_big2ulong): the old logic seems to try to avoid
  calculating `-(long)(num-1)-1` if `num` is not LONG_MIN. (Note that
  `-LONG_MIN` may be larger than LONG_MAX) But C compilers can
  optimize it into single NEG instruction.
  Therefore those two conditions can be single if-body.

* bignum.c (rb_big2long): ditto.

* bignum.c (rb_big2ull): ditto.

* bignum.c (rb_big2ll): ditto.
------------------------------------------------------------------------
r55527 | nobu | 2016-06-28 22:55:02 +0900 (Tue, 28 Jun 2016) | 4 lines

PStore::CHECKSUM_ALGO

* lib/pstore.rb (PStore::CHECKSUM_ALGO): extract the algorithm for
  checksum, instead of qualified names for each times.
------------------------------------------------------------------------
r55526 | nobu | 2016-06-28 22:29:38 +0900 (Tue, 28 Jun 2016) | 5 lines

bootstraptest/runner.rb may run on older ruby

* bootstraptest/runner.rb: do not use safe navigation operator.
  this runner may run on older ruby.  partially revert r53110
  (GH-1142 patched by @mlarraz).
------------------------------------------------------------------------
r55525 | arton | 2016-06-28 22:14:48 +0900 (Tue, 28 Jun 2016) | 4 lines

Tue Jun 28 22:09:09 2017  Akio Tajima <artonx@yahoo.co.jp>

	* lib/fileutils.rb: rescue Errno:EACCES for chown.
	  [Bug #12520]
------------------------------------------------------------------------
r55524 | nobu | 2016-06-28 21:33:28 +0900 (Tue, 28 Jun 2016) | 4 lines

Octal mode

* lib/fileutils.rb (symbolic_modes_to_i): support octal mode
  string.  fix up r55513.
------------------------------------------------------------------------
r55523 | ngoto | 2016-06-28 18:42:29 +0900 (Tue, 28 Jun 2016) | 11 lines

* ext/digest/md5/md5ossl.h: Remove excess semicolons.
  Suppress warning on Solaris with Oracle Solaris Studio 12.
  [ruby-dev:49692] [Bug #12524]
    
* ext/digest/md5/md5cc.h: ditto.
* ext/digest/sha1/sha1cc.h: ditto.
* ext/digest/sha1/sha1ossl.h: ditto.
* ext/digest/sha2/sha2cc.h: ditto.
* ext/digest/sha2/sha2ossl.h: ditto.
* ext/openssl/ossl_pkey_rsa.c: ditto.

------------------------------------------------------------------------
r55522 | nobu | 2016-06-28 16:04:13 +0900 (Tue, 28 Jun 2016) | 4 lines

Move CaseTest

* test/ruby/enc/test_case_comprehensive.rb (CaseTest): move under
  the test case not to pollute the global name space.
------------------------------------------------------------------------
r55521 | nobu | 2016-06-28 15:56:50 +0900 (Tue, 28 Jun 2016) | 6 lines

Skip unavailable tests

* test/ruby/enc/test_case_comprehensive.rb: noting to test if
  Unicode data files are available.
  [ruby-core:76160] [Bug #12433]
* test/test_unicode_normalize.rb: ditto.
------------------------------------------------------------------------
r55520 | nobu | 2016-06-28 15:20:20 +0900 (Tue, 28 Jun 2016) | 4 lines

Cache no proxy case

* lib/net/http.rb (Net::HTTP#proxy_uri): cache the case no proxy
  is used.
------------------------------------------------------------------------
r55519 | nobu | 2016-06-28 15:19:58 +0900 (Tue, 28 Jun 2016) | 4 lines

Use conditional operator

* lib/net/http.rb (Net::HTTP#proxy): use conditional operator to
  get rid of confusing ruby-mode.el.
------------------------------------------------------------------------
r55518 | naruse | 2016-06-28 13:38:32 +0900 (Tue, 28 Jun 2016) | 3 lines

Revert "Use gperf 3.0.4"

It is wrong commit.
------------------------------------------------------------------------
r55517 | nobu | 2016-06-28 09:56:31 +0900 (Tue, 28 Jun 2016) | 3 lines

Fix typo [ci skip]

* object.c (rb_mod_eqq): [DOC] Fix typo in RDoc.  [Fix GH-1393]
------------------------------------------------------------------------
r55516 | svn | 2016-06-28 03:30:16 +0900 (Tue, 28 Jun 2016) | 1 line

* 2016-06-28
------------------------------------------------------------------------
r55515 | naruse | 2016-06-28 03:30:12 +0900 (Tue, 28 Jun 2016) | 12 lines

* insns.def (opt_plus): use `- 1` instead of `& (~1)` to allow
  compilers to use x86 LEA instruction (3 operand).
  Even if 3 operand LEA's latency is 3 cycle after SandyBridge,
  it reduces code size and can be faster because of super scalar.

* insns.def (opt_plus): calculate and use rb_int2big.
  On positive Fixnum overflow, `recv - 1 + obj` doesn't carry
  because recv's msb and obj's msb are 0, and resulted msb is 1.
  Therefore simply rshift and cast as signed long works fine.
  On negative Fixnum overflow, it will carry because both arguments'
  msb are 1, and resulted msb is also 1.
  In this case it needs to restore carried sign bit after rshift.
------------------------------------------------------------------------
r55514 | naruse | 2016-06-28 03:30:12 +0900 (Tue, 28 Jun 2016) | 1 line

Use gperf 3.0.4
------------------------------------------------------------------------
r55513 | nobu | 2016-06-27 16:58:34 +0900 (Mon, 27 Jun 2016) | 4 lines

FileUtils#install: symbolic mode

* lib/fileutils.rb (FileUtils#install): accecpt symbolic mode, as
  well as chmod.
------------------------------------------------------------------------
r55512 | nobu | 2016-06-27 16:55:17 +0900 (Mon, 27 Jun 2016) | 4 lines

FileUtils#install: owner/group options

* lib/fileutils.rb (FileUtils#install): add owner and group
  options.
------------------------------------------------------------------------
r55511 | nobu | 2016-06-27 10:24:46 +0900 (Mon, 27 Jun 2016) | 4 lines

Refactor

* lib/fileutils.rb (FileUtils::Entry_#copy_metadata): eliminate
  common statements.
------------------------------------------------------------------------
r55510 | svn | 2016-06-27 08:56:58 +0900 (Mon, 27 Jun 2016) | 1 line

* 2016-06-27
------------------------------------------------------------------------
r55509 | nobu | 2016-06-27 08:56:57 +0900 (Mon, 27 Jun 2016) | 6 lines

Coverage on non-positive lines

* compile.c (ADD_TRACE): ignore trace instruction on non-positive
  line.
* parse.y (coverage): get rid of ArgumentError when the starting
  line number is not positive.  [ruby-core:76141] [Bug #12517]
------------------------------------------------------------------------
r55508 | nobu | 2016-06-26 19:35:53 +0900 (Sun, 26 Jun 2016) | 4 lines

Convert arguments first

* ext/win32/lib/Win32API.rb (Win32API#initialize): convert
  arguments before dlopen.
------------------------------------------------------------------------
r55507 | nobu | 2016-06-26 10:20:27 +0900 (Sun, 26 Jun 2016) | 9 lines

Explicit ".dll" suffix

* ext/win32/lib/Win32API.rb (Win32API#initialize): Cygwin
  2.5.2-1 (perhaps) seems to no longer append ".dll" suffix
  implicitly.
* ext/win32/lib/win32/resolv.rb (Win32::Resolv): ditto.  Fix the
  error reported by yamataka AT u08.itscom.net in
  [ruby-list:50339], and pointed out and patched by cerberus AT
  m3.kcn.ne.jp in [ruby-list:50341].
------------------------------------------------------------------------
r55506 | svn | 2016-06-26 09:28:14 +0900 (Sun, 26 Jun 2016) | 1 line

* 2016-06-26
------------------------------------------------------------------------
r55505 | nobu | 2016-06-26 09:28:13 +0900 (Sun, 26 Jun 2016) | 4 lines

Remove -jN option

* {cygwin,template}/GNUmakefile.in (MAKEFLAGS): remove -jN option
  from MAKEFLAGS as well as MFLAGS.
------------------------------------------------------------------------
r55504 | kazu | 2016-06-25 17:54:41 +0900 (Sat, 25 Jun 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55503 | nobu | 2016-06-25 11:32:06 +0900 (Sat, 25 Jun 2016) | 3 lines

Refine assertion

* test/openssl/test_ocsp.rb: assert_in_delta for better message.
------------------------------------------------------------------------
r55502 | rhe | 2016-06-25 10:08:15 +0900 (Sat, 25 Jun 2016) | 4 lines

openssl: ignore test failure caused by LibreSSL bug

* test/openssl/test_ocsp.rb: Ignore errors caused by bugs that exist in
  LibreSSL >= 2.3.1.
------------------------------------------------------------------------
r55501 | svn | 2016-06-25 02:33:36 +0900 (Sat, 25 Jun 2016) | 1 line

* 2016-06-25
------------------------------------------------------------------------
r55500 | nobu | 2016-06-25 02:33:35 +0900 (Sat, 25 Jun 2016) | 5 lines

No respond_to? as if the default definition

* vm_method.c (vm_respond_to): try method_missing if respond_to?
  is undefined, as if it is the default definition.
  [ruby-core:75377] [Bug #12353]
------------------------------------------------------------------------
r55499 | hsbt | 2016-06-24 18:07:22 +0900 (Fri, 24 Jun 2016) | 1 line

Fixed accidentally commit miss.
------------------------------------------------------------------------
r55498 | svn | 2016-06-24 18:06:09 +0900 (Fri, 24 Jun 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55497 | hsbt | 2016-06-24 18:06:08 +0900 (Fri, 24 Jun 2016) | 2 lines

* ext/psych/*, test/psych/*: Upate psych 2.1.0
  This version fixed [Bug #11988][ruby-core:72850]
------------------------------------------------------------------------
r55496 | nobu | 2016-06-24 14:29:28 +0900 (Fri, 24 Jun 2016) | 4 lines

Read CaseFolding.txt in binary mode

* enc/unicode/case-folding.rb (CaseFolding#load): read in binary
  mode to deal with non-ASCII charater in CaseFolding.txt.
------------------------------------------------------------------------
r55495 | hsbt | 2016-06-24 13:13:11 +0900 (Fri, 24 Jun 2016) | 4 lines

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*:
  Update rubygems 2.6.5 and 2.6.6.
  Release note of 2.6.5: https://github.com/rubygems/rubygems/commit/656f5d94dc888d78d0d00f3598a4fa37391aac80
  Release note of 2.6.6: https://github.com/rubygems/rubygems/commit/ccb9c3300c063f5b5656669972d24a10ef8afbf5
------------------------------------------------------------------------
r55494 | nobu | 2016-06-24 09:23:46 +0900 (Fri, 24 Jun 2016) | 3 lines

touch

* enc/unicode/case-folding.rb: touch the destination file.
------------------------------------------------------------------------
r55493 | svn | 2016-06-24 09:17:18 +0900 (Fri, 24 Jun 2016) | 1 line

* 2016-06-24
------------------------------------------------------------------------
r55492 | nobu | 2016-06-24 09:17:17 +0900 (Fri, 24 Jun 2016) | 9 lines

Updating casefold.h

* common.mk (lib/unicode_normalize/tables.rb): should not depend
  on Unicode data files unless ALWAYS_UPDATE_UNICODE=yes, to get
  rid of downloading Unicode data unnecessary.  [ruby-dev:49681]
* common.mk (enc/unicode/casefold.h): update Unicode files in a
  sub-make, not to let the header depend on the files always.
* enc/unicode/case-folding.rb: if gperf is not usable, assume the
  existing file is OK.
------------------------------------------------------------------------
r55491 | naruse | 2016-06-23 21:42:48 +0900 (Thu, 23 Jun 2016) | 8 lines

Revert r55486,r55488,r55489

They breaks build:
http://rubyci.s3.amazonaws.com/debian/ruby-trunk/log/20160623T123002Z.fail.html.gz

Revert "Unicode files for casefold.h"
Revert "casefold.h dependency"
Revert "Get rid of downloading Unicode data"
------------------------------------------------------------------------
r55490 | svn | 2016-06-23 14:27:36 +0900 (Thu, 23 Jun 2016) | 1 line

* 2016-06-23
------------------------------------------------------------------------
r55489 | nobu | 2016-06-23 14:27:35 +0900 (Thu, 23 Jun 2016) | 4 lines

Unicode files for casefold.h

* common.mk (enc/unicode/casefold.h): update Unicode files in a
  sub-make, not to let the header depend on the files always.
------------------------------------------------------------------------
r55488 | nobu | 2016-06-22 22:02:28 +0900 (Wed, 22 Jun 2016) | 4 lines

casefold.h dependency

* common.mk (enc/unicode/casefold.h): add dependency and update by
  incs.
------------------------------------------------------------------------
r55487 | svn | 2016-06-22 17:29:26 +0900 (Wed, 22 Jun 2016) | 1 line

* 2016-06-22
------------------------------------------------------------------------
r55486 | nobu | 2016-06-22 17:29:25 +0900 (Wed, 22 Jun 2016) | 5 lines

Get rid of downloading Unicode data

* common.mk (lib/unicode_normalize/tables.rb): should not depend
  on Unicode data files unless ALWAYS_UPDATE_UNICODE=yes, to get
  rid of downloading Unicode data unnecessary.  [ruby-dev:49681]
------------------------------------------------------------------------
r55485 | duerst | 2016-06-21 19:44:57 +0900 (Tue, 21 Jun 2016) | 3 lines

* test/ruby/enc/test_regex_casefold.rb: Add Windows-1251, KOI8-R, and
  KOI8-U to encodings; definitely removed EUC-JP.

------------------------------------------------------------------------
r55484 | nobu | 2016-06-21 19:32:26 +0900 (Tue, 21 Jun 2016) | 6 lines

Multiple values X-Forwarded-Proto in webrick

* lib/webrick/httprequest.rb (setup_forwarded_info): Use the first
  value in X-Forwarded-Proto, if header contains multiple comma
  separated values.  Some middlewares may add these values to the
  list, not replacing.  [Fix GH-1386]
------------------------------------------------------------------------
r55483 | nobu | 2016-06-21 17:19:59 +0900 (Tue, 21 Jun 2016) | 5 lines

CASEMAP_DEBUG [ci skip]

* string.c (rb_str_casemap, rb_str_ascii_casemap): move
  debug/tuning messages under a preprocessor condition,
  CASEMAP_DEBUG.
------------------------------------------------------------------------
r55482 | duerst | 2016-06-21 17:17:50 +0900 (Tue, 21 Jun 2016) | 8 lines

* test/ruby/test_io.rb: Skip test_readpartial_with_not_empty_buffer,
  test_read_buffer_error, test_read_unlocktmp_ensure,
  test_readpartial_unlocktmp_ensure, and
  test_sysread_unlocktmp_ensure on cygwin,
  because these tests repeatedly hang. This makes test_io.rb
  complete in finite time on cygwin.
* ChangeLog: Fix test_in.rb -> test_io.rb (two instances).

------------------------------------------------------------------------
r55481 | nobu | 2016-06-21 16:38:16 +0900 (Tue, 21 Jun 2016) | 5 lines

Fix garbage allocation

* string.c (rb_str_casemap): do not put code with side effects
  inside RSTRING_PTR() macro which evaluates the argument multiple
  times.
------------------------------------------------------------------------
r55480 | naruse | 2016-06-21 16:14:05 +0900 (Tue, 21 Jun 2016) | 1 line

* string.c (rb_str_casemap): fix memory leak.
------------------------------------------------------------------------
r55479 | naruse | 2016-06-21 16:14:04 +0900 (Tue, 21 Jun 2016) | 1 line

* string.c (rb_str_casemap): int is too small for string size.
------------------------------------------------------------------------
r55478 | naruse | 2016-06-21 16:14:03 +0900 (Tue, 21 Jun 2016) | 19 lines

It takes still too many memory...

/usr/bin/time -l make RUBYOPT=-w TESTS='-v ruby/enc/test_case_comprehensive.rb' test-all
ruby -v: ruby 2.4.0dev (2016-06-21 trunk 55473) [x86_64-freebsd10.3]
       27.74 real        27.57 user         0.16 sys
    115308  maximum resident set size
         5  average shared memory size
         4  average unshared data size
       128  average unshared stack size
     28443  page reclaims
         0  page faults
         0  swaps
         2  block input operations
         0  block output operations
         0  messages sent
         0  messages received
         0  signals received
        93  voluntary context switches
      1123  involuntary context switches
------------------------------------------------------------------------
r55477 | duerst | 2016-06-21 15:42:27 +0900 (Tue, 21 Jun 2016) | 3 lines

* test/ruby/test_in.rb: Skip test_read_buffer_error on cygwin,
  because this test repeatedly hangs.

------------------------------------------------------------------------
r55476 | duerst | 2016-06-21 15:35:24 +0900 (Tue, 21 Jun 2016) | 3 lines

* LEGAL: Added filenames and copyrights for some files in
  enc/trans/JIS.

------------------------------------------------------------------------
r55475 | naruse | 2016-06-21 04:01:37 +0900 (Tue, 21 Jun 2016) | 1 line

Optimize to speed up
------------------------------------------------------------------------
r55474 | naruse | 2016-06-21 03:27:45 +0900 (Tue, 21 Jun 2016) | 1 line

Don't cache simple data to reduce memory usage
------------------------------------------------------------------------
r55473 | nobu | 2016-06-21 00:56:49 +0900 (Tue, 21 Jun 2016) | 5 lines

Fix calling convention

* win32/win32.c (get_special_folder): fix calling convention of
  SHGetPathFromIDListEx, which should be WINAPI.  pointed out by
  @arton at http://twitter.com/arton/status/744884064277016576
------------------------------------------------------------------------
r55472 | svn | 2016-06-21 00:22:05 +0900 (Tue, 21 Jun 2016) | 1 line

* 2016-06-21
------------------------------------------------------------------------
r55471 | nobu | 2016-06-21 00:22:04 +0900 (Tue, 21 Jun 2016) | 5 lines

RUBY_USE_SETJMPEX

* configure.in, include/ruby/defines.h (RUBY_USE_SETJMPEX):
  include setjmpex.h only when using setjmpex() for RUBY_SETJMP.
  the header of mingw32 overrides setjmp() by setjmpex().
------------------------------------------------------------------------
r55470 | nobu | 2016-06-20 20:00:17 +0900 (Mon, 20 Jun 2016) | 7 lines

Name USE_NAME_ON_FS constants

* dir.c (USE_NAME_ON_FS): name constants.
  * USE_NAME_ON_FS_REAL_BASENAME: platform dependent APIs to get
    real basenames.
  * USE_NAME_ON_FS_BY_FNMATCH: select the matching basename by
    fnmatch.
------------------------------------------------------------------------
r55469 | nobu | 2016-06-20 20:00:02 +0900 (Mon, 20 Jun 2016) | 1 line

tabify
------------------------------------------------------------------------
r55468 | duerst | 2016-06-20 18:39:31 +0900 (Mon, 20 Jun 2016) | 4 lines

* test/ruby/test_in.rb: Skip test_open_fifo_does_not_block_other_threads
         on cygwin. Fifos seem to work okay in cygwin, but this test repeatedly
  hangs.

------------------------------------------------------------------------
r55467 | nobu | 2016-06-20 17:40:11 +0900 (Mon, 20 Jun 2016) | 4 lines

Update cygwin/GNUmakefile.in

* cygwin/GNUmakefile.in: remove -jN option from submake, and
  include defs/gmake.mk to serialize test targets.
------------------------------------------------------------------------
r55465 | akr | 2016-06-20 16:35:05 +0900 (Mon, 20 Jun 2016) | 2 lines

update description about rb_cFixnum and rb_cBignum.

------------------------------------------------------------------------
r55462 | shugo | 2016-06-20 13:37:19 +0900 (Mon, 20 Jun 2016) | 4 lines

* vm.c (invoke_bmethod, invoke_block_from_c_0): revert r52104
  partially to avoid "self has wrong type to call super in this
  context" errors.
  [ruby-core:72724] [Bug #11954]
------------------------------------------------------------------------
r55461 | svn | 2016-06-20 12:54:23 +0900 (Mon, 20 Jun 2016) | 1 line

* 2016-06-20
------------------------------------------------------------------------
r55460 | rhe | 2016-06-20 12:54:22 +0900 (Mon, 20 Jun 2016) | 6 lines

rubygems: fix test for OpenSSL 1.1.0

* test/rubygems/test_gem_remote_fetcher.rb: OpenSSL::PKey::DH#priv_key=
  is not defined when ext/openssl is built with OpenSSL 1.1.0.
  https://github.com/rubygems/rubygems/pull/1648
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55457 | rhe | 2016-06-19 21:26:27 +0900 (Sun, 19 Jun 2016) | 27 lines

openssl: add OpenSSL::OCSP::SingleResponse

* ext/openssl/ossl_ocsp.c: Add OCSP::SingleResponse that represents an
  OCSP SingleResponse structure. Also add two new methods #responses
  and #find_response to OCSP::BasicResponse. A BasicResponse has one or
  more SingleResponse. We have OCSP::BasicResponse#status that returns
  them as an array of arrays, each containing the content of a
  SingleResponse, but this is not useful. When validating an OCSP
  response, we need to look into the each SingleResponse and check their
  validity but it is not simple. For example, when validating for a
  certificate 'cert', the code would be like:

    # certid_target is an OpenSSL::OCSP::CertificateId for cert
    basic = res.basic
    result = basic.status.any? do |ary|
      ary[0].cmp(certid_target) &&
        ary[4] <= Time.now && (!ary[5] || Time.now <= ary[5])
    end

  Adding OCSP::SingleResponse at the same time allows exposing
  OCSP_check_validity(). With this, the code above can be rewritten as:

    basic = res.basic
    single = basic.find_response(certid_target)
    result = single.check_validity

* test/openssl/test_ocsp.rb: Test this.
------------------------------------------------------------------------
r55456 | rhe | 2016-06-19 18:42:30 +0900 (Sun, 19 Jun 2016) | 14 lines

openssl: allow passing absolute times in OCSP::BasicResponse#add_status

* ext/openssl/ossl_ocsp.c (ossl_ocspbres_add_status): Allow specifying
  the times (thisUpdate, nextUpdate and revocationTime) with Time
  objects. Currently they accepts only relative seconds from the current
  time. This is inconvenience, especially for revocationTime. When
  Integer is passed, they are still treated as relative times. Since the
  type check is currently done with rb_Integer(), this is a slightly
  incompatible change. Hope no one passes a relative time as String or
  Time object...
  Also, allow passing nil as nextUpdate. It is optional.

* ext/openssl/ruby_missing.h: Define RB_INTEGER_TYPE_P() if not defined.
  openssl gem will be released before Ruby 2.4.0.
------------------------------------------------------------------------
r55455 | rhe | 2016-06-19 18:42:29 +0900 (Sun, 19 Jun 2016) | 7 lines

openssl: implement initialize_copy for OpenSSL::OCSP::*

* ext/openssl/ossl_ocsp.c: Implement OCSP::{CertificateId,Request,
  BasicResponse,Response}#initialize_copy.
  [ruby-core:75504] [Bug #12381]

* test/openssl/test_ocsp.rb: Test them.
------------------------------------------------------------------------
r55454 | rhe | 2016-06-19 18:29:59 +0900 (Sun, 19 Jun 2016) | 11 lines

openssl: implement initialize_copy method for PKey classes

* ext/openssl/ossl_pkey_dh.c, ext/openssl/ossl_pkey_dsa.c,
  ext/openssl/ossl_pkey_ec.c, ext/openssl/ossl_pkey_rsa.c: Implement
  initialize_copy method for OpenSSL::PKey::*.
  [ruby-core:75504] [Bug #12381]

* test/openssl/test_pkey_dh.rb, test/openssl/test_pkey_dsa.rb,
  test/openssl/test_pkey_ec.rb, test/openssl/test_pkey_rsa.rb: Test they
  actually copy the OpenSSL objects, and modifications to cloned object
  don't affect the original object.
------------------------------------------------------------------------
r55453 | duerst | 2016-06-19 16:55:25 +0900 (Sun, 19 Jun 2016) | 6 lines

* test/ruby/test_dir_m17n.rb: Skip tests with non-UTF-8 encodings
  on cygwin. Cygwin can use the Unicode PUA (private use area) to store
  bytes from non-UTF-8 filenames (see
  https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-specialchars),
  but we are not supporting this. [Bug #12443]

------------------------------------------------------------------------
r55452 | svn | 2016-06-19 15:01:26 +0900 (Sun, 19 Jun 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55451 | duerst | 2016-06-19 15:01:25 +0900 (Sun, 19 Jun 2016) | 3 lines

* localeinit.c: Fix filesystem encoding for cygwin to UTF-8 (see
  https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-unusual)

------------------------------------------------------------------------
r55450 | rhe | 2016-06-19 14:31:28 +0900 (Sun, 19 Jun 2016) | 7 lines

openssl: add 'const's required in OpenSSL master

* ext/openssl/ossl_pkey.h, ext/openssl/ossl_pkey_dh.c,
  ext/openssl/ossl_pkey_dsa.c, ext/openssl/ossl_pkey_rsa.c: A few days
  ago, OpenSSL changed {DH,DSA,RSA}_get0_*() to take const BIGNUM **.
  https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=fd809cfdbd6e32b6b67b68c59f6d55fbed7a9327
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55449 | nobu | 2016-06-19 11:19:45 +0900 (Sun, 19 Jun 2016) | 4 lines

variable.c: consider length

* variable.c (rb_path_to_class): consider the string length
  instead of a terminator.
------------------------------------------------------------------------
r55448 | nobu | 2016-06-19 10:54:42 +0900 (Sun, 19 Jun 2016) | 4 lines

variable.c: rb_const_search

* variable.c (rb_path_to_class): search the constant at once
  instead of checking if defined and then getting it.
------------------------------------------------------------------------
r55447 | svn | 2016-06-19 10:48:27 +0900 (Sun, 19 Jun 2016) | 1 line

* 2016-06-19
------------------------------------------------------------------------
r55446 | nobu | 2016-06-19 10:48:27 +0900 (Sun, 19 Jun 2016) | 4 lines

Normalization test iff UTF-8 file system

* test/ruby/test_file_exhaustive.rb (test_expand_path_compose):
  normalization is meaningless unless file system encoding is UTF.
------------------------------------------------------------------------
r55444 | rhe | 2016-06-18 18:10:19 +0900 (Sat, 18 Jun 2016) | 19 lines

openssl: avoid test crash on Ubuntu 16.04

* test/openssl/test_pkey_ec.rb (setup): Don't call EC#generate_key! for
  Oakley-* curves. This causes an odd error on Ubuntu 16.04 with openssl
  1.0.2g-1ubuntu4.1.

    begin
      OpenSSL::PKey::EC.new("Oakley-EC2N-4").generate_key
    rescue
      p $!
    end
    OpenSSL::PKey::RSA.new(512)

  This sometimes causes:

    #<OpenSSL::PKey::ECError: EC_KEY_generate_key: pairwise test failed>
    fips.c(139): OpenSSL internal error, assertion failed: FATAL FIPS SELFTEST FAILURE

  [ruby-dev:49670] [Bug #12504]
------------------------------------------------------------------------
r55443 | hsbt | 2016-06-18 14:11:57 +0900 (Sat, 18 Jun 2016) | 2 lines

* test/rubygems/test_gem_installer.rb: Fixed broken test with extension
  build. https://github.com/rubygems/rubygems/pull/1645
------------------------------------------------------------------------
r55442 | svn | 2016-06-18 14:11:57 +0900 (Sat, 18 Jun 2016) | 1 line

* properties.
------------------------------------------------------------------------
r55441 | hsbt | 2016-06-18 14:11:55 +0900 (Sat, 18 Jun 2016) | 3 lines

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems
  HEAD(2c6d256). It contains to update vendored Molinillo to 0.5.0.
  https://github.com/rubygems/rubygems/pull/1638
------------------------------------------------------------------------
r55440 | nobu | 2016-06-18 13:50:14 +0900 (Sat, 18 Jun 2016) | 4 lines

Refine test of r55432

* test/stringio/test_stringio.rb (test_overflow): could occur only
  on sizeof(long) >= sizeof(void*).
------------------------------------------------------------------------
r55439 | nobu | 2016-06-18 13:40:15 +0900 (Sat, 18 Jun 2016) | 5 lines

Refine test of r55432

* test/stringio/test_stringio.rb (test_overflow): refine the
  conditinon, try to allocate strings until the buffer is located
  in higher half address.
------------------------------------------------------------------------
r55438 | nobu | 2016-06-18 11:25:28 +0900 (Sat, 18 Jun 2016) | 4 lines

Integer conversion

* ext/bigdecimal/bigdecimal.c: use NUM2INT and NUM2USHORT to
  reject nil.
------------------------------------------------------------------------
r55437 | nobu | 2016-06-18 11:25:27 +0900 (Sat, 18 Jun 2016) | 4 lines

Suppress false warnings

* vsnprintf.c (BSD_vfprintf): make PRI_EXTRA_MARK_LEN an explicit
  int to suppress type-limits warnings by old gcc.
------------------------------------------------------------------------
r55436 | nobu | 2016-06-18 10:50:49 +0900 (Sat, 18 Jun 2016) | 4 lines

Suppress false warnings

* vm_eval.c (rb_eval_cmd): refactor to share common code, and
  suppress false maybe-uninitialized warnings by old gcc.
------------------------------------------------------------------------
r55435 | nobu | 2016-06-18 10:50:46 +0900 (Sat, 18 Jun 2016) | 4 lines

Unnecessary volatile

* vm_eval.c (rb_yield_splat, eval_string_with_cref): remove
  unnecessary volatile outside PUSH_TAG/POP_TAG.
------------------------------------------------------------------------
r55434 | nobu | 2016-06-18 10:13:39 +0900 (Sat, 18 Jun 2016) | 6 lines

Fix static-linked-ext encodings

* common.mk (build-ext), ext/extmk.rb: use variable EXTENCS
  different than ENCOBJS, to get rid of circular dependency.
  build libencs when linking encodings statically.
  [ruby-core:75618] [Bug #12401]
------------------------------------------------------------------------
r55433 | svn | 2016-06-18 08:52:49 +0900 (Sat, 18 Jun 2016) | 1 line

* 2016-06-18
------------------------------------------------------------------------
r55432 | nobu | 2016-06-18 08:52:48 +0900 (Sat, 18 Jun 2016) | 4 lines

stringio.c: fix index overflow

* ext/stringio/stringio.c (strio_getline): fix pointer index
  overflow.  reported by Guido Vranken <guido AT guidovranken.nl>.
------------------------------------------------------------------------
r55431 | svn | 2016-06-17 17:45:06 +0900 (Fri, 17 Jun 2016) | 1 line

* 2016-06-17
------------------------------------------------------------------------
r55430 | nobu | 2016-06-17 17:45:05 +0900 (Fri, 17 Jun 2016) | 6 lines

Unnecessary checks

* ext/bigdecimal/bigdecimal.c: FIX2INT and FIX2UINT imply the
  check for Fixnum.

* ext/zlib/zlib.c: ditto.
------------------------------------------------------------------------
r55429 | nobu | 2016-06-16 16:35:37 +0900 (Thu, 16 Jun 2016) | 4 lines

prevent rb_cObject from GC

* class.c (Init_class_hierarchy): prevent rb_cObject which is the
  class tree root, from GC.  [ruby-dev:49666] [Bug #12492]
------------------------------------------------------------------------
r55428 | nobu | 2016-06-16 12:17:54 +0900 (Thu, 16 Jun 2016) | 4 lines

string.c: adjust buffer size

* string.c (tr_trans): adjust buffer size by processed and rest
  lengths, instead of doubling repeatedly.
------------------------------------------------------------------------
r55427 | nobu | 2016-06-16 11:15:27 +0900 (Thu, 16 Jun 2016) | 4 lines

string.c: fix terminator

* string.c (tr_trans): consider terminator length and fix heap
  overflow.  reported by Guido Vranken <guido AT guidovranken.nl>.
------------------------------------------------------------------------
r55424 | svn | 2016-06-16 00:02:47 +0900 (Thu, 16 Jun 2016) | 1 line

* 2016-06-16
------------------------------------------------------------------------
r55423 | rhe | 2016-06-16 00:02:46 +0900 (Thu, 16 Jun 2016) | 7 lines

openssl: refactor OpenSSL::OCSP::*#verify

* ext/openssl/ossl_ocsp.c (ossl_ocspreq_verify, ossl_ocspbres_verify):
  Use ossl_clear_error() so that they don't print warnings to stderr and
  leak errors in the OpenSSL error queue. Also, check the return value
  of OCSP_*_verify() correctly. They can return -1 on verification
  failure.
------------------------------------------------------------------------
r55422 | rhe | 2016-06-15 19:52:37 +0900 (Wed, 15 Jun 2016) | 9 lines

openssl: allow specifying hash algorithm in OCSP::*#sign

* ext/openssl/ossl_ocsp.c (ossl_ocspreq_sign, ossl_ocspbres_sign): Allow
  specifying hash algorithm used in signing. They are hard coded to use
  SHA-1.
  Based on a patch provided by Tim Shirley <tidoublemy@gmail.com>.
  [ruby-core:70915] [Feature #11552] [GH ruby/openssl#28]

* test/openssl/test_ocsp.rb: Test sign-verify works.
------------------------------------------------------------------------
r55421 | nobu | 2016-06-15 15:26:52 +0900 (Wed, 15 Jun 2016) | 4 lines

date_core.c: remove assert

* ext/date/date_core.c (decode_jd): do not assert type of
  argument.  just try to convert.
------------------------------------------------------------------------
r55420 | nobu | 2016-06-15 15:26:51 +0900 (Wed, 15 Jun 2016) | 4 lines

date_core.c: missing argument

* ext/date/date_core.c (d_lite_initialize): fix missing argument
  for write-barrier.
------------------------------------------------------------------------
r55419 | nobu | 2016-06-15 10:44:43 +0900 (Wed, 15 Jun 2016) | 4 lines

thread.c: fix thread_id formatting

* thread.c (debug_deadlock_check): fix format specifier for
  thread_id, which may not be a pointer, nor even a scalar value.
------------------------------------------------------------------------
r55418 | nobu | 2016-06-15 01:46:18 +0900 (Wed, 15 Jun 2016) | 4 lines

numeric.c: fix doc of Integer#digits [ci skip]

* numeric.c: [DOC] fix rdoc directive, and an example of negative
  value.  [ruby-core:76025] [Bug #12487]
------------------------------------------------------------------------
r55417 | nobu | 2016-06-15 01:44:45 +0900 (Wed, 15 Jun 2016) | 5 lines

Unicode Version in RbConfig

* tool/mkconfig.rb: provide Unicode Version information as
  RbConfig::CONFIG['UNICODE_VERSION'].
  [ruby-core:75845] [Feature #12460]
------------------------------------------------------------------------
r55416 | svn | 2016-06-15 00:01:38 +0900 (Wed, 15 Jun 2016) | 1 line

* 2016-06-15
------------------------------------------------------------------------
r55415 | kazu | 2016-06-15 00:01:37 +0900 (Wed, 15 Jun 2016) | 5 lines

use \A and \z instead of ^ and $ in regexp

* test/ruby/enc/test_case_comprehensive.rb
  (TestComprehensiveCaseFold::read_data): use \A and \z instead of
  ^ and $ in regexp.
------------------------------------------------------------------------
r55414 | kazu | 2016-06-14 23:59:01 +0900 (Tue, 14 Jun 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55413 | nobu | 2016-06-14 23:43:02 +0900 (Tue, 14 Jun 2016) | 5 lines

remove backward macros

* include/ruby/backward.h (rb_cFixnum, rb_cBignum): remove the
  backward compatibility macros, to fail incompatible extension
  libraries earily.  [Bug #12427]
------------------------------------------------------------------------
r55412 | nobu | 2016-06-14 22:22:09 +0900 (Tue, 14 Jun 2016) | 4 lines

strftime.c: limit result size

* strftime.c (rb_strftime_with_timespec): limit the result string
  size by the format length, to get rid of unlimited memory use.
------------------------------------------------------------------------
r55411 | rhe | 2016-06-14 22:12:20 +0900 (Tue, 14 Jun 2016) | 10 lines

openssl: add some accessor methods for OCSP::CertificateId

* ext/openssl/ossl_ocsp.c (ossl_ocspcid_get_issuer_name_hash,
  ossl_ocspcid_get_issuer_key_hash, ossl_ocspcid_get_hash_algorithm):
  Add accessor methods OCSP::CertificateId#issuer_name_hash,
  #issuer_key_hash, #hash_algorithm.
  Based on a patch provided by Paul Kehrer <paul.l.kehrer@gmail.com>.
  [ruby-core:48062] [Feature #7181]

* test/openssl/test_ocsp.rb: Test these new methods.
------------------------------------------------------------------------
r55410 | nobu | 2016-06-14 22:07:27 +0900 (Tue, 14 Jun 2016) | 5 lines

date_strftime.c: check precision

* ext/date/date_strftime.c (date_strftime_with_tmx): reject too
  large precision to get rid of buffer overflow.
  reported by Guido Vranken <guido AT guidovranken.nl>.
------------------------------------------------------------------------
r55409 | rhe | 2016-06-14 21:40:55 +0900 (Tue, 14 Jun 2016) | 16 lines

openssl: add missing #to_der to OCSP::{CertificateId,BasicResponse}

* ext/openssl/ossl_ocsp.c (ossl_ocspbres_to_der, ossl_ocspcid_to_der):
  Implement #to_der methods for OCSP::BasicResponse and
  OCSP::CertificateId.

  (ossl_ocspreq_initialize, ossl_ocspres_initialize): Use GetOCSP*()
  instead of raw DATA_PTR().

  (ossl_ocspbres_initialize, ossl_ocspcid_initialize): Allow
  initializing from DER string.

  (Init_ossl_ocsp): Define new #to_der methods.

* test/openssl/test_ocsp.rb: Test these changes. Also add missing tests
  for OCSP::{Response,Request}#to_der.
------------------------------------------------------------------------
r55408 | rhe | 2016-06-14 21:35:28 +0900 (Tue, 14 Jun 2016) | 5 lines

openssl: fix acesssor functions for RSA and DH in openssl_missing.h

* ext/openssl/openssl_missing.h (DH_set0_pqg, RSA_set0_key):
  DH_set0_pqg() allows 'q' to be NULL. Fix a typo in RSA_set0_key().
  Fixes r55285.  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55407 | svn | 2016-06-14 10:20:08 +0900 (Tue, 14 Jun 2016) | 1 line

* 2016-06-14
------------------------------------------------------------------------
r55406 | mrkn | 2016-06-14 10:20:07 +0900 (Tue, 14 Jun 2016) | 1 line

NEWS: describe Integer#digits [ci skip]
------------------------------------------------------------------------
r55398 | naruse | 2016-06-13 21:46:44 +0900 (Mon, 13 Jun 2016) | 1 line

fix test of r55397
------------------------------------------------------------------------
r55397 | naruse | 2016-06-13 21:34:06 +0900 (Mon, 13 Jun 2016) | 5 lines

* thread.c (debug_deadlock_check): show thread lock dependency and
  backtrace [Feature #8214] [ruby-dev:47217]

* thread.c (thread_status_name): show "sleep_forever" instead of
  "sleep" if called from inspect.
------------------------------------------------------------------------
r55396 | nobu | 2016-06-13 20:50:09 +0900 (Mon, 13 Jun 2016) | 5 lines

parse.y: no named capture conflict warnings

* parse.y (reg_named_capture_assign_iter): remove named capture
  conflict warnings.  it is just annoying rather than useful.
  [ruby-core:75416] [Bug #12359]
------------------------------------------------------------------------
r55395 | mrkn | 2016-06-13 20:43:54 +0900 (Mon, 13 Jun 2016) | 1 line

numeric.c: Add Integer#digits [Feature #12447] [ruby-core:75799]
------------------------------------------------------------------------
r55394 | nobu | 2016-06-13 20:34:56 +0900 (Mon, 13 Jun 2016) | 8 lines

Integer unification macro

* include/ruby/ruby.h (RUBY_INTEGER_UNIFICATION): macro to tell if
  Integer is integrated.  [ruby-core:75718][Bug #12427]
* include/ruby/backward.h, internal.h (rb_cFixnum, rb_cBignum):
  fallback to rb_cInteger.
* bignum.c, numeric.c, ext/json/generator/generator.{c,h}: use the
  macro.
------------------------------------------------------------------------
r55393 | svn | 2016-06-13 16:58:58 +0900 (Mon, 13 Jun 2016) | 1 line

* 2016-06-13
------------------------------------------------------------------------
r55392 | duerst | 2016-06-13 16:58:57 +0900 (Mon, 13 Jun 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb: Add tests for full Unicode
  swapcase.

------------------------------------------------------------------------
r55391 | nobu | 2016-06-12 23:20:50 +0900 (Sun, 12 Jun 2016) | 4 lines

dump to stdout

* test/objspace/test_objspace.rb (test_dump_all): dump to stdout
  instead of a string, get rid of hung up.
------------------------------------------------------------------------
r55390 | nobu | 2016-06-12 18:45:09 +0900 (Sun, 12 Jun 2016) | 4 lines

File.expand_path compose test only on OS X

* test/ruby/test_file_exhaustive.rb (test_expand_path_compose):
  valid only on OS X.
------------------------------------------------------------------------
r55389 | duerst | 2016-06-12 14:48:04 +0900 (Sun, 12 Jun 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb: Add tests for ASCII-only
  swapcase; store calculated values in hashes.

------------------------------------------------------------------------
r55388 | rhe | 2016-06-12 14:06:18 +0900 (Sun, 12 Jun 2016) | 14 lines

openssl: support non AES-GCM AEAD ciphers in OpenSSL::Cipher

* ext/openssl/ossl_cipher.c (ossl_cipher_get_auth_tag,
  ossl_cipher_set_auth_tag): Check if the cipher flags retrieved by
  EVP_CIPHER_CTX_flags() includes EVP_CIPH_FLAG_AEAD_CIPHER to see if
  the cipher supports AEAD. AES-GCM was the only supported in OpenSSL
  1.0.1.

  (Init_ossl_cipher): Fix doc; OpenSSL::Cipher::AES.new(128, :GCM) can't
  work.

* ext/openssl/openssl_missing.h: Define EVP_CTRL_AEAD_{GET,SET}_TAG if
  missing. They are added in OpenSSL 1.1.0, and have the same value as
  EVP_CTRL_GCM_{GET,SET}_TAG and EVP_CTRL_CCM_{GET,SET}_TAG.
------------------------------------------------------------------------
r55387 | rhe | 2016-06-12 13:48:10 +0900 (Sun, 12 Jun 2016) | 9 lines

openssl: avoid test failure in test_engine.rb

* test/openssl/test_engine.rb (test_openssl_engine_builtin,
  test_openssl_engine_by_id_string): Skip test if 'openssl' engine is
  already loaded. And test the number increased by Engine.load{_by_id,},
  not the total count of loaded engines. Previously, we called
  OpenSSL::Engine.cleanup every time running a test case, but we no
  longer can do it.
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55386 | svn | 2016-06-12 09:24:37 +0900 (Sun, 12 Jun 2016) | 1 line

* 2016-06-12
------------------------------------------------------------------------
r55385 | nobu | 2016-06-12 09:24:36 +0900 (Sun, 12 Jun 2016) | 5 lines

file.c: normalize cwd

* file.c (append_fspath): normalize directory name to be appended
  on OS X.  [ruby-core:75957] [Ruby trunk Bug#12483]
  https://github.com/rails/rails/issues/25303#issuecomment-224834804
------------------------------------------------------------------------
r55381 | usa | 2016-06-11 23:08:50 +0900 (Sat, 11 Jun 2016) | 3 lines

* lib/forwardable.rb (_delegator_method): get rid of a warning which
  causes test failures introduced at r55376.

------------------------------------------------------------------------
r55380 | hsbt | 2016-06-11 18:38:04 +0900 (Sat, 11 Jun 2016) | 2 lines

* ext/json/lib/*.rb: Removed some comments. Because these are unnecessary
  class description. [ci skip][Bug #12255][ruby-core:74835]
------------------------------------------------------------------------
r55379 | nobu | 2016-06-11 15:19:40 +0900 (Sat, 11 Jun 2016) | 4 lines

Remove dead link [ci skip]

* lib/net/smtp.rb: [DOC] Remove dead link on documentation for
  Japanese of SMTP.  [Fix GH-1380]
------------------------------------------------------------------------
r55378 | nobu | 2016-06-11 15:02:46 +0900 (Sat, 11 Jun 2016) | 4 lines

Fix typo in string.c [ci skip]

* string.c (rb_str_oct): [DOC] fix typo, hornored -> honored.
  [Fix GH-1379]
------------------------------------------------------------------------
r55377 | nobu | 2016-06-11 14:04:22 +0900 (Sat, 11 Jun 2016) | 3 lines

ObjectSpace.dump_all: valid JSON

* ext/objspace/objspace_dump.c: generate valid JSON for dump_all.
------------------------------------------------------------------------
r55376 | nobu | 2016-06-11 13:52:35 +0900 (Sat, 11 Jun 2016) | 4 lines

forwardable.rb: optimize awy __send__

* lib/forwardable.rb (_delegator_method): remove __send__ call if
  possible, so that more optimizations will be enabled.
------------------------------------------------------------------------
r55375 | nobu | 2016-06-11 11:24:38 +0900 (Sat, 11 Jun 2016) | 3 lines

iso_8859.h: SHARP_s

* enc/iso_8859.h (SHARP_s): name frequently used codepoint.
------------------------------------------------------------------------
r55374 | duerst | 2016-06-11 09:58:49 +0900 (Sat, 11 Jun 2016) | 2 lines

* enc/iso_8859_1.c: Revert to older version of code.

------------------------------------------------------------------------
r55373 | duerst | 2016-06-11 09:46:21 +0900 (Sat, 11 Jun 2016) | 4 lines

* enc/iso_8859_1.c: Implement non-ASCII case mapping.
* test/ruby/enc/test_case_comprehensive.rb: Tests for above.
* string.c: Add iso-8859-1 to supported encodings.

------------------------------------------------------------------------
r55372 | nobu | 2016-06-11 09:31:30 +0900 (Sat, 11 Jun 2016) | 6 lines

forwardable.rb: backtrace

* lib/forwardable.rb (_delegator_method): leave the backtrace
  untouched during accessor.  forwardable.rb does not appear in
  the backtrace during delegated method because of tail-call
  optimization.
------------------------------------------------------------------------
r55371 | ngoto | 2016-06-11 01:47:05 +0900 (Sat, 11 Jun 2016) | 4 lines

* include/ruby/defines.h (GCC_VERSION_SINCE): Fix logic error by
  adding parentheses. Fix failures of TestMkmf::TestConvertible
  with GCC 3.4.3 on Solaris 10. [Bug #12479] [ruby-dev:49660]

------------------------------------------------------------------------
r55370 | svn | 2016-06-11 01:01:25 +0900 (Sat, 11 Jun 2016) | 1 line

* 2016-06-11
------------------------------------------------------------------------
r55369 | nobu | 2016-06-11 01:01:25 +0900 (Sat, 11 Jun 2016) | 3 lines

test_forwardable.rb: operators

* test/test_forwardable.rb: add tests for operators.
------------------------------------------------------------------------
r55368 | nobu | 2016-06-10 22:44:05 +0900 (Fri, 10 Jun 2016) | 1 line

forwardable.rb: nodoc _delegator_method [ci skip]
------------------------------------------------------------------------
r55366 | nobu | 2016-06-10 21:54:25 +0900 (Fri, 10 Jun 2016) | 5 lines

forwardable.rb: fix for non-module objects

* lib/forwardable.rb (Forwardable._delegator_method): extract
  method generator and deal with non-module objects.
  [ruby-dev:49656] [Bug #12478]
------------------------------------------------------------------------
r55361 | duerst | 2016-06-10 17:35:17 +0900 (Fri, 10 Jun 2016) | 3 lines

* string.c: Special-case :ascii option in rb_str_capitalize_bang and
  rb_str_swapcase_bang.

------------------------------------------------------------------------
r55359 | duerst | 2016-06-10 17:12:28 +0900 (Fri, 10 Jun 2016) | 2 lines

* string.c: Special-case :ascii option in rb_str_upcase_bang (retry).

------------------------------------------------------------------------
r55346 | svn | 2016-06-10 14:48:39 +0900 (Fri, 10 Jun 2016) | 1 line

* 2016-06-10
------------------------------------------------------------------------
r55345 | nobu | 2016-06-10 14:48:38 +0900 (Fri, 10 Jun 2016) | 6 lines

hash.c: ensure NUL-terminated for ENV

* hash.c (get_env_cstr): ensure NUL-terminated.
  [ruby-dev:49655] [Bug #12475]
* string.c (rb_str_fill_terminator): return the pointer to the
  NUL-terminated content.
------------------------------------------------------------------------
r55344 | rhe | 2016-06-09 21:42:08 +0900 (Thu, 09 Jun 2016) | 11 lines

openssl: use ASN1_ENUMERATED_to_BN() if needed

* ext/openssl/ossl_asn1.c (asn1integer_to_num): Use
  ASN1_ENUMERATED_to_BN() to convert an ASN1_ENUMERATED to a BN.
  Starting from OpenSSL 1.1.0, ASN1_INTEGER_to_BN() rejects
  non-ASN1_INTEGER objects. The format of INTEGER and ENUMERATED are
  almost identical so they behaved in the same way in OpenSSL <= 1.0.2.
  [ruby-core:75225] [Feature #12324]

* test/openssl/test_asn1.rb (test_decode_enumerated): Test that it
  works.
------------------------------------------------------------------------
r55343 | kazu | 2016-06-09 21:10:50 +0900 (Thu, 09 Jun 2016) | 1 line

* tool/ifchange: fix timestamp error when target without directory.
------------------------------------------------------------------------
r55342 | rhe | 2016-06-09 19:46:46 +0900 (Thu, 09 Jun 2016) | 11 lines

openssl: fix build with OPENSSL_NO_EC

* ext/openssl/ossl_ssl.c: Add define guards for OPENSSL_NO_EC.
  SSL_CTX_set_ecdh_auto() is defined even when ECDH is disabled in
  OpenSSL's configuration. This fixes r55214.

* test/openssl/test_pair.rb (test_ecdh_curves): Skip if the OpenSSL does
  not support ECDH.

* test/openssl/utils.rb (start_server): Ignore error in
  SSLContext#ecdh_curves=.
------------------------------------------------------------------------
r55341 | nobu | 2016-06-09 18:12:44 +0900 (Thu, 09 Jun 2016) | 4 lines

Makefile.in: un-runnable

* Makefile.in (un-runnable): fail with proper error message.
  [ruby-core:75905] [Bug #12472]
------------------------------------------------------------------------
r55340 | nobu | 2016-06-09 16:37:29 +0900 (Thu, 09 Jun 2016) | 4 lines

common.mk: fix win32/ifchange.bat usage

* common.mk: win32/ifchange.bat does not support input from stdin.
  also needs quotes to escape an equal sign.
------------------------------------------------------------------------
r55339 | nobu | 2016-06-09 15:52:03 +0900 (Thu, 09 Jun 2016) | 1 line

common.mk: use $(IFCHANGE) for mswin
------------------------------------------------------------------------
r55338 | nobu | 2016-06-09 15:32:18 +0900 (Thu, 09 Jun 2016) | 5 lines

common.mk: ifchange for mkconfig.rb

* common.mk (RBCONFIG): use ifchange tool to see if the content is
  changed and update the timestamp file.
* tool/mkconfig.rb: remove ifchange features.
------------------------------------------------------------------------
r55337 | nobu | 2016-06-09 15:31:54 +0900 (Thu, 09 Jun 2016) | 4 lines

ifchange: make target directory

* tool/ifchange: make target directory if it does not exist with
  its parent directories.
------------------------------------------------------------------------
r55336 | nobu | 2016-06-09 15:31:11 +0900 (Thu, 09 Jun 2016) | 4 lines

ifchange.bat: drop old systems

* win32/ifchange.bat: drop support for command.com used on old
  systems.
------------------------------------------------------------------------
r55335 | rhe | 2016-06-09 15:03:55 +0900 (Thu, 09 Jun 2016) | 6 lines

openssl: fix build with OpenSSL 1.1.0 and no pkg-config

* ext/openssl/extconf.rb: Check for CRYPTO_malloc() and SSL_new().
  OpenSSL_add_all_digests() and SSL_library_init() are deprecated and
  converted to macros in OpenSSL 1.1.0.
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55334 | svn | 2016-06-09 13:44:33 +0900 (Thu, 09 Jun 2016) | 1 line

* 2016-06-09
------------------------------------------------------------------------
r55333 | nobu | 2016-06-09 13:44:32 +0900 (Thu, 09 Jun 2016) | 1 line

strio_init: return self for tail call optimization
------------------------------------------------------------------------
r55332 | kazu | 2016-06-08 23:11:17 +0900 (Wed, 08 Jun 2016) | 3 lines

string.c (rb_str_ascii_casemap): fix compile error.

error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
------------------------------------------------------------------------
r55331 | duerst | 2016-06-08 22:22:28 +0900 (Wed, 08 Jun 2016) | 2 lines

* string.c: Revert previous commit (possibility of endless loop).

------------------------------------------------------------------------
r55330 | duerst | 2016-06-08 21:57:44 +0900 (Wed, 08 Jun 2016) | 2 lines

* string.c: Special-case :ascii option in rb_str_upcase_bang.

------------------------------------------------------------------------
r55329 | duerst | 2016-06-08 21:28:42 +0900 (Wed, 08 Jun 2016) | 6 lines

* string.c: New static function rb_str_ascii_casemap; special-casing
  :ascii option in rb_str_upcase_bang and rb_str_downcase_bang.
* regenc.c: Fix a bug (wrong use of unnecessary slack at end of string).
* regenc.h -> include/ruby/oniguruma.h: Move declaration of
  onigenc_ascii_only_case_map so that it is visible in string.c.

------------------------------------------------------------------------
r55328 | ngoto | 2016-06-08 20:56:33 +0900 (Wed, 08 Jun 2016) | 2 lines

Makefile.in: revert r55303 because of an error on Solaris 10. [Bug #12471] [ruby-dev:49654]

------------------------------------------------------------------------
r55327 | ngoto | 2016-06-08 20:36:57 +0900 (Wed, 08 Jun 2016) | 5 lines

* include/ruby/intern.h: Remove excess semicolons in PUREFUNC().
  Fix failure of TestMkmf::TestConvertible on Solaris with
  Oracle Solaris Studio 12. [ruby-dev:49651] [Bug #12470]
* internal.h: ditto.

------------------------------------------------------------------------
r55326 | nobu | 2016-06-08 16:47:39 +0900 (Wed, 08 Jun 2016) | 1 line

ext/stringio/README.md: update [ci skip]
------------------------------------------------------------------------
r55325 | shugo | 2016-06-08 16:10:15 +0900 (Wed, 08 Jun 2016) | 1 line

Add an acknowledgement.
------------------------------------------------------------------------
r55324 | shugo | 2016-06-08 16:06:57 +0900 (Wed, 08 Jun 2016) | 3 lines

* lib/net/smtp.rb (getok, get_response): raise an ArgumentError when
CR or LF is included in a line, because they are not allowed in
RFC5321.
------------------------------------------------------------------------
r55323 | nobu | 2016-06-08 15:29:14 +0900 (Wed, 08 Jun 2016) | 3 lines

suppress static-in-inline warning

* ext/date/zonetab.list (zonetab): forward declaration as static.
------------------------------------------------------------------------
r55322 | nobu | 2016-06-08 14:41:08 +0900 (Wed, 08 Jun 2016) | 6 lines

fix date build

* common.mk (zonetabl.h): fix typo.

* ext/date/zonetab.list: remove forward declaration which may be
  conflict with the later definition.
------------------------------------------------------------------------
r55321 | nobu | 2016-06-08 11:08:00 +0900 (Wed, 08 Jun 2016) | 4 lines

test_proc.rb: test_lambda?

* test/ruby/test_proc.rb (test_lambda?): lambda-ness should be
  preserved across proc, lambda, and Proc.new.
------------------------------------------------------------------------
r55320 | nobu | 2016-06-08 10:09:23 +0900 (Wed, 08 Jun 2016) | 1 line

ext/date/zonetab.list: gperf timezone names
------------------------------------------------------------------------
r55319 | svn | 2016-06-08 10:09:22 +0900 (Wed, 08 Jun 2016) | 1 line

* 2016-06-08
------------------------------------------------------------------------
r55318 | nobu | 2016-06-08 10:09:21 +0900 (Wed, 08 Jun 2016) | 1 line

ext/date: constify
------------------------------------------------------------------------
r55317 | rhe | 2016-06-07 21:29:37 +0900 (Tue, 07 Jun 2016) | 6 lines

rubygems: regenerate server certificates used in tests

* test/rubygems/*_{cert,cert_32}.pem: Regenerate test certificates for
  OpenSSL 1.1.0. This is already in upstream.
  https://github.com/rubygems/rubygems/commit/9be5c53939440a61c4bba73cfffbeb5cfadf72be
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55316 | svn | 2016-06-07 21:29:37 +0900 (Tue, 07 Jun 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55315 | rhe | 2016-06-07 21:29:36 +0900 (Tue, 07 Jun 2016) | 8 lines

open-uri: regenerate server certificates used in tests

* test/open-uri/test_ssl.rb: Regenerate test certificates. The test CA
  certificate was incorrectly generated. A CA certificate must have the
  basic constraints extension with cA bit set to TRUE. OpenSSL <= 1.0.2
  allowed the error when the certificate is in the trusted store but
  OpenSSL 1.1.0 no longer does.
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55314 | rhe | 2016-06-07 21:20:46 +0900 (Tue, 07 Jun 2016) | 41 lines

openssl: adjust tests for OpenSSL 1.1.0

This fixes `make test-all TESTS=openssl` with OpenSSL master.

* test/openssl/test_x509name.rb: Don't register OID for 'emailAddress'
  and 'serialNumber'. A recent change in OpenSSL made OBJ_create()
  reject an already existing OID. They were needed to run tests with
  OpenSSL 0.9.6 which is now unsupported.
  https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=52832e470f5fe8c222249ae5b539aeb3c74cdb25
  [ruby-core:75225] [Feature #12324]

* test/openssl/test_ssl_session.rb (test_server_session): Duplicate
  SSL::Session before re-adding to the session store. OpenSSL 1.1.0
  starts rejecting SSL_SESSION once removed by SSL_CTX_remove_session().
  https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=7c2d4fee2547650102cd16d23f8125b76112ae75

* test/openssl/test_pkey_ec.rb (setup): Remove X25519 from @keys. X25519
  is new in OpenSSL 1.1.0 but this is for key agreement and not for
  signing.

* test/openssl/test_pair.rb, test/openssl/test_ssl.rb,
  test/openssl/utils.rb: Set security level to 0 when using aNULL cipher
  suites.

* test/openssl/utils.rb: Use 1024 bits DSA key for client certificates.

* test/openssl/test_engine.rb: Run each test in separate process.
  We can no longer cleanup engines explicitly as ENGINE_cleanup() was
  removed.
  https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=6d4fb1d59e61aacefa25edc4fe5acfe1ac93f743

* ext/openssl/ossl_engine.c (ossl_engine_s_cleanup): Add a note to the
  RDoc for Engine.cleanup.

* ext/openssl/lib/openssl/digest.rb: Don't define constants for DSS,
  DSS1 and SHA(-0) when using with OpenSSL 1.1.0. They are removed.

* test/openssl/test_digest.rb, test/openssl/test_pkey_dsa.rb,
  test/openssl/test_pkey_dsa.rb, test/openssl/test_ssl.rb,
  test/openssl/test_x509cert.rb, test/openssl/test_x509req.rb: Don't
  test unsupported hash functions.
------------------------------------------------------------------------
r55313 | nobu | 2016-06-07 17:57:37 +0900 (Tue, 07 Jun 2016) | 4 lines

ruby-additional.el: adjust heredoc line number

* misc/ruby-additional.el (ruby-insert-heredoc-code-block): insert
  a newline adjust the line number for "begin" line.
------------------------------------------------------------------------
r55312 | nobu | 2016-06-07 17:57:36 +0900 (Tue, 07 Jun 2016) | 4 lines

test_syntax.rb: formal argument name tests

* test/ruby/test_syntax.rb: add invalid formal argument name
  tests.
------------------------------------------------------------------------
r55311 | duerst | 2016-06-07 17:49:55 +0900 (Tue, 07 Jun 2016) | 4 lines

* test/ruby/enc/test_case_comprehensive: Change test for encodings
  without any non-ASCII case conversions from ASCII-only test
  to full test.

------------------------------------------------------------------------
r55310 | duerst | 2016-06-07 17:18:42 +0900 (Tue, 07 Jun 2016) | 3 lines

* string.c (rb_str_upcase_bang, rb_str_capitalize_bang,
  rb_str_swapcase_bang): Switch to use primitive.

------------------------------------------------------------------------
r55309 | rhe | 2016-06-07 16:52:24 +0900 (Tue, 07 Jun 2016) | 13 lines

openssl: add SSL::SSLContext#security_level{=,}

* ext/openssl/extconf.rb: Check for SSL_CTX_get_security_level().
  OpenSSL 1.1.0 introduced "security level".
  [ruby-core:75225] [Feature #12324]

* ext/openssl/ossl_ssl.c (ossl_sslctx_{get,set}_security_level): Add
  SSLContext#security_level and #security_level=.

* test/openssl/test_ssl.rb (test_security_level): Add test. ...but this
  doesn't actually test it. Because #security_level= is necessary in
  order to run other tests on OpenSSL 1.1.0, go without tests for now.
  Will fix after converting SSLContext#key= and #cert= to normal methods.
------------------------------------------------------------------------
r55308 | duerst | 2016-06-07 16:44:19 +0900 (Tue, 07 Jun 2016) | 3 lines

* string.c (rb_str_downcase_bang): Switch to use primitive except if
  conversion can be done ASCII-only.

------------------------------------------------------------------------
r55307 | duerst | 2016-06-07 16:13:39 +0900 (Tue, 07 Jun 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive: Add regression tests for
  current ASCII-only case conversion.

------------------------------------------------------------------------
r55306 | duerst | 2016-06-07 15:28:47 +0900 (Tue, 07 Jun 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive: Fix method name
  (generate_casefold_tests -> generate_case_mapping_tests).

------------------------------------------------------------------------
r55305 | duerst | 2016-06-07 15:05:18 +0900 (Tue, 07 Jun 2016) | 10 lines

* regenc.h/c: Rename onigenc_not_support_case_map to
  onigenc_ascii_only_case_map.
* regenc.h: Add definition of onigenc_single_byte_ascii_only_case_map.
* enc/iso_8859_X.c, windows_125X.c, ascii.c, us-ascii.c, koi8_x.c:
  Replace onigenc_not_support_case_map by
  onigenc_single_byte_ascii_only_case_map.
* enc/big5.c, cp949.c, emacs_mule.c, euc_X.c, gbX.c, shift_jis.c,
  windows_31j.c: Replace onigenc_not_support_case_map by
  onigenc_ascii_only_case_map.

------------------------------------------------------------------------
r55304 | rhe | 2016-06-07 14:57:25 +0900 (Tue, 07 Jun 2016) | 11 lines

openssl: avoid deprecated version-specific ssl methods if necessary

* ext/openssl/extconf.rb: Check for SSL_CTX_set_min_proto_version()
  macro added in OpenSSL 1.1.0. Version-specific methods, such as
  TLSv1_method(), are deprecated in OpenSSL 1.1.0. We need to use
  version-flexible methods (TLS_*method() or SSLv23_*method()) and
  disable other protocol versions as necessary.
  [ruby-core:75225] [Feature #12324]

* ext/openssl/ossl_ssl.c: Use SSL_CTX_set_{min,max}_proto_version() to
  fix the protocol version.
------------------------------------------------------------------------
r55303 | nobu | 2016-06-07 13:53:47 +0900 (Tue, 07 Jun 2016) | 4 lines

Makefile.in: cd to working directory

* Makefile.in (update-{mspec,rubyspec,doclie,simplecov{,-html}}):
  cd to working directory first and check if the directory exists.
------------------------------------------------------------------------
r55302 | duerst | 2016-06-07 12:55:37 +0900 (Tue, 07 Jun 2016) | 3 lines

* regenc.c (onigenc_not_support_case_map): Move to end of file;
  (onigenc_single_byte_ascii_only_case_map): Add new function.

------------------------------------------------------------------------
r55301 | nobu | 2016-06-07 09:31:40 +0900 (Tue, 07 Jun 2016) | 4 lines

appveyor.yml: fix file names

* appveyor.yml (install): file library file names to be installed
  from libressl.
------------------------------------------------------------------------
r55300 | svn | 2016-06-07 09:26:42 +0900 (Tue, 07 Jun 2016) | 1 line

* 2016-06-07
------------------------------------------------------------------------
r55299 | duerst | 2016-06-07 09:26:41 +0900 (Tue, 07 Jun 2016) | 3 lines

* regenc.c (onigenc_not_support_case_map): Rewrite to work correctly
  in ASCII range.

------------------------------------------------------------------------
r55298 | kazu | 2016-06-06 23:04:01 +0900 (Mon, 06 Jun 2016) | 1 line

appveyor.yml: Update libressl version to 2.3.5.
------------------------------------------------------------------------
r55297 | nobu | 2016-06-06 18:37:59 +0900 (Mon, 06 Jun 2016) | 5 lines

vm_insnhelper.c: check symbol proc to throw

* vm_insnhelper.c (vm_throw_start): check if the iseq is symbol
  proc, class definition should not be a symbol proc.
  [ruby-core:75856] [Bug #12462]
------------------------------------------------------------------------
r55296 | duerst | 2016-06-06 18:36:36 +0900 (Mon, 06 Jun 2016) | 5 lines

* string.c: Added UTF-16BE/LE and UTF-32BE/LE to supported encodings
  for Unicode case mapping.
* test/ruby/enc/test_case_comprehensive.rb: Tests for above
  functionality; fixed an encoding issue in assertion error message.

------------------------------------------------------------------------
r55295 | duerst | 2016-06-06 17:29:38 +0900 (Mon, 06 Jun 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb: Speed up testing for small
  encodings by preselecting codepoints.

------------------------------------------------------------------------
r55294 | rhe | 2016-06-06 17:11:24 +0900 (Mon, 06 Jun 2016) | 5 lines

openssl: fix free function of OpenSSL::Cipher

* ext/openssl/ossl_cipher.c (ossl_cipher_free): Use EVP_CIPHER_CTX_free()
  to free EVP_CIPHER_CTX allocated by EVP_CIPHER_CTX_new().
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55293 | duerst | 2016-06-06 13:37:10 +0900 (Mon, 06 Jun 2016) | 3 lines

* string.c Change rb_str_casemap to use encoding primitive
  case_map instead of directly calling onigenc_unicode_case_map.

------------------------------------------------------------------------
r55292 | duerst | 2016-06-06 13:16:49 +0900 (Mon, 06 Jun 2016) | 3 lines

* test/ruby/enc/test_case_mapping.rb:
  Remove :lithuanian guard for Unicode case mapping.

------------------------------------------------------------------------
r55291 | rhe | 2016-06-06 10:40:27 +0900 (Mon, 06 Jun 2016) | 4 lines

openssl: fix compile on VC

* ext/openssl/openssl_missing.h: Include ruby/config.h. r55285 added
  some inline functions but VC does not recognize 'inline' keyword.
------------------------------------------------------------------------
r55290 | nobu | 2016-06-06 09:25:38 +0900 (Mon, 06 Jun 2016) | 4 lines

Thread.report_on_exception

* thread.c (thread_start_func_2): report raised exception if
  report_on_exception flag is set.  [Feature #6647]
------------------------------------------------------------------------
r55289 | rhe | 2016-06-06 01:36:39 +0900 (Mon, 06 Jun 2016) | 14 lines

openssl: use SSL_is_server()

* ext/openssl/extconf.rb: Check existence of SSL_is_server(). This
  function was introduced in OpenSSL 1.0.2.
  [ruby-core:75225] [Feature #12324]

* ext/openssl/openssl_missing.h: Implement SSL_is_server() if missing.

* ext/openssl/ossl_ssl.c (ssl_info_cb): Use SSL_is_server() to see if
  the SSL is server. The state machine in OpenSSL was rewritten and
  SSL_get_state() no longer returns SSL_ST_ACCEPT.

  (ossl_ssl_cipher_to_ary, ossl_sslctx_session_get_cb): Add some
  `const`s to suppress warning.
------------------------------------------------------------------------
r55288 | rhe | 2016-06-06 01:18:38 +0900 (Mon, 06 Jun 2016) | 6 lines

openssl: avoid d2i_ASN1_BOOLEAN()

* ext/openssl/ossl_asn1.c (decode_bool): Do the same thing as
  d2i_ASN1_BOOLEAN() does by ourselves. This function is removed in
  OpenSSL 1.1.0.
  [ruby-core:75225] [Feature #12324]
------------------------------------------------------------------------
r55287 | rhe | 2016-06-06 00:35:12 +0900 (Mon, 06 Jun 2016) | 12 lines

openssl: adapt to OpenSSL 1.1.0 opaque structs

* ext/openssl/extconf.rb: Check existence of accessor functions that
  don't exist in OpenSSL 0.9.8. OpenSSL 1.1.0 made most of its
  structures opaque and requires use of these accessor functions.
  [ruby-core:75225] [Feature #12324]

* ext/openssl/openssl_missing.[ch]: Implement them if missing.

* ext/openssl/ossl*.c: Use these accessor functions.

* test/openssl/test_hmac.rb: Add missing test for HMAC#reset.
------------------------------------------------------------------------
r55286 | svn | 2016-06-06 00:00:48 +0900 (Mon, 06 Jun 2016) | 1 line

* 2016-06-06
------------------------------------------------------------------------
r55285 | rhe | 2016-06-06 00:00:47 +0900 (Mon, 06 Jun 2016) | 23 lines

openssl: adapt OpenSSL::PKey to OpenSSL 1.1.0 opaque structs

* ext/openssl/openssl_missing.[ch]: Implement EVP_PKEY_get0_*() and
  {RSA,DSA,EC_KEY,DH}_get0_*() functions.
  OpenSSL 1.1.0 makes EVP_PKEY/RSA/DSA/DH opaque. We used to provide
  setter methods for each parameter of each PKey type, for example
  PKey::RSA#e=, but this is no longer possible because the new API
  RSA_set0_key() requires the 'n' at the same time. This commit adds
  deprecation warning to them and adds PKey::*#set_* methods as direct
  wrapper for those new APIs. For example, 'rsa.e = 3' now needs to be
  rewritten as 'rsa.set_key(rsa.n, 3, rsa.d)'.
  [ruby-core:75225] [Feature #12324]

* ext/openssl/ossl_pkey*.[ch]: Use the new accessor functions. Implement
  RSA#set_{key,factors,crt_params}, DSA#set_{key,pqg}, DH#set_{key,pqg}.
  Emit a warning with rb_warning() when old setter methods are used.

* test/drb/ut_array_drbssl.rb, test/drb/ut_drb_drbssl.rb,
  test/rubygems/test_gem_remote_fetcher.rb: Don't set a priv_key for DH
  object that are used in tmp_dh_callback. Generating a new key pair
  every time should be fine - actually the private exponent is ignored
  in OpenSSL >= 1.0.2f/1.0.1r even if we explicitly set.
  https://www.openssl.org/news/secadv/20160128.txt
------------------------------------------------------------------------
r55284 | mrkn | 2016-06-05 22:09:43 +0900 (Sun, 05 Jun 2016) | 1 line

configure.in: Fix the timing to detect the appropriate C++ compiler in OS X
------------------------------------------------------------------------
r55283 | rhe | 2016-06-05 21:46:05 +0900 (Sun, 05 Jun 2016) | 20 lines

openssl: support OpenSSL 1.1.0's new multi-threading API

* ext/openssl/extconf.rb: Check absence of CRYPTO_lock() to see if the
  OpenSSL has the new threading API. In OpenSSL <= 1.0.2, an application
  had to set locking callbacks to use OpenSSL in a multi-threaded
  environment. OpenSSL 1.1.0 now finds pthreads or Windows threads so we
  don't need to do something special.
  [ruby-core:75225] [Feature #12324]

  Also check existence of *_up_ref(). Some structures in OpenSSL have
  a reference counter. We used to increment it with CRYPTO_add() which
  is a part of the old API.

* ext/openssl/openssl_missing.h: Implement *_up_ref() if missing.

* ext/openssl/ossl.c: Don't set locking callbacks if unneeded.

* ext/openssl/ossl_pkey.c, ext/openssl/ossl_ssl.c,
  ext/openssl/ossl_x509cert.c, ext/openssl/ossl_x509crl.c,
  ext/openssl/ossl_x509store.c: Use *_up_ref() instead of CRYPTO_add().
------------------------------------------------------------------------
r55282 | rhe | 2016-06-05 21:38:34 +0900 (Sun, 05 Jun 2016) | 11 lines

openssl: check existence of RAND_pseudo_bytes()

* ext/openssl/extconf.rb: Check if RAND_pseudo_bytes() is usable. It is
  marked as deprecated in OpenSSL 1.1.0.
  [ruby-core:75225] [Feature #12324]

* ext/openssl/ossl_rand.c: Disable Random.pseudo_bytes if
  RAND_pseudo_bytes() is unavailable.

* test/openssl/test_random.rb: Don't test Random.pseudo_bytes if not
  defined.
------------------------------------------------------------------------
r55281 | duerst | 2016-06-05 19:06:42 +0900 (Sun, 05 Jun 2016) | 3 lines

* NEWS: Add news about Unicode-wide case mapping for
  String/Symbol#upcase/downcase/swapcase/capitalize(!).

------------------------------------------------------------------------
r55280 | nobu | 2016-06-05 18:54:13 +0900 (Sun, 05 Jun 2016) | 3 lines

optparse.rb: fix quote [ci skip]

* lib/optparse.rb (getopts): [DOC] fix missing quote.
------------------------------------------------------------------------
r55279 | duerst | 2016-06-05 15:24:36 +0900 (Sun, 05 Jun 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb:
  Remove :lithuanian guard for Unicode case mapping.

------------------------------------------------------------------------
r55278 | svn | 2016-06-05 14:46:38 +0900 (Sun, 05 Jun 2016) | 1 line

* 2016-06-05
------------------------------------------------------------------------
r55277 | duerst | 2016-06-05 14:46:37 +0900 (Sun, 05 Jun 2016) | 2 lines

* string.c: Remove :lithuanian guard for Unicode case mapping.

------------------------------------------------------------------------
r55276 | nobu | 2016-06-04 19:58:14 +0900 (Sat, 04 Jun 2016) | 4 lines

gmake.mk: update timestamp of des_tables.c

* defs/gmake.mk (missing/des_tables.c): always update the
  timestamp unless make_des_table failed.
------------------------------------------------------------------------
r55275 | nobu | 2016-06-04 12:46:06 +0900 (Sat, 04 Jun 2016) | 4 lines

gmake.mk: des_tables.c condition

* defs/gmake.mk (missing/des_tables.c): fix cross compiling
  condition.
------------------------------------------------------------------------
r55274 | nobu | 2016-06-04 11:40:04 +0900 (Sat, 04 Jun 2016) | 7 lines

des_tables.c: generation rule

* defs/gmake.mk (missing/des_tables.c): move the recipe from
  common.mk.  this is less common.

* missing/crypt.c (init_des): if des_tables.c is empty, initialize
  DES tables at runtime.
------------------------------------------------------------------------
r55273 | rhe | 2016-06-04 11:35:09 +0900 (Sat, 04 Jun 2016) | 7 lines

openssl: avoid deprecated BN_*prime* functions

* ext/openssl/ossl_bn.c (ossl_bn_s_generate_prime, ossl_bn_is_prime,
  ossl_bn_is_prime_fasttest): Avoid deprecated BN_generate_prime(),
  BN_is_prime{,_fasttest}(). They are deprecated because they expect an
  old style callback function (we don't use it here). They can be simply
  replaced by _ex suffixed functions.
------------------------------------------------------------------------
r55272 | nobu | 2016-06-04 10:54:54 +0900 (Sat, 04 Jun 2016) | 9 lines

crypt.h: remove initialized

* missing/crypt.h (struct crypt_data): remove unnecessary member
  "initialized".
* missing/crypt.c (des_setkey_r): nothing to be initialized in
  crypt_data.
* configure.in (struct crypt_data): check for "initialized" in
  struct crypt_data, which may be only in glibc, and isn't on AIX
  at least.
------------------------------------------------------------------------
r55271 | svn | 2016-06-04 10:38:42 +0900 (Sat, 04 Jun 2016) | 1 line

* 2016-06-04
------------------------------------------------------------------------
r55270 | nobu | 2016-06-04 10:38:41 +0900 (Sat, 04 Jun 2016) | 5 lines

win32.c:  use PATH_MAX

* win32/win32.c: unify MAX_PATH, _MAX_PATH, and MAXPATHLEN to
  PATH_MAX, except for MAX_PATH in get_special_folder for an API
  limit.
------------------------------------------------------------------------
r55269 | nobu | 2016-06-03 22:38:27 +0900 (Fri, 03 Jun 2016) | 5 lines

win32.c: fail before getting ITEMIDLIST

* win32/win32.c (get_special_folder): fail before getting
  ITEMIDLIST if the buffer is less than 260 word which
  SHGetPathFromIDListW requires.
------------------------------------------------------------------------
r55268 | nobu | 2016-06-03 21:27:24 +0900 (Fri, 03 Jun 2016) | 6 lines

ruby.c: refix r55260

* ruby.c (process_options): rb_str_conv_enc() never set encoding
  of the source string, but returns the string itself if the
  conversion failed.  then the instance variable does not need to
  be set again.
------------------------------------------------------------------------
r55267 | usa | 2016-06-03 18:06:19 +0900 (Fri, 03 Jun 2016) | 4 lines

* ruby.c (process_options): need to duplicate path before passing it to
  rb_str_conv_enc() because the function might call rb_enc_associate()
  internally.  this fixes test failures on Windows introduced at r55260.

------------------------------------------------------------------------
r55266 | usa | 2016-06-03 17:52:03 +0900 (Fri, 03 Jun 2016) | 2 lines

* win32/win32.c (get_special_folder): typo.

------------------------------------------------------------------------
r55265 | nobu | 2016-06-03 17:44:27 +0900 (Fri, 03 Jun 2016) | 11 lines

mkmf.rb: sort lists of source and object files

* lib/mkmf.rb (create_makefile): sort lists of source and object
  files in generated Makefile, unless given by extconf.rb.
  [Fix GH-1367]

Without sorting the list of object files explicitely, its order is
indeterministic, because readdir() is also not deterministic.
When the list of object files varies between builds, they are
linked in a different order, which results in an unreproducible
build.
------------------------------------------------------------------------
r55264 | svn | 2016-06-03 01:52:15 +0900 (Fri, 03 Jun 2016) | 1 line

* 2016-06-03
------------------------------------------------------------------------
r55263 | nobu | 2016-06-03 01:52:15 +0900 (Fri, 03 Jun 2016) | 1 line

dln_find.c: MAXPATHLEN is not used already
------------------------------------------------------------------------
r55262 | nobu | 2016-06-02 21:21:42 +0900 (Thu, 02 Jun 2016) | 4 lines

etc.c: retry with allocated string buffer

* ext/etc/etc.c (etc_systmpdir): retry with allocated string
  buffer if static buffer size is not enough.
------------------------------------------------------------------------
r55261 | nobu | 2016-06-02 21:18:12 +0900 (Thu, 02 Jun 2016) | 5 lines

win32.c: use SHGetPathFromIDListEx

* win32/win32.c (get_special_folder): use SHGetPathFromIDListEx if
  available instead of old SHGetPathFromIDListW, to check the
  buffer size.
------------------------------------------------------------------------
r55260 | nobu | 2016-06-02 17:05:21 +0900 (Thu, 02 Jun 2016) | 4 lines

ruby.c: no MAXPATHLEN for loadpath

* ruby.c (ruby_init_loadpath_safe): remove MAXPATHLEN restriction
  for Windows 10.
------------------------------------------------------------------------
r55259 | nobu | 2016-06-02 16:51:36 +0900 (Thu, 02 Jun 2016) | 5 lines

ruby-mode.el: squiggly heredoc

* misc/ruby-mode.el (ruby-here-doc-beg-re),
  (ruby-here-doc-beg-match, ruby-parse-partial): Support for
  `squiggly heredoc' syntax in ruby-mode.  [Fix GH-1372]
------------------------------------------------------------------------
r55258 | nobu | 2016-06-02 14:27:31 +0900 (Thu, 02 Jun 2016) | 3 lines

common.mk: des_tables.c

* common.mk (missing-srcs): add rule for missing/des_tables.c.
------------------------------------------------------------------------
r55257 | nobu | 2016-06-02 12:05:40 +0900 (Thu, 02 Jun 2016) | 4 lines

crypt.c: suppress warnings

* missing/crypt.c (SPE): make unsigned so that literal integers do
  not exceed 32bit signed integer limit.
------------------------------------------------------------------------
r55256 | nobu | 2016-06-02 11:30:43 +0900 (Thu, 02 Jun 2016) | 4 lines

crypt.c: fix syntax error on mswin

* missing/crypt.c (constdatablock): fix error on mswin. Visual C
  does not accept an empty initializer.
------------------------------------------------------------------------
r55255 | svn | 2016-06-02 10:54:18 +0900 (Thu, 02 Jun 2016) | 1 line

* 2016-06-02
------------------------------------------------------------------------
r55254 | nobu | 2016-06-02 10:54:17 +0900 (Thu, 02 Jun 2016) | 6 lines

ruby.h: reduce repeated calcuations

* include/ruby/ruby.h (rb_scan_args_{hash,block}_idx): reduce
  repeated index calcuations.

* include/ruby/ruby.h (rb_scan_args_end_idx): unused right now.
------------------------------------------------------------------------
r55253 | duerst | 2016-06-02 10:24:52 +0900 (Thu, 02 Jun 2016) | 7 lines

* string.c: Raise ArgumentError when invalid string is detected in
  case mapping methods.
* enc/unicode.c: Check for invalid string and signal with negative
  length value.
* test/ruby/enc/test_case_mapping.rb: Add tests for above.
* test/ruby/test_m17n_comb.rb: Add a message to clarify test failure.

------------------------------------------------------------------------
r55252 | nobu | 2016-06-01 22:39:01 +0900 (Wed, 01 Jun 2016) | 4 lines

ossl_asn1.c: check overflow

* ext/openssl/ossl_asn1.c (ossl_time_split): check overflow and
  reorder for optimization.
------------------------------------------------------------------------
r55251 | nobu | 2016-06-01 22:38:59 +0900 (Wed, 01 Jun 2016) | 4 lines

crypt.c: unused functions

* missing/crypt.c: suppress unused non-reentrant functions, by
  macro USE_NONREENTRANT_CRYPT.
------------------------------------------------------------------------
r55250 | nobu | 2016-06-01 22:17:31 +0900 (Wed, 01 Jun 2016) | 4 lines

string.c: fallback to crypt_r

* string.c: prefer crypt_r to crypt iff system crypt nor crypt_r
  are not provided.
------------------------------------------------------------------------
r55249 | rhe | 2016-06-01 21:41:15 +0900 (Wed, 01 Jun 2016) | 24 lines

openssl: fix the Year 2038 problem

r55219 didn't fix the entire issue. It only fixed the issue on
environment with sizeof(time_t) == 8 && sizeof(long) == 4.

* ext/openssl/extconf.rb: Check existence of ASN1_TIME_adj(). The old
  ASN1_TIME_set() is not Year 2038 ready on sizeof(time_t) == 4
  environment. This function was added in OpenSSL 1.0.0.
  [ruby-core:45552] [Bug #6571]

* ext/openssl/ossl_asn1.c (ossl_time_split): Added. Split the argument
  (Time) into the number of days elapsed since the epoch and the
  remainder seconds to conform to ASN1_TIME_adj().
  (obj_to_asn1utime, obj_to_asn1gtime): Use ossl_time_split() and
  ASN1_*TIME_adj().

* ext/openssl/ossl_asn1.h: Add the function prototype for
  ossl_time_split().

* ext/openssl/ossl_x509.[ch]: Add ossl_x509_time_adjust(). Similarly to
  obj_to_asn1*time(), use X509_time_adj_ex() instead of X509_time_adj().

* ext/openssl/ossl_x509cert.c, ext/openssl/ossl_x509crl.c,
  ext/openssl/ossl_x509revoked.c: Use ossl_x509_time_adjust().
------------------------------------------------------------------------
r55248 | nobu | 2016-06-01 19:42:45 +0900 (Wed, 01 Jun 2016) | 3 lines

revert r55246

* configure.in: no longer workaround crypt_r by r55247.
------------------------------------------------------------------------
r55247 | nobu | 2016-06-01 19:24:10 +0900 (Wed, 01 Jun 2016) | 4 lines

crypt.h: get rid of conflict

* missing/crypt.h: move crypt.h to get rid of conflict with the
  system header.
------------------------------------------------------------------------
r55246 | naruse | 2016-06-01 19:05:55 +0900 (Wed, 01 Jun 2016) | 1 line

workaround: don't check crypt_r
------------------------------------------------------------------------
r55245 | nobu | 2016-06-01 15:58:21 +0900 (Wed, 01 Jun 2016) | 6 lines

use system crypt

* configure.in: revert r55237.  replace crypt, not crypt_r, and
  check if crypt is broken more.
* missing/crypt.c: move crypt_r.c
* string.c (rb_str_crypt): use crypt_r if provided by the system.
------------------------------------------------------------------------
r55244 | nobu | 2016-06-01 15:05:21 +0900 (Wed, 01 Jun 2016) | 3 lines

des_tables.c

* missing/crypt_r.c: initialize DES tables statically.
------------------------------------------------------------------------
r55243 | nobu | 2016-06-01 14:07:55 +0900 (Wed, 01 Jun 2016) | 4 lines

crypt_r.c: fix out of bounds access

* missing/crypt_r.c (a64toi): initialize statically and fix out of
  bounds access when salt is not 7bit clean.
------------------------------------------------------------------------
r55242 | nobu | 2016-06-01 14:00:55 +0900 (Wed, 01 Jun 2016) | 4 lines

crypt_r.c: DES tables

* missing/crypt_r.c (des_tables): move sharable DES constant
  tables.
------------------------------------------------------------------------
r55241 | nobu | 2016-06-01 13:20:40 +0900 (Wed, 01 Jun 2016) | 4 lines

crypt_r.c: remove casts

* missing/crypt_r.c: consitify and remove unnecessary pointer
  casts.
------------------------------------------------------------------------
r55240 | nobu | 2016-06-01 11:45:20 +0900 (Wed, 01 Jun 2016) | 4 lines

common.mk: add dependency

* common.mk (string.o): now depends on crypt.h for crypt_r and
  struct crypt_data.
------------------------------------------------------------------------
r55239 | usa | 2016-06-01 11:35:36 +0900 (Wed, 01 Jun 2016) | 2 lines

* win32/Makefile.sub (MISSING): fixed build error introduced at r55237.

------------------------------------------------------------------------
r55238 | nobu | 2016-06-01 09:52:59 +0900 (Wed, 01 Jun 2016) | 3 lines

crypt_r.c: adjust style

* missing/crypt_r.c: adjust style to BSD as the original.
------------------------------------------------------------------------
r55237 | nobu | 2016-06-01 09:48:08 +0900 (Wed, 01 Jun 2016) | 3 lines

use crypt_r

* string.c (rb_str_crypt): use reentrant crypt_r.
------------------------------------------------------------------------
r55236 | usa | 2016-06-01 09:37:54 +0900 (Wed, 01 Jun 2016) | 2 lines

* missing/crypt.c (des_setkey): void function never returns any value.

------------------------------------------------------------------------
r55235 | nobu | 2016-06-01 09:16:24 +0900 (Wed, 01 Jun 2016) | 3 lines

separate crypt.h

* crypt.h: separate header file from missing/crypt.c.
------------------------------------------------------------------------
r55234 | nobu | 2016-06-01 09:14:32 +0900 (Wed, 01 Jun 2016) | 4 lines

add crypt_r

* missing/crypt.c (crypt_r, setkey_r, encrypt_r): add reentrant
  versions.
------------------------------------------------------------------------
r55233 | nobu | 2016-06-01 02:25:40 +0900 (Wed, 01 Jun 2016) | 5 lines

crypt.c: fix size macros

* missing/crypt.c: fix size macros to use configured values
  for platforms long is larger than 32bit.
  [ruby-core:75792] [Bug #12446]
------------------------------------------------------------------------
r55232 | nobu | 2016-06-01 01:49:32 +0900 (Wed, 01 Jun 2016) | 4 lines

crypt.c: protoize

* missing/crypt.c: protoize function definitions and make
  always-zero functions void.
------------------------------------------------------------------------
r55231 | svn | 2016-06-01 01:49:30 +0900 (Wed, 01 Jun 2016) | 1 line

* 2016-06-01
------------------------------------------------------------------------
r55230 | nobu | 2016-06-01 01:49:30 +0900 (Wed, 01 Jun 2016) | 3 lines

crypt.c: constify

* missing/crypt.c: constify Standard DES Tables.
------------------------------------------------------------------------
r55229 | rhe | 2016-05-31 23:10:11 +0900 (Tue, 31 May 2016) | 5 lines

openssl: add missing test for r55219

* test/openssl/test_asn1.rb: Add missing regression test for r55219. It
  fixed the year 2038 issue but the test code was missing.
  [ruby-core:45552] [Bug #6571]
------------------------------------------------------------------------
r55228 | nobu | 2016-05-31 17:28:48 +0900 (Tue, 31 May 2016) | 6 lines

optparse.rb: fix char class option

* lib/optparse.rb (OptionParser::Completion.candidate): get rid of
  nil as key names.  [ruby-core:75773] [Bug #12438]
* lib/optparse.rb (OptionParser#make_switch): char class option
  cannot be NoArgument, default to RequiredArgument.
------------------------------------------------------------------------
r55227 | nobu | 2016-05-31 17:26:30 +0900 (Tue, 31 May 2016) | 4 lines

optparse.rb: no duplicate strings

* lib/optparse.rb (OptionParser#parse_in_order): get rid of making
  duplicate strings; $1 and others make a new string each times.
------------------------------------------------------------------------
r55226 | naruse | 2016-05-31 11:56:09 +0900 (Tue, 31 May 2016) | 7 lines

Revert r55225

Run test-all before large commit:
"* string.c: Activate full Unicode case mapping for UTF-8 by removing"

This reverts commit 3fb0fcd1e881c1f6dd74db73a64e8623208acb77.
http://rubyci.s3.amazonaws.com/centos5-64/ruby-trunk/log/20160531T013303Z.fail.html.gz
------------------------------------------------------------------------
r55225 | duerst | 2016-05-31 10:10:06 +0900 (Tue, 31 May 2016) | 5 lines

* string.c: Activate full Unicode case mapping for UTF-8 by removing
  the protective check for the presence of an option.
  Update documentation.
* test/ruby/enc/test_case_comprehensive.rb: Adjust tests for above change.

------------------------------------------------------------------------
r55224 | rhe | 2016-05-31 01:52:10 +0900 (Tue, 31 May 2016) | 5 lines

openssl: fix test failure on Fedora 23

* test/openssl/test_pair.rb (test_ecdh_curves): Avoid P-224. The FIPS
  patch from RHEL disables it. The curve has to be chosen from: {
  secp256k1, secp384r1, secp521r1, prime256v1 }.
------------------------------------------------------------------------
r55223 | svn | 2016-05-31 00:33:07 +0900 (Tue, 31 May 2016) | 1 line

* 2016-05-31
------------------------------------------------------------------------
r55222 | usa | 2016-05-31 00:33:06 +0900 (Tue, 31 May 2016) | 3 lines

* ext/socket/raddrinfo.c (host_str, port_str): Use StringValueCStr
  instead of (Safe)StringValue, to detect NUL byte in the string.

------------------------------------------------------------------------
r55221 | nobu | 2016-05-30 23:07:01 +0900 (Mon, 30 May 2016) | 4 lines

test_file_exhaustive.rb: writable open

* test/ruby/test_file_exhaustive.rb (test_flock_shared): open
  in writable mode for exclusive lock.
------------------------------------------------------------------------
r55220 | nobu | 2016-05-30 23:05:36 +0900 (Mon, 30 May 2016) | 4 lines

raddrinfo.c: fix modifier

* ext/socket/raddrinfo.c (host_str, port_str): fix length modifier
  to size_t.
------------------------------------------------------------------------
r55219 | rhe | 2016-05-30 22:02:13 +0900 (Mon, 30 May 2016) | 5 lines

openssl: use NUM2TIMET() to convert Integer to time_t

* ext/openssl/ossl_asn1.c (time_to_time_t): Use NUM2TIMET() instead of
  NUM2LONG(). time_t may be larger than long.
  [ruby-core:45552] [Bug #6571]
------------------------------------------------------------------------
r55218 | usa | 2016-05-30 21:51:14 +0900 (Mon, 30 May 2016) | 4 lines

* test/socket/test_addrinfo.rb (TestSocketAddrinfo#test_addrinfo_ip): previous
  test logic depended on platform specific implementation.  use more portable
  logic.  this fixes a test failure on Windows.

------------------------------------------------------------------------
r55217 | duerst | 2016-05-30 21:15:41 +0900 (Mon, 30 May 2016) | 3 lines

* string.c: Document current behavior for other case mapping methods
  on String. [ci skip]

------------------------------------------------------------------------
r55216 | nobu | 2016-05-30 20:23:32 +0900 (Mon, 30 May 2016) | 6 lines

test_addrinfo.rb: signle digit address

* test/socket/test_addrinfo.rb (test_addrinfo_ip): use single
  digit address so that the values are same in both decimal and
  octal.  some platform zero-prefixed dotted-decimal is parsed as
  an octal value.
------------------------------------------------------------------------
r55215 | duerst | 2016-05-30 20:00:26 +0900 (Mon, 30 May 2016) | 2 lines

* string.c: Document current situation for String#downcase. [ci skip]

------------------------------------------------------------------------
r55214 | rhe | 2016-05-30 18:30:38 +0900 (Mon, 30 May 2016) | 36 lines

openssl: add SSLContext#ecdh_curves=

* ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): Enable the automatic
  curve selection for ECDH by calling SSL_CTX_set_ecdh_auto(). With
  this a TLS server automatically selects a curve which both the client
  and the server support to use in ECDH. This changes the default
  behavior but users can still disable ECDH by excluding 'ECDH' cipher
  suites from the cipher list (with SSLContext#ciphers=). This commit
  also deprecate #tmp_ecdh_callback=. It was added in Ruby 2.3.0. It
  wraps SSL_CTX_set_tmp_ecdh_callback() which will be removed in OpenSSL
  1.1.0. Its callback receives two values 'is_export' and 'keylength'
  but both are completely useless for determining a curve to use in
  ECDH. The automatic curve selection was introduced to replace this.

  (ossl_sslctx_setup): Deprecate SSLContext#tmp_ecdh_callback=. Emit a
  warning if this is in use.

  (ossl_sslctx_set_ecdh_curves): Add SSLContext#ecdh_curves=. Wrap
  SSL_CTX_set1_curves_list(). If it is not available, this falls back
  to SSL_CTX_set_tmp_ecdh().

  (Init_ossl_ssl): Define SSLContext#ecdh_curves=.

* ext/openssl/extconf.rb: Check the existence of EC_curve_nist2nid(),
  SSL_CTX_set1_curves_list(), SSL_CTX_set_ecdh_auto() and
  SSL_CTX_set_tmp_ecdh_callback().

* ext/openssl/openssl_missing.[ch]: Implement EC_curve_nist2nid() if
  missing.

* test/openssl/test_pair.rb (test_ecdh_callback): Use
  EnvUtil.suppress_warning to suppress deprecated warning.

  (test_ecdh_curves): Test that SSLContext#ecdh_curves= works.

* test/openssl/utils.rb (start_server): Use SSLContext#ecdh_curves=.
------------------------------------------------------------------------
r55213 | nobu | 2016-05-30 16:28:55 +0900 (Mon, 30 May 2016) | 6 lines

raddrinfo.c: fix for SHARABLE_MIDDLE_SUBSTRING

* ext/socket/raddrinfo.c (host_str, port_str): use RSTRING_LEN
  instead of strlen, since RSTRING_PTR StringValueCStr may not be
  NUL-terminated when SHARABLE_MIDDLE_SUBSTRING=1.  reported by
  @tmtms, http://twitter.com/tmtms/status/736910516229005312
------------------------------------------------------------------------
r55212 | nobu | 2016-05-30 16:20:28 +0900 (Mon, 30 May 2016) | 4 lines

string.c: return reallocated pointer

* string.c (str_fill_term): return new pointer reallocated by
  filling terminator.
------------------------------------------------------------------------
r55211 | nobu | 2016-05-30 15:12:13 +0900 (Mon, 30 May 2016) | 4 lines

test_addrinfo.rb: special hostnames

* test/socket/test_addrinfo.rb (test_addrinfo_ip): add tests for
  special hostnames, <any> and <broadcast>.
------------------------------------------------------------------------
r55210 | nobu | 2016-05-30 14:54:59 +0900 (Mon, 30 May 2016) | 4 lines

stringio.c: share strings

* ext/stringio/stringio.c (enc_subseq): share the return value and
  the buffer as possible.
------------------------------------------------------------------------
r55209 | nobu | 2016-05-30 14:50:27 +0900 (Mon, 30 May 2016) | 5 lines

string.c: get rid of unnecessary empty string

* string.c (str_substr, rb_str_aref): refactor not to create
  unnecessary empty string.
* string.c (str_byte_substr, str_byte_aref): ditto.
------------------------------------------------------------------------
r55208 | nobu | 2016-05-30 14:41:02 +0900 (Mon, 30 May 2016) | 4 lines

string.c: check in the order

* string.c (rb_str_aref_m, rb_str_byteslice): check arguments in
  the left-to-right order.
------------------------------------------------------------------------
r55207 | nobu | 2016-05-30 14:18:16 +0900 (Mon, 30 May 2016) | 4 lines

variable.c: check length

* variable.c (check_autoload_required): check length first before
  checking the first byte.
------------------------------------------------------------------------
r55206 | nagachika | 2016-05-30 03:28:39 +0900 (Mon, 30 May 2016) | 1 line

* ChangeLog: fix a typo for r55198.
------------------------------------------------------------------------
r55205 | svn | 2016-05-30 00:10:44 +0900 (Mon, 30 May 2016) | 1 line

* 2016-05-30
------------------------------------------------------------------------
r55204 | usa | 2016-05-30 00:10:44 +0900 (Mon, 30 May 2016) | 3 lines

* ext/-test-/auto_ext.rb: fixed a heedless bug introduced at r55198.
  this change will make RubyCI green.

------------------------------------------------------------------------
r55203 | naruse | 2016-05-29 22:58:45 +0900 (Sun, 29 May 2016) | 2 lines

* regexec.c (ONIGENC_IS_MBC_ASCII_WORD): redefine optimized one.
  WORD of Ruby's ascii compatible encoding is always [a-zA-Z0-9_].
------------------------------------------------------------------------
r55202 | naruse | 2016-05-29 22:56:38 +0900 (Sun, 29 May 2016) | 1 line

* regexec.c (match_at): make compilers optimize harder.
------------------------------------------------------------------------
r55201 | nobu | 2016-05-29 19:18:20 +0900 (Sun, 29 May 2016) | 4 lines

vm_core.h: rb_exc_set_backtrace declaration

* vm_core.h (rb_exc_set_backtrace): move declaration from
  eval_error.c and vm_args.c.
------------------------------------------------------------------------
r55200 | nobu | 2016-05-29 13:10:28 +0900 (Sun, 29 May 2016) | 5 lines

win32.c: RUBY_CRITICAL

* win32/win32.c (RUBY_CRITICAL): removed the argument but make
  just a block which does nothing, so that debuggers can step into
  the block.
------------------------------------------------------------------------
r55199 | svn | 2016-05-29 12:08:46 +0900 (Sun, 29 May 2016) | 1 line

* 2016-05-29
------------------------------------------------------------------------
r55198 | nobu | 2016-05-29 12:08:45 +0900 (Sun, 29 May 2016) | 4 lines

auto_ext.rb

* ext/-test-/auto_ext.rb (auto_ext): utitily method to create
  extension libraries for tests.
------------------------------------------------------------------------
r55197 | nobu | 2016-05-28 20:40:58 +0900 (Sat, 28 May 2016) | 4 lines

ruby-insert-heredoc-code-block

* misc/ruby-additional.el (ruby-insert-heredoc-code-block): insert
  here document code block for assert_separately mainly.
------------------------------------------------------------------------
r55196 | duerst | 2016-05-28 20:34:20 +0900 (Sat, 28 May 2016) | 4 lines

* test/test_unicode_normalize.rb: Add test to check for availability of
  Unicode data file; refactoring; fix an error with tests for destructive
  method (unicode_normalize!).

------------------------------------------------------------------------
r55195 | nobu | 2016-05-28 19:45:48 +0900 (Sat, 28 May 2016) | 4 lines

test_file_exhaustive.rb: blocking flock

* test/ruby/test_file_exhaustive.rb (test_flock): add assertions
  for the blocking cases.
------------------------------------------------------------------------
r55194 | svn | 2016-05-28 19:08:37 +0900 (Sat, 28 May 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55193 | duerst | 2016-05-28 19:08:37 +0900 (Sat, 28 May 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb: Add error messages to tests
  for data file availability; refactoring.

------------------------------------------------------------------------
r55192 | nobu | 2016-05-28 14:33:52 +0900 (Sat, 28 May 2016) | 1 line

ChangeLog: fix typos [ci skip]
------------------------------------------------------------------------
r55191 | rhe | 2016-05-28 14:00:36 +0900 (Sat, 28 May 2016) | 45 lines

openssl: move SSLSocket#initialize to C extension

* ext/openssl/lib/openssl/ssl.rb (SSLSocket): Move the implementation of
  SSLSocket#initialize to C. Initialize the SSL (OpenSSL object) in it.
  Currently this is delayed until ossl_ssl_setup(), which is called from
  SSLSocket#accept or #connect. Say we call SSLSocket#hostname= with an
  illegal value. We expect an exception to be raised in #hostname= but
  actually we get it in the later SSLSocket#connect. Because the SSL is
  not ready at #hostname=, the actual call of SSL_set_tlsext_host_name()
  is also delayed.
  This also fixes: [ruby-dev:49376] [Bug #11724]

* ext/openssl/ossl_ssl.c (ossl_ssl_initialize): Added. Almost the same
  as the Ruby version but this instantiate the SSL object at the same
  time.

  (ossl_ssl_setup): Adjust to the changes. Just set the underlying IO to
  the SSL.

  (ssl_started): Added. Make use of SSL_get_fd(). This returns -1 if not
  yet set by SSL_set_fd().

  (ossl_ssl_data_get_struct): Removed. Now GetSSL() checks that the SSL
  exists.

  (ossl_ssl_set_session): Don't call ossl_ssl_setup() here as now the
  SSL is already instantiated in #initialize.

  (ossl_ssl_shutdown, ossl_start_ssl, ossl_ssl_read_internal,
   ossl_ssl_write_internal, ossl_ssl_stop, ossl_ssl_get_cert,
   ossl_ssl_get_peer_cert, ossl_ssl_get_peer_cert_chain,
   ossl_ssl_get_version, ossl_ssl_get_cipher, ossl_ssl_get_state,
   ossl_ssl_pending, ossl_ssl_session_reused,
   ossl_ssl_get_verify_result, ossl_ssl_get_client_ca_list,
   ossl_ssl_npn_protocol, ossl_ssl_alpn_protocol, ossl_ssl_tmp_key): Use
  GetSSL() instead of ossl_ssl_data_get_struct(). Use ssl_started().

  (Init_ossl_ssl): Add method declarations of SSLSocket#{initialize,
  hostname=}.

* ext/openssl/ossl_ssl.h (GetSSL): Check that the SSL is not NULL. It
  should not be NULL because we now set it in #initialize.

* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_initialize): No need
  to check if the SSL is NULL.
------------------------------------------------------------------------
r55190 | hsbt | 2016-05-28 10:47:44 +0900 (Sat, 28 May 2016) | 2 lines

* gems/bundled_gems: Update latest releases, power_assert-0.3.0,
  test-unit 3.1.9, minitest 5.9.0, did_you_mean 1.0.1
------------------------------------------------------------------------
r55189 | hsbt | 2016-05-28 10:46:27 +0900 (Sat, 28 May 2016) | 4 lines

* addr2line.c: drop to support ATARI ST platform. It was discontinued
  more than two decades ago. [fix GH-1350] Patch by @cremno
* include/ruby/ruby.h: ditto.
* io.c: ditto.
------------------------------------------------------------------------
r55188 | duerst | 2016-05-28 10:39:48 +0900 (Sat, 28 May 2016) | 3 lines

* test/ruby/enc/test_case_comprehensive.rb: Converted exception for
  unavailable Unicode data files to failed assertion.

------------------------------------------------------------------------
r55187 | duerst | 2016-05-28 10:37:49 +0900 (Sat, 28 May 2016) | 1 line


------------------------------------------------------------------------
r55186 | svn | 2016-05-28 10:26:22 +0900 (Sat, 28 May 2016) | 1 line

* 2016-05-28
------------------------------------------------------------------------
r55185 | hsbt | 2016-05-28 10:26:21 +0900 (Sat, 28 May 2016) | 2 lines

* lib/cgi/util.rb: added to missing quote.
  [fix GH-1363][ci skip] Patch by @dwaller
------------------------------------------------------------------------
r55184 | kazu | 2016-05-27 22:13:08 +0900 (Fri, 27 May 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55183 | nobu | 2016-05-27 20:43:23 +0900 (Fri, 27 May 2016) | 4 lines

process.c: [DOC] Process.abort [ci skip]

* process.c (rb_f_abort): [DOC] Process.abort is a singleton
  method of Process, but not an instance method.
------------------------------------------------------------------------
r55182 | nobu | 2016-05-27 17:38:50 +0900 (Fri, 27 May 2016) | 4 lines

variable.c: hidden constants

* variable.c (rb_local_constants_i): exclude hidden constants.
  [ruby-core:75575] [Bug #12389]
------------------------------------------------------------------------
r55181 | nobu | 2016-05-27 17:09:46 +0900 (Fri, 27 May 2016) | 5 lines

transcode.c: scrub in the given encoding

* transcode.c (str_transcode0): scrub in the given encoding when
  the source encoding is given, not in the encoding of the
  receiver.  [ruby-core:75732] [Bug #12431]
------------------------------------------------------------------------
r55180 | nobu | 2016-05-27 15:07:34 +0900 (Fri, 27 May 2016) | 9 lines

fix non-static rb_scan_args

* include/ruby/ruby.h (rb_scan_args): remove nul padding which
  caused syntax error if fmt is not a string literal.
* include/ruby/ruby.h (rb_scan_args_verify): suppress array-bounds
  warnings by old clang.
* include/ruby/ruby.h (rb_scan_args0): make extractor macros
  inline functions, which do not varidate the format and are
  unnecessary to be expanded.
------------------------------------------------------------------------
r55179 | nobu | 2016-05-27 14:44:52 +0900 (Fri, 27 May 2016) | 3 lines

ruby.h: fix parameter name

* include/ruby/ruby.h (rb_scan_args): fix macro parameter name.
------------------------------------------------------------------------
r55178 | naruse | 2016-05-27 01:51:49 +0900 (Fri, 27 May 2016) | 7 lines

* symbol.c (is_identchar): use ISDIGIT instead of rb_enc_isalnum.
  Though rb_enc_isalnum is encoding aware function, its argument here
  is *m, which is a single byte. Therefore ISDIGIT is faster.

* symbol.c (is_special_global_name): ditto.

* symbol.c (rb_enc_symname_type): ditto.
------------------------------------------------------------------------
r55177 | svn | 2016-05-27 00:39:44 +0900 (Fri, 27 May 2016) | 1 line

* 2016-05-27
------------------------------------------------------------------------
r55176 | nobu | 2016-05-27 00:39:43 +0900 (Fri, 27 May 2016) | 13 lines

ruby.h: fix for old clang

* include/ruby/ruby.h (rb_scan_args): add nul padding here to
  apply to all references.

* include/ruby/ruby.h (rb_scan_args_verify): move length mismatch
  check outside conditional operators.

Since old clang cannot optimize away string literal dereference by
an immediate index, e.g., ""[0], and both of true and false side
expressions are compiled and warned unintentionally.  With such
old compilers, the check in rb_scan_args() does not work but may
result unpredictable value if the format is wrong.
------------------------------------------------------------------------
r55175 | rhe | 2016-05-26 14:24:58 +0900 (Thu, 26 May 2016) | 13 lines

openssl: avoid NULL dereference in {DH,DSA,RSA}_size()

* ext/openssl/ossl_pkey_dh.c (ossl_dh_compute_key): Check that the DH
  has 'p' (the prime) before calling DH_size(). We can create a DH with
  no parameter but DH_size() does not check and dereferences NULL.
  [ruby-core:75720] [Bug #12428]

* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_sign): Ditto. DSA_size() does
  not check dsa->q.

* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
  ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
  ossl_rsa_private_decrypt): Ditto. RSA_size() does not check rsa->n.
------------------------------------------------------------------------
r55174 | nobu | 2016-05-26 14:16:04 +0900 (Thu, 26 May 2016) | 4 lines

ruby.h: suppress warnings

* include/ruby/ruby.h (rb_scan_args_count): add filler nul bytes
  to suppress array-bounds warnings by old clang.
------------------------------------------------------------------------
r55173 | nobu | 2016-05-26 14:13:54 +0900 (Thu, 26 May 2016) | 4 lines

ruby.h: count and verify

* include/ruby/ruby.h (rb_scan_args_count): verify length with
  counting variables together.
------------------------------------------------------------------------
r55172 | nobu | 2016-05-26 14:11:07 +0900 (Thu, 26 May 2016) | 5 lines

revert r55171

Revert r55171, "ruby.h: fix clang warnings", it did fix
array-bounds warnings, but caused string-plus-int warnings
instead.
------------------------------------------------------------------------
r55171 | nobu | 2016-05-26 10:30:31 +0900 (Thu, 26 May 2016) | 4 lines

ruby.h: fix clang warnings

* include/ruby/ruby.h (rb_scan_args0): use pointer dereference
  forms instead of array forms, to get rid of warnings by clang.
------------------------------------------------------------------------
r55170 | svn | 2016-05-26 09:45:45 +0900 (Thu, 26 May 2016) | 1 line

* properties.
------------------------------------------------------------------------
r55169 | svn | 2016-05-26 09:45:45 +0900 (Thu, 26 May 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55168 | duerst | 2016-05-26 09:45:44 +0900 (Thu, 26 May 2016) | 4 lines

* test/ruby/enc/test_case_comprehensive.rb: Add set of comprehensive
  (across most Unicode characters; later across most character encodings)
  tests for case mapping.

------------------------------------------------------------------------
r55167 | svn | 2016-05-26 05:01:25 +0900 (Thu, 26 May 2016) | 1 line

* 2016-05-26
------------------------------------------------------------------------
r55166 | eregon | 2016-05-26 05:01:24 +0900 (Thu, 26 May 2016) | 1 line

* class.c (rb_define_class): Fix documentation.
------------------------------------------------------------------------
r55165 | naruse | 2016-05-25 20:51:37 +0900 (Wed, 25 May 2016) | 2 lines

* re.c (unescape_nonascii): scan hex up to only 3 characters.
  [Bug #12420] [Bug #12423]
------------------------------------------------------------------------
r55164 | duerst | 2016-05-25 19:07:19 +0900 (Wed, 25 May 2016) | 2 lines

* enc/unicode.c: Handle DOTLESS_i by hand because it isn't involved in folding.

------------------------------------------------------------------------
r55163 | naruse | 2016-05-25 18:45:22 +0900 (Wed, 25 May 2016) | 2 lines

* regparse.c (fetch_token_in_cc): raise error if given octal escaped
  character is too big. [Bug #12420] [Bug #12423]
------------------------------------------------------------------------
r55162 | rhe | 2016-05-25 17:50:03 +0900 (Wed, 25 May 2016) | 3 lines

openssl: drop OpenSSL 0.9.6/0.9.7 support

* ext/openssl, test/openssl: Drop OpenSSL < 0.9.8 support.
------------------------------------------------------------------------
r55161 | rhe | 2016-05-25 17:46:40 +0900 (Wed, 25 May 2016) | 5 lines

openssl: remove unnecessary 'extern "C"' blocks from local headers

* ext/openssl/openssl_missing.h, ext/openssl/ossl.h: Remove
  unnecessary 'extern "C"' blocks. We don't use C++ and these headers
  are local to ext/openssl, so there is no need to enclose with it.
------------------------------------------------------------------------
r55160 | rhe | 2016-05-25 17:46:39 +0900 (Wed, 25 May 2016) | 8 lines

openssl: remove check of OPENSSL_FIPS macro in extconf.rb

* ext/openssl/extconf.rb: Remove check of OPENSSL_FIPS macro. This is
  unneeded because we can check the macro directly in source code,
  just as we already do for OPENSSL_NO_* macros.

* ext/openssl/ossl.c: Replace occurrences of HAVE_OPENSSL_FIPS with
  OPENSSL_FIPS.
------------------------------------------------------------------------
r55159 | nobu | 2016-05-25 17:13:37 +0900 (Wed, 25 May 2016) | 3 lines

class.c: simplify

* class.c (rb_scan_args): merge code for n_trail.
------------------------------------------------------------------------
r55158 | nobu | 2016-05-25 17:11:36 +0900 (Wed, 25 May 2016) | 4 lines

ruby.h: rb_scan_args_validate

* include/ruby/ruby.h (rb_scan_args_validate): move failed
  condition to the terminal.  [ruby-core:75714] [Bug #12426]
------------------------------------------------------------------------
r55157 | nobu | 2016-05-25 15:05:48 +0900 (Wed, 25 May 2016) | 1 line

regcomp.c: fix debug conditionals
------------------------------------------------------------------------
r55156 | nobu | 2016-05-25 15:05:47 +0900 (Wed, 25 May 2016) | 4 lines

fake.rb: buildlibdir

* tool/fake.rb: set "buildlibdir" to the build directory, instead
  of "builddir" which is filterd by MakeMakefile#configuration.
------------------------------------------------------------------------
r55155 | naruse | 2016-05-25 13:21:32 +0900 (Wed, 25 May 2016) | 2 lines

* regcomp.c: remove condition for debug output because prelude
  doesn't use regexp now.
------------------------------------------------------------------------
r55154 | naruse | 2016-05-25 13:21:31 +0900 (Wed, 25 May 2016) | 2 lines

* regcomp.c (compile_length_tree): return error code immediately
  if compile_length_tree raised error [Bug #12418]
------------------------------------------------------------------------
r55153 | duerst | 2016-05-25 08:01:39 +0900 (Wed, 25 May 2016) | 3 lines

* enc/unicode.c: Fix flag error for switch from titlecase to lowercase.
* test/ruby/enc/test_case_mapping.rb: Tests for above error.

------------------------------------------------------------------------
r55152 | rhe | 2016-05-25 01:30:15 +0900 (Wed, 25 May 2016) | 11 lines

openssl: add EC.generate

* ext/openssl/ossl_pkey_ec.c (ec_key_new_from_group): Create a new
  EC_KEY on given EC group. Extracted from ossl_ec_key_initialize().
  (ossl_ec_key_s_generate): Added. Create a new EC instance and
  generate a random private and public key.
  (ossl_ec_key_initialize): Use ec_key_new_from_group().
  (Init_ossl_ec): Define the new method EC.generate. This change is
  for consistency with other PKey types.  [ruby-core:45541] [Bug #6567]

* test/openssl/test_pkey_ec.rb: Test that EC.generate works.
------------------------------------------------------------------------
r55151 | rhe | 2016-05-25 01:27:11 +0900 (Wed, 25 May 2016) | 9 lines

openssl: rename EC#generate_key to EC#generate_key!

* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_generate_key): Fix up RDoc.
  (Init_ossl_ec): Rename EC#generate_key to EC#generate_key!. Make the
  old name an alias of #generate_key!. This change is for consistency
  with other PKey types.  [ruby-core:45541] [Bug #6567]

* test/openssl/test_pkey_ec.rb: Use EC#generate_key! instead of
  EC#generate_key.
------------------------------------------------------------------------
r55150 | nobu | 2016-05-25 00:23:06 +0900 (Wed, 25 May 2016) | 5 lines

ruby.h: optimize rb_scan_args_set

* include/ruby/ruby.h (rb_scan_args_set): check the arity after
  adjusting argc for an option hash, for optimization in simpler
  cases.
------------------------------------------------------------------------
r55149 | svn | 2016-05-25 00:21:54 +0900 (Wed, 25 May 2016) | 1 line

* 2016-05-25
------------------------------------------------------------------------
r55148 | nobu | 2016-05-25 00:21:53 +0900 (Wed, 25 May 2016) | 4 lines

configure.in: merge ruby_cflags to XCFLAGS

* configure.in (XCFLAGS): merge flags only for ruby itself from
  ruby_cflags.
------------------------------------------------------------------------
r55147 | kazu | 2016-05-24 23:00:53 +0900 (Tue, 24 May 2016) | 1 line

Remove a space [ci skip]
------------------------------------------------------------------------
r55146 | rhe | 2016-05-24 22:09:03 +0900 (Tue, 24 May 2016) | 9 lines

openssl: make Cipher#key= and #iv= reject too long values

* ext/openssl/ossl_cipher.c (ossl_cipher_set_key, ossl_cipher_set_iv):
  Reject too long values as well as too short ones. Currently they
  just truncate the input but this would hide bugs and lead to
  unexpected encryption/decryption results.

* test/openssl/test_cipher.rb: Test that Cipher#key= and #iv= reject
  Strings with invalid length.
------------------------------------------------------------------------
r55145 | rhe | 2016-05-24 21:39:57 +0900 (Tue, 24 May 2016) | 13 lines

openssl: avoid deprecated M_ASN1_* macros

* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): Use
  ASN1_OCTET_STRING_set() instead of M_ASN1_OCTET_STRING_set(). Macros
  prefixed by "M_" are discouraged to be used from outside OpenSSL
  library[1].
  (ossl_x509ext_get_value): Likewise, use ASN1_STRING_print() instead
  of M_ASN1_OCTET_STRING_print().
  [1] https://git.openssl.org/gitweb/?p=openssl.git;a=blob;f=CHANGES;h=bf61913d7b01212b4d8b2f3c13d71d645914f67c;hb=b6079a7835f61daa9fb2cbf9addfa86049523933#l878

* ext/openssl/ossl.h: Include openssl/asn1.h instead of
  openssl/asn1_mac.h. It just includes openssl/asn1.h and defines some
  additional "M_" macros.
------------------------------------------------------------------------
r55144 | nobu | 2016-05-24 18:52:14 +0900 (Tue, 24 May 2016) | 5 lines

ruby.h: rb_scan_args_verify

* include/ruby/ruby.h (rb_scan_args_verify): verify the format to
  scan if no invalid chars and variable argument length matching,
  at the compile time if possible.
------------------------------------------------------------------------
r55143 | nobu | 2016-05-24 17:18:47 +0900 (Tue, 24 May 2016) | 4 lines

defines.h: fallback ERRORFUNC and WARNINGFUNC

* include/ruby/defines.h (ERRORFUNC, WARNINGFUNC): add fallback
  definitions.
------------------------------------------------------------------------
r55142 | naruse | 2016-05-24 16:49:25 +0900 (Tue, 24 May 2016) | 4 lines

* configure.in (ruby_cflags): separate from optflags [Bug #12409]
  -fexcess-precision=standard and -fp-model precise are set to this now.

* configure.in (cflags): use ruby_cflags.
------------------------------------------------------------------------
r55141 | nobu | 2016-05-24 16:28:34 +0900 (Tue, 24 May 2016) | 1 line

fix missing argument
------------------------------------------------------------------------
r55140 | nobu | 2016-05-24 16:20:55 +0900 (Tue, 24 May 2016) | 4 lines

fix __error__ and __warning__ attribute checks

* configure.in (ERRORFUNC, WARNINGFUNC): __error__ and __warning__
  attributes take a parenthesized string literal.
------------------------------------------------------------------------
r55139 | svn | 2016-05-24 12:44:00 +0900 (Tue, 24 May 2016) | 1 line

* 2016-05-24
------------------------------------------------------------------------
r55138 | shyouhei | 2016-05-24 12:43:59 +0900 (Tue, 24 May 2016) | 3 lines

	* common.mk : sort lines, and add missing dependencies suggested
	  by tool/update-deps

------------------------------------------------------------------------
r55137 | kazu | 2016-05-23 22:26:22 +0900 (Mon, 23 May 2016) | 1 line

fix indent (tabify) [ci skip]
------------------------------------------------------------------------
r55136 | nobu | 2016-05-23 21:33:39 +0900 (Mon, 23 May 2016) | 3 lines

missing.h: isfinite

* include/ruby/missing.h (isfinite): move from numeric.c.
------------------------------------------------------------------------
r55135 | rhe | 2016-05-23 21:10:38 +0900 (Mon, 23 May 2016) | 8 lines

openssl: Avoid reference to unset global variable in Init_openssl()

* ext/openssl/ossl.c (Init_openssl): Avoid reference to unset global
  variable. ossl_raise() may be called before dOSSL is set. Since
  global variables default to 0 and the default value of dOSSL set in
  Init_openssl() is also Qfalse, there is no real issue but confusing.
  Patch by Bertram Scharpf <software@bertram-scharpf.de>
  [ruby-core:58264] [Bug #9101]
------------------------------------------------------------------------
r55134 | rhe | 2016-05-23 20:40:07 +0900 (Mon, 23 May 2016) | 11 lines

openssl: use StringValueCStr() where NUL-terminated string is expected

* ext/openssl/ossl_asn1.c, ext/openssl/ossl_bn.c,
  ext/openssl/ossl_cipher.c, ext/openssl/ossl_digest.c
  ext/openssl/ossl_engine.c, ext/openssl/ossl_ns_spki.c
  ext/openssl/ossl_pkcs12.c, ext/openssl/ossl_pkcs7.c
  ext/openssl/ossl_pkey.c, ext/openssl/ossl_pkey_ec.c
  ext/openssl/ossl_rand.c, ext/openssl/ossl_ssl.c
  ext/openssl/ossl_x509attr.c, ext/openssl/ossl_x509cert.c
  ext/openssl/ossl_x509ext.c, ext/openssl/ossl_x509store.c: Use
  StringValueCStr() where NUL-terminated string is expected.
------------------------------------------------------------------------
r55133 | usa | 2016-05-23 20:21:11 +0900 (Mon, 23 May 2016) | 3 lines

* ext/bigdecimal/bigdecimal.c (isfinite): get rid of a warning on
  cygwin. [Bug #12417][ruby-core:75691]

------------------------------------------------------------------------
r55132 | rhe | 2016-05-23 19:47:37 +0900 (Mon, 23 May 2016) | 8 lines

openssl: fix incorrect return value check of RAND_* functions

* ext/openssl/ossl_rand.c (ossl_rand_egd, ossl_rand_egd_bytes):
  RAND_egd{_bytes,}() return -1 on failure, not 0.
  Patch by cremno phobia <cremno@mail.ru>
  [ruby-core:63795] [Bug #10053]
  (ossl_pseudo_bytes): Similar, RAND_pseudo_bytes() may return 0 or
  -1 on failure.
------------------------------------------------------------------------
r55131 | nobu | 2016-05-23 19:45:13 +0900 (Mon, 23 May 2016) | 4 lines

revert error attributes

* include/ruby/ruby.h (rb_scan_args0): revert error attributes,
  which may not be optimized away in readline extension library.
------------------------------------------------------------------------
r55130 | nobu | 2016-05-23 19:35:37 +0900 (Mon, 23 May 2016) | 1 line

fix a typo
------------------------------------------------------------------------
r55129 | usa | 2016-05-23 15:55:48 +0900 (Mon, 23 May 2016) | 8 lines

* ext/bigdecimal/bigdecimal.c (isfinite): isfinite does not always
  exist.  fixed build error on Windows itroduced at r55123.

I found that more complex definition of isfinite in numeric.c.
But it's unused because it inplicitly checks not defined _WIN32.
I don't know why the code do that.
IMO, the definition of isfinite should be put at missing.h.

------------------------------------------------------------------------
r55128 | nobu | 2016-05-23 13:40:43 +0900 (Mon, 23 May 2016) | 5 lines

tcltklib.c: elimitate dead code

* ext/tk/tcltklib.c (lib_do_one_event_core): elimitate dead code.
  after Check_Type, FIX2INT which implies conversion is not
  useless.  nil and fixnum cannot be tainted.
------------------------------------------------------------------------
r55127 | nobu | 2016-05-23 13:31:55 +0900 (Mon, 23 May 2016) | 12 lines

remove unnecessary volatiles

* ext/dbm/dbm.c (fdbm_initialize): used for rb_sys_fail_str.

* ext/sdbm/init.c (fsdbm_initialize): ditto.

* ext/tk/tcltklib.c (lib_do_one_event_core): no effect.

* ext/tk/tkutil/tkutil.c (tk_eval_cmd, tk_get_eval_string): no
  effect if tail call optimized.

* ext/tk/tkutil/tkutil.c (cbsubst_table_setup): set to const.
------------------------------------------------------------------------
r55126 | nobu | 2016-05-23 13:31:54 +0900 (Mon, 23 May 2016) | 4 lines

tkutil.c: GC guards

* ext/tk/tkutil/tkutil.c (cbsubst_table_setup): add GC guards
  instead of volatile after the uses.
------------------------------------------------------------------------
r55125 | nobu | 2016-05-23 13:19:43 +0900 (Mon, 23 May 2016) | 5 lines

make compile error if possible

* include/ruby/ruby.h (rb_scan_args0): make compile error if the
  format is wrong or does not match with the variable argument
  length if possible.
------------------------------------------------------------------------
r55124 | nobu | 2016-05-23 12:47:11 +0900 (Mon, 23 May 2016) | 5 lines

fatal error if variable argument length mismatch

* include/ruby/ruby.h (rb_scan_args0): raise fatal error if
  variable argument length does not match, it is a bug in the code
  which uses rb_scan_args, not a runtime error.
------------------------------------------------------------------------
r55123 | nobu | 2016-05-23 12:30:30 +0900 (Mon, 23 May 2016) | 5 lines

bigdecimal.c: fix FloatDomainError

* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
  non-finite float values not to raise FloatDomainError.
  [ruby-core:75682] [Bug #12414]
------------------------------------------------------------------------
r55122 | naruse | 2016-05-23 12:23:24 +0900 (Mon, 23 May 2016) | 2 lines

* array.c (rb_ary_fill): suppress warnings: 'item' may be used
  uninitialized in this function
------------------------------------------------------------------------
r55121 | svn | 2016-05-23 08:09:39 +0900 (Mon, 23 May 2016) | 1 line

* 2016-05-23
------------------------------------------------------------------------
r55120 | normal | 2016-05-23 08:09:38 +0900 (Mon, 23 May 2016) | 3 lines

dir.c (dir_close): update RDoc for 2.3 #close change

[ruby-core:75679] [Bug #12413]
------------------------------------------------------------------------
r55119 | svn | 2016-05-22 20:03:44 +0900 (Sun, 22 May 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r55118 | seki | 2016-05-22 20:03:43 +0900 (Sun, 22 May 2016) | 1 line

use finalizer trick instead of thread.
------------------------------------------------------------------------
r55117 | duerst | 2016-05-22 17:25:18 +0900 (Sun, 22 May 2016) | 3 lines

       * test/ruby/enc/test_case_options.rb: adjust test class name
  to match file name

------------------------------------------------------------------------
r55116 | duerst | 2016-05-22 17:24:08 +0900 (Sun, 22 May 2016) | 3 lines

       * rename test/ruby/enc/test_casing_options.rb to test_case_options.rb
  for consistency

------------------------------------------------------------------------
r55115 | nobu | 2016-05-22 17:06:57 +0900 (Sun, 22 May 2016) | 5 lines

transcode.c: GC guards

* transcode.c (enc_arg, str_transcode_enc_args, econv_args):
  remove volatile, and add GC guards in callers.
  [ruby-core:75664] [Bug #12411]
------------------------------------------------------------------------
r55114 | nobu | 2016-05-22 16:27:02 +0900 (Sun, 22 May 2016) | 5 lines

-test-/integer

* ext/-test-/integer/core_ext.c: move testutil/integer.c.
* test/lib/-test-/integer.rb: extract implementation details from
  test/unit/assertions.rb.  [Bug #12408]
------------------------------------------------------------------------
r55113 | duerst | 2016-05-22 14:57:44 +0900 (Sun, 22 May 2016) | 9 lines

       * include/ruby/oniguruma.h: Extend OnigEncodingTypeDefine to define a
  new encoding primitive 'case_map' for case mapping
* enc/utf-8.c, utf_16be/le.c, utf_32be/le.c:
  add onigenc_unicode_case_map as case_map primitive
* enc/ascii.c, big5.c, cp949.c, emacs_mule.c, euc_jp/kr/tw.c, gb18030.c,
  gbk.c, iso_8859_1/2/3/4/5/6/7/8/9/10/11/13/14/15/16.c, koi8_r/u.c,
  shift_jis.c, us_ascii.c, windows_1250/1251/1252.c:
  add onigenc_not_support_case_map as case_map primitive

------------------------------------------------------------------------
r55112 | duerst | 2016-05-22 14:45:45 +0900 (Sun, 22 May 2016) | 1 line

regenc.h/c: Define new function onigenc_not_support_case_map
------------------------------------------------------------------------
r55111 | naruse | 2016-05-22 12:31:22 +0900 (Sun, 22 May 2016) | 2 lines

* include/ruby/ruby.h (rb_scan_args): use original rb_scan_args
  when fmt is dynamic.
------------------------------------------------------------------------
r55110 | naruse | 2016-05-22 11:44:54 +0900 (Sun, 22 May 2016) | 6 lines

* class.c (rb_scan_args): moved to bottom of the file to make the
  effect of `#undef rb_scan_args` the minimum.

* include/ruby/ruby.h (rb_scan_args): overwrite only if GCC and
  optimized. Visual C++ 14 or later can compile it but make it
  conservative.
------------------------------------------------------------------------
r55109 | nobu | 2016-05-22 11:28:03 +0900 (Sun, 22 May 2016) | 1 line

move duplicate assertions
------------------------------------------------------------------------
r55108 | nobu | 2016-05-22 03:09:05 +0900 (Sun, 22 May 2016) | 8 lines

just check Integer

* test/ruby/test_bignum.rb (test_pow): just assert to be an
  Integer.

* test/ruby/test_integer_comb.rb (check_class): ditto.

* test/ruby/test_numeric.rb (test_coerce): ditto.
------------------------------------------------------------------------
r55107 | nobu | 2016-05-22 03:06:04 +0900 (Sun, 22 May 2016) | 4 lines

hash method values

* test/ruby/test_{complex,range,rational,struct}.rb (test_hash):
  hash values should be an Integer, not only a Fixnum.
------------------------------------------------------------------------
r55106 | svn | 2016-05-22 02:47:53 +0900 (Sun, 22 May 2016) | 1 line

* 2016-05-22
------------------------------------------------------------------------
r55105 | naruse | 2016-05-22 02:47:52 +0900 (Sun, 22 May 2016) | 5 lines

* ext/zlib/zlib.c: remove hacky macro introduced at r30437.

* ext/zlib/zlib.c (gzfile_make_header): cast as long (instead of int).

* ext/zlib/zlib.c (gzfile_make_footer): ditto.
------------------------------------------------------------------------
r55104 | naruse | 2016-05-21 23:01:23 +0900 (Sat, 21 May 2016) | 4 lines

Revert r50102

This reverts "* include/ruby/ruby.h (rb_scan_args): don't use ALWAYS_INLINE with"
This rb_scan_args macro is GCCism.
------------------------------------------------------------------------
r55103 | usa | 2016-05-21 22:47:06 +0900 (Sat, 21 May 2016) | 3 lines

* include/ruby/ruby.h (rb_scan_args): don't use ALWAYS_INLINE with
  `inline`.  if gcc needs this duplication, do in ALWAYS_INLINE macro.

------------------------------------------------------------------------
r55102 | naruse | 2016-05-21 22:24:33 +0900 (Sat, 21 May 2016) | 4 lines

* include/ruby/ruby.h (rb_scan_args): use __VA_ARGS__ instead of
  va_arg to allow compilers optimize more aggressive.
  https://gustedt.wordpress.com/2011/07/10/avoid-writing-va_arg-functions/
  rb_scan_args is now expected to be statically resolved.
------------------------------------------------------------------------
r55101 | naruse | 2016-05-21 22:24:32 +0900 (Sat, 21 May 2016) | 1 line

* configure.in (ALWAYS_INLINE): force compilers the function inlined.
------------------------------------------------------------------------
r55100 | rhe | 2016-05-21 16:25:00 +0900 (Sat, 21 May 2016) | 15 lines

openssl: fix possible SEGV on race between SSLSocket#stop and #connect

* ext/openssl/ossl_ssl.c (ossl_ssl_stop): Don't free the SSL struct
  here. Since some methods such as SSLSocket#connect releases GVL,
  there is a chance of use after free if we free the SSL from another
  thread. SSLSocket#stop was documented as "prepares it for another
  connection" so this is a slightly incompatible change. However when
  this sentence was added (r30090, Add toplevel documentation for
  OpenSSL, 2010-12-06), it didn't actually. The current behavior is
  from r40304 (Correct shutdown behavior w.r.t GC., 2013-04-15).
  [ruby-core:74978] [Bug #12292]

* ext/openssl/lib/openssl/ssl.rb (sysclose): Update doc.

* test/openssl/test_ssl.rb: Test this.
------------------------------------------------------------------------
r55099 | rhe | 2016-05-21 14:45:41 +0900 (Sat, 21 May 2016) | 5 lines

openssl: fix SSL client example in documentation [ci skip]

* ext/openssl/ossl.c: [DOC] Fix SSL client example. The variable name
  was wrong. Patch by Andreas Tiefenthaler <at@an-ti.eu> (@pxlpnk).
  [GH ruby/openssl#32]
------------------------------------------------------------------------
r55098 | rhe | 2016-05-21 14:30:48 +0900 (Sat, 21 May 2016) | 8 lines

openssl: add OpenSSL::PKey::EC#private? and #public?

* ext/openssl/ossl_pkey_ec.c: rename PKey::EC#private_key? and
  #public_key? to #private? and #public? for consistency with other
  PKey types. Old names remain as alias.  [ruby-core:45541] [Bug #6567]

* test/openssl/test_pkey_ec.rb (test_check_key): check private? and
  public? works correctly.
------------------------------------------------------------------------
r55097 | rhe | 2016-05-21 12:44:10 +0900 (Sat, 21 May 2016) | 5 lines

openssl: remove impossible EOFError raise in OpenSSL::Buffering

* ext/openssl/lib/openssl/buffering.rb (read_nonblock, readpartial):
  Remove impossible EOFError raise. Patch by Zach Anker
  <zanker@squareup.com>.  [GH ruby/openssl#23]
------------------------------------------------------------------------
r55096 | nobu | 2016-05-21 11:18:44 +0900 (Sat, 21 May 2016) | 4 lines

ipaddr: fix typo [ci skip]

* lib/ipaddr.rb: [DOC] fix documentation of IN6MASK to mention
  IPv6.  [Fix GH-1349]
------------------------------------------------------------------------
r55095 | nobu | 2016-05-21 11:12:55 +0900 (Sat, 21 May 2016) | 4 lines

Restore documentation of ARGF

* io.c (Init_IO): [DOC] define dummy ARGF instead of ARGF.class to
  re-enable the generation of ARGF documentation.  [Fix GH-1358]
------------------------------------------------------------------------
r55094 | nobu | 2016-05-21 11:07:31 +0900 (Sat, 21 May 2016) | 4 lines

methods.rdoc: closing tag

* doc/syntax/methods.rdoc (Method Names): add proper closing tag.
  [Fix GH-1356]
------------------------------------------------------------------------
r55093 | nobu | 2016-05-21 09:26:31 +0900 (Sat, 21 May 2016) | 4 lines

configure.in: missing macro definition

* configure.in (RUBY_CHECK_SETJMP): fix missing macro definition
  for the configured result.  fix up r55021.
------------------------------------------------------------------------
r55091 | nobu | 2016-05-21 00:36:34 +0900 (Sat, 21 May 2016) | 5 lines

fix build on no-fork-spawnv platforms

* process.c (rb_execarg_commandline): build command line string
  from argument vector in rb_execarg.
  [ruby-core:75611] [Bug #12398]
------------------------------------------------------------------------
r55090 | nobu | 2016-05-21 00:30:29 +0900 (Sat, 21 May 2016) | 6 lines

io.c: conditionally used functions

* io.c (pipe_atexit): only used on Windows

* io.c (rb_execarg_fixup_v): wrapper only used fork or spawnv is
  available.
------------------------------------------------------------------------
r55089 | nobu | 2016-05-21 00:29:41 +0900 (Sat, 21 May 2016) | 4 lines

ossl.c: suppress warnings

* ext/openssl/ossl.c (ossl_pem_passwd_cb): check integer
  precision.
------------------------------------------------------------------------
r55088 | svn | 2016-05-21 00:05:26 +0900 (Sat, 21 May 2016) | 1 line

* 2016-05-21
------------------------------------------------------------------------
r55087 | rhe | 2016-05-21 00:05:25 +0900 (Sat, 21 May 2016) | 26 lines

openssl: improve handling of password for encrypted PEM

* ext/openssl/ossl.c (ossl_pem_passwd_value): Added. Convert the
  argument to String with StringValue() and validate the length is in
  4..PEM_BUFSIZE. PEM_BUFSIZE is a macro defined in OpenSSL headers.
  (ossl_pem_passwd_cb): When reading/writing encrypted PEM format, we
  used to pass the password to PEM_def_callback() directly but it was
  problematic. It is not NUL character safe. And surprisingly, it
  silently truncates the password to 1024 bytes.  [GH ruby/openssl#51]

* ext/openssl/ossl.h: Add function prototype declaration of newly
  added ossl_pem_passwd_value().

* ext/openssl/ossl_pkey.c (ossl_pkey_new_from_data): Use
  ossl_pem_passwd_value() to validate the password String.

* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize, ossl_dsa_export):
  ditto.

* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize,
  ossl_ec_key_to_string): ditto.

* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize, ossl_rsa_export):
  ditto.

* test/openssl/test_pkey_{dsa,ec,rsa}.rb: test this.
------------------------------------------------------------------------
r55086 | ngoto | 2016-05-20 23:55:23 +0900 (Fri, 20 May 2016) | 10 lines

capa should be even number on 64-bit SPARC for 8-byte word alignment

* id_table.c (list_id_table_init): When unaligned word access is
  prohibited and sizeof(VALUE) is 8 (64-bit machines),
  capa should always be even number for 8-byte word alignment
  of the values of a table. This code assumes that sizeof(ID) is 4,
  sizeof(VALUE) is 8, and xmalloc() returns 8-byte aligned memory.
  This fixes bus error on 64-bit SPARC Solaris 10.
  [Bug #12406][ruby-dev:49631]

------------------------------------------------------------------------
r55085 | nobu | 2016-05-20 23:24:39 +0900 (Fri, 20 May 2016) | 4 lines

thread_pthread.c: no fork, no gvl_atfork

* thread_pthread.c (gvl_atfork): used in rb_thread_atfork_internal
  only if HAVE_WORKING_FORK is defined.
------------------------------------------------------------------------
r55084 | ngoto | 2016-05-20 22:33:10 +0900 (Fri, 20 May 2016) | 4 lines

Use HAVE_BUILTIN___BUILTIN_CONSTANT_P

* symbol.h (rb_id2sym): Use HAVE_BUILTIN___BUILTIN_CONSTANT_P

------------------------------------------------------------------------
r55083 | kazu | 2016-05-20 22:21:55 +0900 (Fri, 20 May 2016) | 4 lines

fix typos [ci skip]

* ext/date/date_core.c: [DOC] fix typos.
  [fix GH-1360] patched by @soundasleep
------------------------------------------------------------------------
r55082 | ngoto | 2016-05-20 21:29:06 +0900 (Fri, 20 May 2016) | 16 lines

Use RB_GNUC_EXTENSION_BLOCK instead of __extension__

* include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK):
  macros for skipping __extension__ on non-GCC compilers.
* eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of
  __extension__ because __extension__ is a GNU extension.
  Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x.
  [Bug #12397] [ruby-dev:49629].
* internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
* include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
* include/ruby/intern.h (rb_str_new, rb_str_new_cstr,
  rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr,
  rb_usascii_str_new_cstr, rb_utf8_str_new_cstr,
  rb_external_str_new_cstr, rb_locale_str_new_cstr,
  rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto

------------------------------------------------------------------------
r55081 | nobu | 2016-05-20 21:17:14 +0900 (Fri, 20 May 2016) | 4 lines

win32ole.c: share the content

* ext/win32ole/win32ole.c (fole_missing): make substring or dup to
  share the content if possible.
------------------------------------------------------------------------
r55080 | nobu | 2016-05-20 20:47:16 +0900 (Fri, 20 May 2016) | 4 lines

win32ole.c: remove dead code

* ext/win32ole/win32ole.c (fole_missing): remove dead code
  meaningless since r51913.  RSTRING_LEN does not exceed LONG_MAX.
------------------------------------------------------------------------
r55079 | nobu | 2016-05-20 19:48:51 +0900 (Fri, 20 May 2016) | 8 lines

exclude non-VALUE in memo from GC

* internal.h (NEW_PARTIAL_MEMO_FOR): shrink buffer array not to
  mark non-VALUE fields.  fix check_rvalue_consistency abort with
  RGENGC_CHECK_MODE=2.
* internal.h (NEW_CMP_OPT_MEMO): exclude struct cmp_opt_data from
  the valid array range.
* enum.c (slicewhen_i): exclude inverted too.
------------------------------------------------------------------------
r55078 | rhe | 2016-05-20 13:36:03 +0900 (Fri, 20 May 2016) | 20 lines

openssl: don't test default session lifetime value

OpenSSL's default session timeout for TLS v1.0 method is not 300 seconds
but 7200. The TLS v1.0 specification[1] mentions about it as just "An
upper limit of 24 hours is suggested for session ID lifetimes,". And
according to OpenSSL 1.0.2h source comment[2], the value 7200 is decided
just because "the 24 hours mentioned in the TLSv1 spec is way too long
for http, the cache would over fill".

The reason why the default lifetime is set to 300 is maybe an OpenSSL
bug. We always call SSL_CTX_new() with SSLv23_method(), and this set
ssl_ctx->session to 300, the default value for SSLv23_method(). But the
following SSL_set_ssl_method() call does not update it. By the way this
will be fixed in OpenSSL 1.1.0.

[1] https://tools.ietf.org/html/rfc2246#appendix-F.1.4
[2] https://git.openssl.org/?p=openssl.git;a=blob;f=ssl/t1_lib.c;h=dd5bd0050d89f5585c1b06a227eb8221ebf984f1;hb=5dd94f1847c744929a3bd24819f1c99644bb18c7#l193

* test/openssl/test_ssl_session.rb (test_session): remove assertion of
  the default session timeout.
------------------------------------------------------------------------
r55077 | svn | 2016-05-20 02:21:30 +0900 (Fri, 20 May 2016) | 1 line

* 2016-05-20
------------------------------------------------------------------------
r55076 | sorah | 2016-05-20 02:21:29 +0900 (Fri, 20 May 2016) | 1 line

fix a typo
------------------------------------------------------------------------
r55075 | kazu | 2016-05-19 21:23:57 +0900 (Thu, 19 May 2016) | 6 lines

fix document of Regexp#match?

* re.c (rb_reg_match_m_p): [DOC] fix return value in rdoc.

* test/ruby/test_regexp.rb (TestRegexp#test_match_p): add some
  tests from document.
------------------------------------------------------------------------
r55074 | rhe | 2016-05-19 13:53:05 +0900 (Thu, 19 May 2016) | 20 lines

openssl: register ex_data index for X509_STORE{_CTX,} respectively

* ext/openssl/ossl.c (Init_openssl): register an ex_data index for
  X509_STORE and X509_STORE_CTX respectively. Since they don't share
  the ex_data index registry, we can't use the same index.
  (ossl_verify_cb): use the the correct index.

* ext/openssl/ossl_ssl.c (ossl_ssl_verify_callback): ditto.

* ext/openssl/ossl_x509store.c (ossl_x509store_set_vfy_cb): ditto.
  (ossl_x509stctx_verify): ditto.

* ext/openssl/ossl.h (void ossl_clear_error): add extern declarations
  of ossl_store_{ctx_,}ex_verify_cb_idx.

* ext/openssl/openssl_missing.c: remove X509_STORE_set_ex_data and
  X509_STORE_get_ex_data.

* ext/openssl/openssl_missing.h: implement X509_STORE_get_ex_data,
  X509_STORE_set_ex_data and X509_STORE_get_ex_new_index as macros.
------------------------------------------------------------------------
r55073 | usa | 2016-05-19 13:34:30 +0900 (Thu, 19 May 2016) | 3 lines

* test/ruby/test_array.rb (TestArray#test_push_over_ary_max): it seems to take
  long time on mswinci.

------------------------------------------------------------------------
r55072 | svn | 2016-05-19 13:12:58 +0900 (Thu, 19 May 2016) | 1 line

* properties.
------------------------------------------------------------------------
r55071 | rhe | 2016-05-19 13:12:57 +0900 (Thu, 19 May 2016) | 7 lines

openssl: check argument type in OpenSSL::X509::Attribute#value=

* ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): check that the
  argument is an OpenSSL::ASN1::Data before converting to ASN1_TYPE.
  This fixes SEGV on OpenSSL::X509::Attribute#value=(non-asn1-value).

* test/openssl/test_x509attr.rb: add tests for OpenSSL::X509::Attribute.
------------------------------------------------------------------------
r55070 | nobu | 2016-05-19 12:46:20 +0900 (Thu, 19 May 2016) | 5 lines

assertions.rb: leave timeout to invoke_ruby

* test/lib/test/unit/assertions.rb (assert_separately): leave
  timeout to invoke_ruby, which handles outputs and status of the
  target process since r51539.
------------------------------------------------------------------------
r55069 | nobu | 2016-05-19 12:10:12 +0900 (Thu, 19 May 2016) | 6 lines

re.c: fix match?

* re.c (rb_reg_match_m_p): fix match against empty string.
  rb_str_offset returns the end when the position exceeds the
  length.  fix the range parameter of onig_search.
  [ruby-core:75604] [Bug #12394]
------------------------------------------------------------------------
r55068 | nobu | 2016-05-19 12:09:00 +0900 (Thu, 19 May 2016) | 1 line

fix typo
------------------------------------------------------------------------
r55067 | nobu | 2016-05-19 11:37:38 +0900 (Thu, 19 May 2016) | 4 lines

re.c: match? should return nil if no match

* re.c (rb_reg_match_m_p): should return nil if no match, as the
  document says.  [Feature #8110]
------------------------------------------------------------------------
r55066 | svn | 2016-05-19 00:17:32 +0900 (Thu, 19 May 2016) | 1 line

* 2016-05-19
------------------------------------------------------------------------
r55065 | naruse | 2016-05-19 00:17:31 +0900 (Thu, 19 May 2016) | 1 line

* re.c (reg_names_iter): specify capacify
------------------------------------------------------------------------
r55064 | kazu | 2016-05-18 22:40:51 +0900 (Wed, 18 May 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r55063 | usa | 2016-05-18 21:31:53 +0900 (Wed, 18 May 2016) | 4 lines

* thread.c (recursive_list_access): a object id may be a Bignum.  so,
  the list must be a objhash, instead of a identhash.
  this fixes many test errors on mswin64 CI.

------------------------------------------------------------------------
r55062 | nobu | 2016-05-18 20:32:26 +0900 (Wed, 18 May 2016) | 4 lines

re.c: fix type

* re.c (rb_reg_match_m_p): fix type of variable for onig_search
  result.
------------------------------------------------------------------------
r55061 | naruse | 2016-05-18 19:37:13 +0900 (Wed, 18 May 2016) | 2 lines

* re.c (rb_reg_match_m_p): Introduce Regexp#match?, which returns
  bool and doesn't save backref.
------------------------------------------------------------------------
r55060 | rhe | 2016-05-18 19:07:38 +0900 (Wed, 18 May 2016) | 4 lines

openssl: fix test failure due to the previous commit

* test/openssl/test_pkey_ec.rb (test_ec_point_mul): My previous commit
  r55059 was broken. I should have been more careful. Sorry.
------------------------------------------------------------------------
r55059 | rhe | 2016-05-18 17:52:37 +0900 (Wed, 18 May 2016) | 4 lines

openssl: fix test failure of OpenSSL::TestEC#test_ec_point_mul

* test/openssl/test_pkey_ec.rb (test_ec_point_mul): CentOS 7 patches
OpenSSL to reject curves defined over a small field.
------------------------------------------------------------------------
r55058 | nobu | 2016-05-18 17:06:23 +0900 (Wed, 18 May 2016) | 4 lines

test_random.rb: skip old OpenSSL

* test/openssl/test_random.rb (OpenSSL::TestRandom): ignore
  out-of-date OpenSSL before 1.0, as well as other tests.
------------------------------------------------------------------------
r55057 | rhe | 2016-05-18 16:59:09 +0900 (Wed, 18 May 2016) | 5 lines

openssl: fix OpenSSL error queue leak in OpenSSL::PKCS12.new

* ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): pop errors
  leaked by PKCS12_parse(). This is a bug in OpenSSL, which exists
  in the versions before the version 1.0.0t, 1.0.1p, 1.0.2d.
------------------------------------------------------------------------
r55056 | nobu | 2016-05-18 16:24:02 +0900 (Wed, 18 May 2016) | 4 lines

openssl/test_random.rb: requires utils.rb

* test/openssl/test_random.rb: requires test/openssl/utils.rb for
  OpenSSL::TestCase now.
------------------------------------------------------------------------
r55055 | nobu | 2016-05-18 16:04:55 +0900 (Wed, 18 May 2016) | 5 lines

downloader.rb: disable verify if rubygems is old

* tool/downloader.rb (Downloader::RubyGems.download): verify gems
  only if RubyGems is 2.4 or later.  old RubyGems fails to verify
  almost all of bundled gems.
------------------------------------------------------------------------
r55054 | nobu | 2016-05-18 14:52:40 +0900 (Wed, 18 May 2016) | 4 lines

string.c: integer overflow

* string.c (rb_str_modify_expand): check integer overflow.
  [ruby-core:75592] [Bug #12390]
------------------------------------------------------------------------
r55053 | naruse | 2016-05-18 13:56:02 +0900 (Wed, 18 May 2016) | 9 lines

* re.c (match_ary_subseq): get subseq of match array without creating
  temporary array.

* re.c (match_ary_aref): get element(s) of match array without creating
  temporary array.

* re.c (match_aref): Use match_ary_subseq with handling irregulars.

* re.c (match_values_at): Use match_ary_aref.
------------------------------------------------------------------------
r55052 | nobu | 2016-05-18 13:36:02 +0900 (Wed, 18 May 2016) | 4 lines

ossl_pkey_ec.c: index types

* ext/openssl/ossl_pkey_ec.c (ossl_ec_point_mul): fix index types.
  Array length is long, not int.
------------------------------------------------------------------------
r55051 | rhe | 2016-05-18 13:07:47 +0900 (Wed, 18 May 2016) | 25 lines

openssl: clear OpenSSL error queue before return to Ruby

* ext/openssl/ossl_x509cert.c (ossl_x509_verify): X509_verify()
  family may put errors on 0 return (0 means verification failure).
  Clear OpenSSL error queue before return to Ruby. Since the queue is
  thread global, remaining errors in the queue can cause an unexpected
  error in the next OpenSSL operation.  [ruby-core:48284] [Bug #7215]

* ext/openssl/ossl_x509crl.c (ossl_x509crl_verify): ditto.

* ext/openssl/ossl_x509req.c (ossl_x509req_verify): ditto.

* ext/openssl/ossl_x509store.c (ossl_x509stctx_verify): ditto.

* ext/openssl/ossl_pkey_dh.c (dh_generate): clear the OpenSSL error
  queue before re-raising exception.

* ext/openssl/ossl_pkey_dsa.c (dsa_generate): ditto.

* ext/openssl/ossl_pkey_rsa.c (rsa_generate): ditto.

* ext/openssl/ossl_ssl.c (ossl_start_ssl): ditto.

* test/openssl: check that OpenSSL.errors is empty every time after
  running a test case.
------------------------------------------------------------------------
r55050 | rhe | 2016-05-18 13:07:45 +0900 (Wed, 18 May 2016) | 23 lines

openssl: report errors in OpenSSL error queue when clear it

* ext/openssl/ossl.c (ossl_clear_error): Extracted from
  ossl_make_error(). This prints errors in the OpenSSL error queue if
  OpenSSL.debug is true, and clears the queue.
  (ossl_make_error): use ossl_clear_error().

* ext/openssl/ossl.h: add prototype declaration of ossl_make_error().
  (OSSL_BIO_reset) use ossl_clear_error() to clear the queue. Clearing
  silently makes debugging difficult.

* ext/openssl/ossl_engine.c (ossl_engine_s_by_id): ditto.

* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): ditto.

* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_verify): ditto.

* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.

* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize): ditto.
  (ossl_ec_group_initialize): ditto.

* ext/openssl/ossl_ssl.c (ossl_ssl_shutdown): ditto.
------------------------------------------------------------------------
r55049 | mrkn | 2016-05-18 12:21:53 +0900 (Wed, 18 May 2016) | 1 line

Describe Enumerable#sum in NEWS [ci skip]
------------------------------------------------------------------------
r55048 | rhe | 2016-05-18 11:55:46 +0900 (Wed, 18 May 2016) | 8 lines

ext/openssl: refactor OpenSSL::PKey::EC::Point#mul

* ext/openssl/ossl_pkey_ec.c (ossl_ec_point_mul): Validate the
  arguments before passing to EC_POINT(s)_mul(). Add description of this
  method.  [ruby-core:65152] [Bug #10268]

* test/openssl/test_pkey_ec.rb (test_ec_point_mul): Test that
  OpenSSL::PKey::EC::Point#mul works.
------------------------------------------------------------------------
r55047 | rhe | 2016-05-18 11:55:45 +0900 (Wed, 18 May 2016) | 13 lines

openssl: fix equality test methods of OpenSSL::BN

* ext/openssl/ossl_bn.c (try_convert_to_bnptr): Extracted from
  GetBNPtr(). This doesn't raise exception but returns NULL on error.
  (GetBNPtr): Raise TypeError if conversion fails.
  (ossl_bn_eq): Implement BN#==.
  (ossl_bn_eql): #eql? should not raise TypeError even if the argument
  is not compatible with BN.
  (ossl_bn_hash): Implement BN#hash.

* ext/openssl/ossl_bn.c (Init_ossl_bn): Define #== and #hash.

* test/openssl/test_bn.rb: Test BN#eql?, #== and #hash
------------------------------------------------------------------------
r55046 | nobu | 2016-05-18 11:05:30 +0900 (Wed, 18 May 2016) | 1 line

test/win32ole/test_win32ole_variant.rb: use other than Integer
------------------------------------------------------------------------
r55045 | nobu | 2016-05-18 10:21:57 +0900 (Wed, 18 May 2016) | 4 lines

extension.rdoc: RB_{INTEGER,FLOAT}_TYPE_P [ci skip]

* doc/extension.rdoc, doc/extension.rdoc (Checking Data Types):
  [DOC] mention RB_INTEGER_TYPE_P and RB_FLOAT_TYPE_P.
------------------------------------------------------------------------
r55044 | nobu | 2016-05-18 10:17:43 +0900 (Wed, 18 May 2016) | 5 lines

ruby.h: RB_INTEGER_TYPE_P

* include/ruby/ruby.h (RB_INTEGER_TYPE_P): new macro and
  underlying inline function to check if the object is an
  Integer (Fixnum or Bignum).
------------------------------------------------------------------------
r55043 | nobu | 2016-05-18 10:16:50 +0900 (Wed, 18 May 2016) | 4 lines

enum.c: fix declaration-after-statement

* enum.c (sum_iter): workaround of mixed declarations and code.
  erred by -Werror=declaration-after-statement option.
------------------------------------------------------------------------
r55042 | nobu | 2016-05-18 10:05:36 +0900 (Wed, 18 May 2016) | 4 lines

extension.rdoc: RB_TYPE_P [ci skip]

* doc/extension.rdoc, doc/extension.rdoc (Checking Data Types):
  [DOC] mention RB_TYPE_P.
------------------------------------------------------------------------
r55041 | mrkn | 2016-05-18 09:54:52 +0900 (Wed, 18 May 2016) | 4 lines

Optimize each_sum for hashes

* enum.c (enum_sum, hash_sum, hash_sum_i, enum_sum_i, sum_iter):
  Optimize for hashes when each method isn't redefined.
------------------------------------------------------------------------
r55040 | mrkn | 2016-05-18 09:16:06 +0900 (Wed, 18 May 2016) | 4 lines

Extract int_range_sum from enum_sum

* enum.c (enum_sum, int_range_sum): Extract int_range_sum from
  enum_sum.
------------------------------------------------------------------------
r55039 | nobu | 2016-05-18 03:16:08 +0900 (Wed, 18 May 2016) | 4 lines

re.c: fix up r55036

* re.c (match_values_at): fix regression at r55036.
  MatchData#values_at accepts Range.
------------------------------------------------------------------------
r55038 | nobu | 2016-05-18 02:24:34 +0900 (Wed, 18 May 2016) | 4 lines

vm_core.h: bit flags

* vm_core.h (rb_vm_struct, rb_thread_struct): make flags bit
  fields.
------------------------------------------------------------------------
r55037 | naruse | 2016-05-18 02:10:01 +0900 (Wed, 18 May 2016) | 2 lines

* re.c (match_aref): remove useless condition and call rb_fix2int.
  rb_reg_nth_match handles negative index.
------------------------------------------------------------------------
r55036 | naruse | 2016-05-18 02:10:01 +0900 (Wed, 18 May 2016) | 4 lines

* re.c (match_values_at): MatchData#values_at supports named captures
  [Feature #9179]

* re.c (namev_to_backref_number): separeted.
------------------------------------------------------------------------
r55035 | svn | 2016-05-18 00:08:34 +0900 (Wed, 18 May 2016) | 1 line

* 2016-05-18
------------------------------------------------------------------------
r55034 | mrkn | 2016-05-18 00:08:33 +0900 (Wed, 18 May 2016) | 10 lines

Optimize enum_sum for a range from int to int

* enum.c (enum_sum): Optimize for a range from int to int.

* test/ruby/test_enum.rb (test_range_sum): Move from test_range.rb,
  and add assertions for some conditions.

* test/ruby/test_enum.rb (test_hash_sum): Move from test_hash.rb.

* test/ruby/test_hash.rb, test/ruby/test_range.rb: Remove test_sum.
------------------------------------------------------------------------
r55033 | mrkn | 2016-05-17 23:09:37 +0900 (Tue, 17 May 2016) | 1 line

Write document of Enumerable#sum
------------------------------------------------------------------------
r55032 | mrkn | 2016-05-17 22:58:46 +0900 (Tue, 17 May 2016) | 9 lines

Implement Enumerable#sum

* enum.c (enum_sum): Implement Enumerable#sum.

* test/ruby/test_enum.rb (test_sum): Test sum for Enumerable.

* test/ruby/test_hash.rb (test_sum): Test sum for Hash.

* test/ruby/test_range.rb (test_sum): Test sum for Range.
------------------------------------------------------------------------
r55031 | akr | 2016-05-17 22:26:24 +0900 (Tue, 17 May 2016) | 2 lines

add issue number for Array#sum incompatitbility description.

------------------------------------------------------------------------
r55030 | akr | 2016-05-17 22:24:53 +0900 (Tue, 17 May 2016) | 2 lines

Describe Fixnum and Bignum integration in NEWS.

------------------------------------------------------------------------
r55029 | akr | 2016-05-17 22:15:57 +0900 (Tue, 17 May 2016) | 24 lines

Use Integer instead of Fixnum and Bignum.

* object.c, numeric.c, enum.c, ext/-test-/bignum/mul.c,
  lib/rexml/quickpath.rb, lib/rexml/text.rb, lib/rexml/xpath_parser.rb,
  lib/rubygems/specification.rb, lib/uri/generic.rb,
  bootstraptest/test_eval.rb, basictest/test.rb,
  test/-ext-/bignum/test_big2str.rb, test/-ext-/bignum/test_div.rb,
  test/-ext-/bignum/test_mul.rb, test/-ext-/bignum/test_str2big.rb,
  test/csv/test_data_converters.rb, test/date/test_date.rb,
  test/json/test_json_generate.rb, test/minitest/test_minitest_mock.rb,
  test/openssl/test_cipher.rb, test/rexml/test_jaxen.rb,
  test/ruby/test_array.rb, test/ruby/test_basicinstructions.rb,
  test/ruby/test_bignum.rb, test/ruby/test_case.rb,
  test/ruby/test_class.rb, test/ruby/test_complex.rb,
  test/ruby/test_enum.rb, test/ruby/test_eval.rb,
  test/ruby/test_iseq.rb, test/ruby/test_literal.rb,
  test/ruby/test_math.rb, test/ruby/test_module.rb,
  test/ruby/test_numeric.rb, test/ruby/test_range.rb,
  test/ruby/test_rational.rb, test/ruby/test_refinement.rb,
  test/ruby/test_rubyvm.rb, test/ruby/test_struct.rb,
  test/ruby/test_variable.rb, test/rubygems/test_gem_specification.rb,
  test/thread/test_queue.rb: Use Integer instead of Fixnum and Bignum.


------------------------------------------------------------------------
r55028 | kazu | 2016-05-17 21:57:49 +0900 (Tue, 17 May 2016) | 1 line

fix alignment
------------------------------------------------------------------------
r55027 | kazu | 2016-05-17 21:57:48 +0900 (Tue, 17 May 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r55026 | svn | 2016-05-17 17:25:59 +0900 (Tue, 17 May 2016) | 1 line

* properties.
------------------------------------------------------------------------
r55025 | akr | 2016-05-17 17:25:58 +0900 (Tue, 17 May 2016) | 2 lines

forgot to commit.

------------------------------------------------------------------------
r55024 | akr | 2016-05-17 15:53:48 +0900 (Tue, 17 May 2016) | 39 lines

[Feature #12005] Unify Fixnum and Bignum into Integer

* [Feature #12005] Unify Fixnum and Bignum into Integer

* include/ruby/ruby.h (rb_class_of): Return rb_cInteger for fixnums.

* insns.def (INTEGER_REDEFINED_OP_FLAG): Unified from
  FIXNUM_REDEFINED_OP_FLAG and BIGNUM_REDEFINED_OP_FLAG.

* vm_core.h: Ditto.

* vm_insnhelper.c (opt_eq_func): Use INTEGER_REDEFINED_OP_FLAG instead
  of FIXNUM_REDEFINED_OP_FLAG.

* vm.c (vm_redefinition_check_flag): Use rb_cInteger instead of
  rb_cFixnum and rb_cBignum.
  (C): Use Integer instead of Fixnum and Bignum.

* numeric.c (fix_succ): Removed.
  (Init_Numeric): Define Fixnum as Integer.

* bignum.c (bignew): Use rb_cInteger instead of Rb_cBignum.
  (rb_int_coerce): replaced from rb_big_coerce and return fixnums
  as-is.
  (Init_Bignum): Define Bignum as Integer.
  Don't define ===.

* error.c (builtin_class_name): Return "Integer" for fixnums.

* sprintf.c (ruby__sfvextra): Use rb_cInteger instead of rb_cFixnum.

* ext/-test-/testutil: New directory to test.
  Currently it provides utilities for fixnum and bignum.

* ext/json/generator/generator.c: Define mInteger_to_json.

* lib/mathn.rb (Fixnum#/): Redefinition removed.


------------------------------------------------------------------------
r55023 | nobu | 2016-05-17 11:58:40 +0900 (Tue, 17 May 2016) | 5 lines

configure.in: declare as NORETURN

* configure.in (RUBY_CHECK_BUILTIN_SETJMP): declare t as NORETURN
  to suppress warnings by -Wsuggest-attribute=noreturn.
  [ruby-core:75510] [Bug #12383]
------------------------------------------------------------------------
r55022 | svn | 2016-05-17 10:40:21 +0900 (Tue, 17 May 2016) | 1 line

* 2016-05-17
------------------------------------------------------------------------
r55021 | nobu | 2016-05-17 10:40:20 +0900 (Tue, 17 May 2016) | 4 lines

configure.in: RUBY_CHECK_SETJMP

* configure.in (RUBY_CHECK_SETJMP): needs the header and proper
  arguments for builtin setjmp functions.
------------------------------------------------------------------------
r55020 | duerst | 2016-05-16 20:00:29 +0900 (Mon, 16 May 2016) | 2 lines

* enc/unicode.h: Additional uses of ONIG_CASE_MAPPING compilation switch

------------------------------------------------------------------------
r55019 | svn | 2016-05-16 19:46:33 +0900 (Mon, 16 May 2016) | 1 line

* append newline at EOF.
------------------------------------------------------------------------
r55018 | duerst | 2016-05-16 19:46:32 +0900 (Mon, 16 May 2016) | 5 lines

* include/ruby/oniguruma.h: Introducing ONIG_CASE_MAPPING compilation
  switch
* include/ruby/oniguruma.h, enc/unicode.h: Using ONIG_CASE_MAPPING
  compilation switch

------------------------------------------------------------------------
r55017 | hsbt | 2016-05-16 19:29:36 +0900 (Mon, 16 May 2016) | 2 lines

* gems/bundled_gems: Update xmlrpc-0.1.1. xmlrpc-0.1.0 didn't allow
  to install on 2.4.0dev.
------------------------------------------------------------------------
r55016 | nobu | 2016-05-16 15:26:56 +0900 (Mon, 16 May 2016) | 5 lines

* test_handle.rb: refine test_fallback_to_ansi

* test/fiddle/test_handle.rb (test_fallback_to_ansi): ensure that
  the fallback result equals to ANSI version.
  [ruby-core:75494] [Bug #12377]
------------------------------------------------------------------------
r55015 | nobu | 2016-05-16 13:29:01 +0900 (Mon, 16 May 2016) | 7 lines

configure.in: revert macro names

* configure.in (FUNC_STDCALL, FUNC_CDECL, FUNC_FASTCALL): set
  macro names explicitly to the old names, which are accidentally
  changed at r54985, for backward compatibilities.
  fiddle also depends on these names to fallback to ANSI names.
  [ruby-core:75494] [Bug #12377]
------------------------------------------------------------------------
r55014 | hsbt | 2016-05-16 11:54:07 +0900 (Mon, 16 May 2016) | 2 lines

* lib/xmlrpc: Removed empty directory. It could not be deleted by git-svn.

------------------------------------------------------------------------
r55013 | hsbt | 2016-05-16 11:41:11 +0900 (Mon, 16 May 2016) | 3 lines

* lib/xmlrpc.rb, lib/xmlrpc/*, test/xmlrpc: XMLRPC is bundled gem
  on Ruby 2.4. [Feature #12160][ruby-core:74239]
* gems/bundled_gems: ditto.
------------------------------------------------------------------------
r55012 | nobu | 2016-05-16 09:16:13 +0900 (Mon, 16 May 2016) | 4 lines

extmk.rb: fix skipping messages

* ext/extmk.rb (extmake): select the message if skipped because
  its parent extension is not configured.
------------------------------------------------------------------------
r55011 | svn | 2016-05-16 06:11:34 +0900 (Mon, 16 May 2016) | 1 line

* 2016-05-16
------------------------------------------------------------------------
r55010 | normal | 2016-05-16 06:11:33 +0900 (Mon, 16 May 2016) | 14 lines

proc.c: fix RDoc of Proc#===/call/yield/[]

[Bug #12332]

Since r52050 ("proc.c: enable optimization of Proc#call")
for [Feature #11569], we need to maintain this documentation
in a way RDoc comprehends.  This is probably not worth fixing
in RDoc itself since this uses a non-standard internal C API
which is subject to change without notice.

ref:
http://mid.gmane.org/20160429212836.GA16605@dcvr.yhbt.net
http://mid.gmane.org/1461959651.806728.670.51764@mail.rambler.ru
http://blade.nagaokaut.ac.jp/ruby/ruby-talk/435458
------------------------------------------------------------------------
r55009 | nobu | 2016-05-15 22:54:57 +0900 (Sun, 15 May 2016) | 4 lines

io.c: use PRI_OFFT_PREFIX for off_t

* io.c (do_io_advise): use configured PRI_OFFT_PREFIX instead of
  PRI_OFF_T_PREFIX to format off_t properly on Cygwin.
------------------------------------------------------------------------
r55008 | seki | 2016-05-15 20:59:00 +0900 (Sun, 15 May 2016) | 2 lines

don't use keeper thread. [Bug #12342]

------------------------------------------------------------------------
r55007 | naruse | 2016-05-15 16:17:46 +0900 (Sun, 15 May 2016) | 2 lines

* array.c (rb_ary_entry): extract rb_ary_elt to organize if-conditions
  and check whether is is embdeded at once.
------------------------------------------------------------------------
r55006 | nobu | 2016-05-15 12:03:45 +0900 (Sun, 15 May 2016) | 4 lines

random.c: suppress a warning

* random.c (random_ulong_limited): suppress a shift count warning
  when unsigned long is 32bits.
------------------------------------------------------------------------
r55005 | nobu | 2016-05-15 10:57:28 +0900 (Sun, 15 May 2016) | 4 lines

vm_insnhelper.c: deprecated constant in class

* vm_insnhelper.c (vm_get_ev_const): warn deprecated constant even
  in the class context.  [ruby-core:75505] [Bug #12382]
------------------------------------------------------------------------
r55004 | nobu | 2016-05-15 08:21:31 +0900 (Sun, 15 May 2016) | 3 lines

random.c: clear seed

* random.c (rand_init): clear packed seed value explicitly.
------------------------------------------------------------------------
r55003 | svn | 2016-05-15 03:43:12 +0900 (Sun, 15 May 2016) | 1 line

* 2016-05-15
------------------------------------------------------------------------
r55002 | naruse | 2016-05-15 03:43:11 +0900 (Sun, 15 May 2016) | 11 lines

* iseq.h (struct iseq_compile_data): use struct rb_id_table
  instead of st_table.

* iseq.c (prepare_iseq_build): don't allocate ivar_cache_table
  until it has at least one element.

* iseq.c (compile_data_free): free ivar_cache_table only if it
  is allocated.

* compile.c (get_ivar_ic_value): allocate if the table is not
  allocated yet.
------------------------------------------------------------------------
r55000 | nobu | 2016-05-14 10:09:00 +0900 (Sat, 14 May 2016) | 1 line

ChangeLog: GitHub reference
------------------------------------------------------------------------
r54999 | nobu | 2016-05-14 09:04:36 +0900 (Sat, 14 May 2016) | 5 lines

lib/mkmf.rb: use xsystem to pkg-config --exists

* lib/mkmf.rb (pkg_config): use xsystem consistently to set up
  library path environment variable as well as latter pkg-config
  calls.  [ruby-dev:49619] [Bug #12379]
------------------------------------------------------------------------
r54998 | nobu | 2016-05-14 01:36:41 +0900 (Sat, 14 May 2016) | 4 lines

test_rand.rb: tests for seeds

* test/ruby/test_rand.rb: tests for Random.raw_seed and
  Random.new_seed.
------------------------------------------------------------------------
r54997 | nobu | 2016-05-14 00:16:57 +0900 (Sat, 14 May 2016) | 4 lines

random.c: no local copy of the seed

* random.c (make_seed_value): append leading-zero-guard and get
  rid of making a local copy of the seed.
------------------------------------------------------------------------
r54996 | svn | 2016-05-14 00:16:56 +0900 (Sat, 14 May 2016) | 1 line

* 2016-05-14
------------------------------------------------------------------------
r54995 | nobu | 2016-05-14 00:16:56 +0900 (Sat, 14 May 2016) | 3 lines

random.c: fill_random_seed size

* random.c (fill_random_seed): move the seed size to an argument.
------------------------------------------------------------------------
r54994 | nobu | 2016-05-13 23:56:32 +0900 (Fri, 13 May 2016) | 3 lines

random.c: clear buf

* random.c (random_seed): clear temporary buffer explicitly.
------------------------------------------------------------------------
r54993 | kazu | 2016-05-13 23:01:29 +0900 (Fri, 13 May 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54992 | nobu | 2016-05-13 08:46:43 +0900 (Fri, 13 May 2016) | 7 lines

drop FreeBSD < 4 support

* NEWS: drop FreeBSD < 4 support.
  The most recent version affected by this is 3.5 and was released
  in 2000.
  https://www.freebsd.org/releases/3.5R/announce.html
  https://en.wikipedia.org/wiki/History_of_FreeBSD#Version_history
------------------------------------------------------------------------
r54991 | nobu | 2016-05-13 08:35:22 +0900 (Fri, 13 May 2016) | 4 lines

extmk.rb: failures format

* ext/extmk.rb: show extension failures in compilation-mode
  friendly format.
------------------------------------------------------------------------
r54990 | nobu | 2016-05-13 08:35:20 +0900 (Fri, 13 May 2016) | 4 lines

defines.h: avoid redefinition

* include/ruby/defines.h (GCC_VERSION_SINCE): get rid of
  re-definition.
------------------------------------------------------------------------
r54989 | naruse | 2016-05-13 03:27:05 +0900 (Fri, 13 May 2016) | 1 line

fix typo in r54988
------------------------------------------------------------------------
r54988 | naruse | 2016-05-13 03:12:47 +0900 (Fri, 13 May 2016) | 1 line

include/ruby/defines.h (GCC_VERSION_SINCE): moved from internal.h
------------------------------------------------------------------------
r54987 | svn | 2016-05-13 03:12:46 +0900 (Fri, 13 May 2016) | 1 line

* 2016-05-13
------------------------------------------------------------------------
r54986 | naruse | 2016-05-13 03:12:46 +0900 (Fri, 13 May 2016) | 1 line

Use HAVE_BUILTIN___BUILTIN_CONSTANT_P
------------------------------------------------------------------------
r54985 | naruse | 2016-05-13 03:12:45 +0900 (Fri, 13 May 2016) | 3 lines

* configurein: use alternative keyword

to avoid macros conflicts with them.
------------------------------------------------------------------------
r54984 | kazu | 2016-05-12 22:01:03 +0900 (Thu, 12 May 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54983 | nobu | 2016-05-12 20:19:43 +0900 (Thu, 12 May 2016) | 5 lines

extmk.rb: failed messages at the end

* ext/extmk.rb: output failed configurations at the end, not to be
  scrolled out.
  TODO: show the message at the end of the whole build.
------------------------------------------------------------------------
r54982 | nobu | 2016-05-12 01:54:10 +0900 (Thu, 12 May 2016) | 4 lines

mkmf.rb: fix conflict in have_library

* lib/mkmf.rb (try_func): get rid of conflict of declarations of
  main().  checking local symbol reference does not make sense.
------------------------------------------------------------------------
r54981 | nobu | 2016-05-12 01:39:24 +0900 (Thu, 12 May 2016) | 3 lines

win32: qsort_s

* win32/Makefile.sub (HAVE_QSORT_S): disable on VS2012 too.
------------------------------------------------------------------------
r54980 | usa | 2016-05-12 00:21:49 +0900 (Thu, 12 May 2016) | 4 lines

* win32/Makefile.sub (HAVE_QSORT_S): use qsort_s only for Visual Studio
  2012 or later, because VS2010 seems to causes a SEGV in
  test/ruby/test_enum.rb.

------------------------------------------------------------------------
r54979 | tarui | 2016-05-12 00:08:27 +0900 (Thu, 12 May 2016) | 1 line

fix typo at ChangeLog
------------------------------------------------------------------------
r54978 | svn | 2016-05-12 00:04:28 +0900 (Thu, 12 May 2016) | 1 line

* 2016-05-12
------------------------------------------------------------------------
r54977 | tarui | 2016-05-12 00:04:27 +0900 (Thu, 12 May 2016) | 3 lines

	* vm_insnhelper.c (vm_getivar): describe fast-path explicit
	  (compiler frindly). [Bug #12274].

------------------------------------------------------------------------
r54976 | tarui | 2016-05-11 21:50:38 +0900 (Wed, 11 May 2016) | 11 lines

	* compile.c (iseq_compile_each): share InlineCache during same
	  instance variable accesses. Reducing memory consumption,
	  rasing cache hit rate and rasing branch prediction hit rate
	  are expected. A part of [Bug #12274].

	* iseq.h (struct iseq_compile_data): introduce instance
	  variable IC table for sharing.

	* iseq.c (prepare_iseq_build, compile_data_free):
	  construct/destruct above table.

------------------------------------------------------------------------
r54975 | nobu | 2016-05-11 21:24:16 +0900 (Wed, 11 May 2016) | 4 lines

test_minitest_unit.rb: fix "random" sort

* test/minitest/test_minitest_unit.rb (test_test_methods_random):
  hack to fix the order by avoiding duplicate keys.
------------------------------------------------------------------------
r54974 | nobu | 2016-05-11 17:18:56 +0900 (Wed, 11 May 2016) | 4 lines

util.c: qsort_s

* util.c (ruby_qsort): use qsort_s if available, for Microsoft
  Visual Studio 2005 (msvcr80.dll) and mingw.
------------------------------------------------------------------------
r54973 | nobu | 2016-05-11 16:13:35 +0900 (Wed, 11 May 2016) | 1 line

fix file name [ci skip]
------------------------------------------------------------------------
r54972 | svn | 2016-05-11 10:33:31 +0900 (Wed, 11 May 2016) | 1 line

* 2016-05-11
------------------------------------------------------------------------
r54971 | hsbt | 2016-05-11 10:33:30 +0900 (Wed, 11 May 2016) | 2 lines

* ChangeLog: Remove trailing-whitespaces.
  [ci skip][fix GH-1348]
------------------------------------------------------------------------
r54970 | eregon | 2016-05-10 21:46:43 +0900 (Tue, 10 May 2016) | 4 lines

* insns.def (defineclass): Also raise an error when redeclaring the
  superclass of a class as Object and it has another superclass.
  [Bug #12367] [ruby-core:75446]
* test/ruby/test_class.rb: test for above.
------------------------------------------------------------------------
r54969 | nobu | 2016-05-10 15:46:09 +0900 (Tue, 10 May 2016) | 4 lines

random.c: reuse bits

* random.c (random_ulong_limited): reduce calling bytes methods by
  reusing dropped bits.
------------------------------------------------------------------------
r54968 | nobu | 2016-05-10 14:57:11 +0900 (Tue, 10 May 2016) | 4 lines

random.c: use bytes

* random.c (obj_random_bytes): base on bytes method instead of
  rand method, not to call toplevel rand method.
------------------------------------------------------------------------
r54967 | naruse | 2016-05-10 13:36:33 +0900 (Tue, 10 May 2016) | 4 lines

* configure.in (-fexcess-precision=standard): before r54895 -std=c99
  is specified and it implied -fexcess-precision=standard.
  Now with -std=gnu99, it should be explicitly specified.
  https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
------------------------------------------------------------------------
r54966 | svn | 2016-05-10 01:25:54 +0900 (Tue, 10 May 2016) | 1 line

* 2016-05-10
------------------------------------------------------------------------
r54965 | nobu | 2016-05-10 01:25:53 +0900 (Tue, 10 May 2016) | 3 lines

random.c: compare by rb_equal

* random.c (random_equal): compare seeds by rb_equal.
------------------------------------------------------------------------
r54964 | kazu | 2016-05-09 23:30:00 +0900 (Mon, 09 May 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54963 | nobu | 2016-05-09 13:27:12 +0900 (Mon, 09 May 2016) | 3 lines

random.c: consitify

* random.c (init_by_array): consitify initializing keys.
------------------------------------------------------------------------
r54962 | nobu | 2016-05-09 12:52:09 +0900 (Mon, 09 May 2016) | 7 lines

random.c: seed conversion

* random.c (rand_init): random_seed() always returns an Integer,
  no conversion for it.

* random.c (random_init, rb_f_srand): convert the given seed to an
  Integer.
------------------------------------------------------------------------
r54961 | nobu | 2016-05-09 10:52:01 +0900 (Mon, 09 May 2016) | 4 lines

thread.c: GET_THREAD once in rb_thread_atfork

* thread.c (rb_thread_atfork_internal): move th to an argument.
* thread.c (rb_thread_atfork): do not repeat GET_THREAD().
------------------------------------------------------------------------
r54960 | nobu | 2016-05-09 10:46:37 +0900 (Mon, 09 May 2016) | 9 lines

thread.c: clear atfork functions

* thread.c (rb_thread_atfork, rb_thread_atfork_before_exec): do
  nothing unless working fork is available.
* thread_sync.c (rb_mutex_abandon_all): define only if working
  fork is available.
* thread_sync.c (rb_mutex_abandon_keeping_mutexes): ditto.
* thread_sync.c (rb_mutex_abandon_locking_mutex): ditto.
* thread_win32.c (gvl_init): never used.
------------------------------------------------------------------------
r54959 | nobu | 2016-05-09 09:05:33 +0900 (Mon, 09 May 2016) | 4 lines

openssl/extconf.rb: NO SSL macros first

* ext/openssl/extconf.rb: check OPENSSL_NO_SSL{2,3} macros before
  checking related functions.
------------------------------------------------------------------------
r54958 | nobu | 2016-05-09 09:05:32 +0900 (Mon, 09 May 2016) | 4 lines

webrick/utils.rb: suppress messages

* test/webrick/utils.rb (TestWEBrick#start_server): suppress
  progress messages from WEBrick::Utils#create_self_signed_cert.
------------------------------------------------------------------------
r54957 | nobu | 2016-05-09 09:05:30 +0900 (Mon, 09 May 2016) | 4 lines

test_ssl_server.rb: assert_self_signed_cert

* test/webrick/test_ssl_server.rb (assert_self_signed_cert):
  extract common assertion.
------------------------------------------------------------------------
r54956 | usa | 2016-05-09 07:20:05 +0900 (Mon, 09 May 2016) | 5 lines

* include/ruby/{defines,ruby}.h: need to define function attributes
  alternatives in defines.h instead of ruby.h, because they are used
  in oniguruma.h and the header used without including ruby.h at
  encoding library sources.

------------------------------------------------------------------------
r54955 | usa | 2016-05-09 06:31:23 +0900 (Mon, 09 May 2016) | 3 lines

* include/ruby/ruby.h (CONSTFUNC, PUREFUNC): fixed build errors on
  non-gcc build environments introduced at r54952.

------------------------------------------------------------------------
r54954 | naruse | 2016-05-09 02:52:38 +0900 (Mon, 09 May 2016) | 8 lines

* gc.c (rb_gc_unprotect_logging): throw rb_memerror when it cannot
  allocate memory. This is pointed out by Facebook's Infer.

* gc.c (gc_prof_setup_new_record): ditto.

* regparse.c (parse_regexp): ditto.

* util.c (MALLOC): use xmalloc and xfree like above.
------------------------------------------------------------------------
r54953 | svn | 2016-05-09 02:44:52 +0900 (Mon, 09 May 2016) | 1 line

* 2016-05-09
------------------------------------------------------------------------
r54952 | naruse | 2016-05-09 02:44:51 +0900 (Mon, 09 May 2016) | 8 lines

* configure.in: check function attirbute const and pure,
  and define CONSTFUNC and PUREFUNC if available.
  Note that I don't add those options as default because
  it still shows many false-positive (it seems not to consider
  longjmp).

* vm_eval.c (stack_check): get rb_thread_t* as an argument
  to avoid duplicate call of GET_THREAD().
------------------------------------------------------------------------
r54951 | kazu | 2016-05-08 23:36:18 +0900 (Sun, 08 May 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54950 | naruse | 2016-05-08 21:10:22 +0900 (Sun, 08 May 2016) | 8 lines

* ext/openssl/extconf.rb: asume it doesn't have SSLv2 related
  functions when OPENSSL_NO_SSL2 is defined.
  Usually openssl's header and the library (libssl) have the same
  set of functions, but on some environment the library has functions
  whose headers doesn't declare. (openssl/opensslconf.h and libsso.so
  aren't be synchronized)
  To detect such case explicitly check feature macro and remove
  related functions.
------------------------------------------------------------------------
r54949 | nobu | 2016-05-08 18:59:37 +0900 (Sun, 08 May 2016) | 4 lines

win32ole_error.h: add attributes

* ext/win32ole/win32ole_error.h (ole_raise): add attributes,
  NORETURN and PRINTF_ARGS.
------------------------------------------------------------------------
r54948 | nobu | 2016-05-08 18:59:36 +0900 (Sun, 08 May 2016) | 4 lines

objspace_dump.c: fix format

* ext/objspace/objspace_dump.c (dump_append_string_content),
  (dump_object): fix the format specifiers.
------------------------------------------------------------------------
r54947 | nobu | 2016-05-08 18:51:34 +0900 (Sun, 08 May 2016) | 6 lines

file.c: home dir fall back

* file.c (rb_home_dir_of): return the default home path if the
  user name is the current user name, on platforms where struct
  pwd is not supported.  a temporary measure against
  [Bug #12226].
------------------------------------------------------------------------
r54946 | nobu | 2016-05-08 12:21:28 +0900 (Sun, 08 May 2016) | 4 lines

intern.h: suppress warnings

* include/ruby/intern.h (rb_disable_super, rb_enable_super):
  remove NORETURN.  these do nothing but just return.
------------------------------------------------------------------------
r54945 | naruse | 2016-05-08 09:55:29 +0900 (Sun, 08 May 2016) | 1 line

* configure.in: add -Wsuggest-attribute=format and suppress warnings.
------------------------------------------------------------------------
r54944 | svn | 2016-05-08 09:55:28 +0900 (Sun, 08 May 2016) | 1 line

* 2016-05-08
------------------------------------------------------------------------
r54943 | naruse | 2016-05-08 09:55:28 +0900 (Sun, 08 May 2016) | 1 line

* configure.in: add -Wsuggest-attribute=noreturn and suppress warnings.
------------------------------------------------------------------------
r54942 | naruse | 2016-05-08 09:55:28 +0900 (Sun, 08 May 2016) | 2 lines

* configure.in: add -Werror=implicit-int to avoid missing type of
  function declaration.
------------------------------------------------------------------------
r54941 | hsbt | 2016-05-07 22:37:18 +0900 (Sat, 07 May 2016) | 4 lines

* lib/webrick/ssl.rb: Accept string value for SSLCertName. It is used
  to invoke ssl server with command line.
  [fix GH-1329] Patch by @kerlin
* test/webrick/test_ssl_server.rb: Added test for GH-1329
------------------------------------------------------------------------
r54940 | svn | 2016-05-07 21:55:18 +0900 (Sat, 07 May 2016) | 1 line

* properties.
------------------------------------------------------------------------
r54939 | hsbt | 2016-05-07 21:55:17 +0900 (Sat, 07 May 2016) | 1 line

* test/webrick/test_ssl_server.rb: Added basic test for `webrick/ssl`
------------------------------------------------------------------------
r54938 | nobu | 2016-05-07 16:22:14 +0900 (Sat, 07 May 2016) | 4 lines

random.c: optimize int_pair_to_real_inclusive

* random.c (int_pair_to_real_inclusive): optimize to multiply
  without Bignum.
------------------------------------------------------------------------
r54937 | nobu | 2016-05-07 15:21:00 +0900 (Sat, 07 May 2016) | 4 lines

random.c: split random_int32

* random.c (random_int32): split the cases of rb_random_t and
  other objects.
------------------------------------------------------------------------
r54936 | nobu | 2016-05-07 11:59:32 +0900 (Sat, 07 May 2016) | 5 lines

random.c: unnecessary declarations

* random.c (random_ulong_limited, random_ulong_limited_big):
  remove unnecessary extern declarations.  rb_num_negative_p is
  declared in internal.h now.
------------------------------------------------------------------------
r54935 | svn | 2016-05-07 07:58:04 +0900 (Sat, 07 May 2016) | 1 line

* 2016-05-07
------------------------------------------------------------------------
r54934 | nobu | 2016-05-07 07:58:03 +0900 (Sat, 07 May 2016) | 5 lines

process.c: argument types over conversion

* process.c (rb_exec_getargs): honor the expected argument types
  over the conversion method.  the basic language functionality
  should be robust.  [ruby-core:75388] [Bug #12355]
------------------------------------------------------------------------
r54933 | kazu | 2016-05-06 23:30:01 +0900 (Fri, 06 May 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54932 | nobu | 2016-05-06 16:18:34 +0900 (Fri, 06 May 2016) | 5 lines

random.c: fill_random_bytes_syscall function

* random.c (fill_random_bytes_syscall): turned into a static
  function, to be inlined probably, so that it is unavailable if
  it is a preprocessor macro.
------------------------------------------------------------------------
r54931 | nobu | 2016-05-06 16:18:33 +0900 (Fri, 06 May 2016) | 4 lines

random.c: refactor

* random.c (rand_random, rb_f_rand): refactor, split condition
  expressions, and return in the precedence.
------------------------------------------------------------------------
r54930 | nobu | 2016-05-06 15:52:37 +0900 (Fri, 06 May 2016) | 4 lines

random.c: use rb_check_to_int

* random.c (rand_range, rand_random): use rb_check_to_int instead
  of rb_check_to_integer with the same conversion method.
------------------------------------------------------------------------
r54929 | nobu | 2016-05-06 15:52:36 +0900 (Fri, 06 May 2016) | 4 lines

random.c: prefer rb_check_arity

* random.c: use rb_check_arity instead of rb_scan_args for simple
  optional arguments.
------------------------------------------------------------------------
r54928 | nobu | 2016-05-06 15:52:35 +0900 (Fri, 06 May 2016) | 4 lines

random.c: sipseed_keys_t

* random.c (sipseed): separate type of keys to reduce use of the
  magic number.
------------------------------------------------------------------------
r54927 | nobu | 2016-05-06 15:29:56 +0900 (Fri, 06 May 2016) | 6 lines

random.c: default seed mark

* random.c (Init_Random_default): since seed is marked by
  random_mark, no needs to mark itself as a global variable.
  allocate Random instance before making the seed value, to get
  rid of the potential risk of GC during the allocation.
------------------------------------------------------------------------
r54926 | nobu | 2016-05-06 15:29:55 +0900 (Fri, 06 May 2016) | 4 lines

random.c: return value is not GCed

* random.c (rand_init): since seed is the return value, no needs
  to be volatile to prevent from GC.
------------------------------------------------------------------------
r54925 | nobu | 2016-05-06 08:16:28 +0900 (Fri, 06 May 2016) | 5 lines

enum.c: examples of Enumerable#detect [ci skip]

* enum.c (enum_find): [DOC] add more examples to the documentation
  of Enumerable#detect, to show that it equals to Enumerable#find.
  [Fix GH-1340]
------------------------------------------------------------------------
r54921 | svn | 2016-05-06 00:00:06 +0900 (Fri, 06 May 2016) | 1 line

* 2016-05-06
------------------------------------------------------------------------
r54920 | nobu | 2016-05-06 00:00:05 +0900 (Fri, 06 May 2016) | 7 lines

random.c: use uint32_t

* random.c (struct MT, next_state): use uint32_t for the state
  vector.

* random.c (init_by_array, rand_init): ditto for initializing
  keys.
------------------------------------------------------------------------
r54919 | yui-knk | 2016-05-05 18:06:39 +0900 (Thu, 05 May 2016) | 1 line

* test/ruby/test_complexrational.rb: Remove duplicated raise.
------------------------------------------------------------------------
r54918 | nobu | 2016-05-05 16:27:10 +0900 (Thu, 05 May 2016) | 4 lines

proc.c: no temporary args array

* proc.c (bmcall): method proc is always lambda, args is the array
  which is made from argc and argv.
------------------------------------------------------------------------
r54917 | nobu | 2016-05-05 16:18:14 +0900 (Thu, 05 May 2016) | 4 lines

proc.c: no unnecessary temporary array

* proc.c (bmcall): get rid of making temporary single element
  array.
------------------------------------------------------------------------
r54916 | nobu | 2016-05-05 16:11:34 +0900 (Thu, 05 May 2016) | 4 lines

proc.c: suppress a warning

* proc.c (call_method_data_safe): suppress clobbered warning by
  old gcc.
------------------------------------------------------------------------
r54915 | yui-knk | 2016-05-05 14:39:35 +0900 (Thu, 05 May 2016) | 2 lines

* string.c (rb_str_sub): Fix a special match variable name.
  [ci skip]
------------------------------------------------------------------------
r54914 | nobu | 2016-05-05 12:22:20 +0900 (Thu, 05 May 2016) | 5 lines

use TH_JUMP_TAG

* vm_eval.c (rb_eval_cmd, rb_catch_obj): use TH_JUMP_TAG with the
  same rb_thread_t used for TH_PUSH_TAG, instead of JUMP_TAG with
  the current thread global variable.
------------------------------------------------------------------------
r54913 | svn | 2016-05-05 10:49:36 +0900 (Thu, 05 May 2016) | 1 line

* 2016-05-05
------------------------------------------------------------------------
r54912 | nobu | 2016-05-05 10:49:35 +0900 (Thu, 05 May 2016) | 4 lines

random.c: use arc4random_buf

* random.c (fill_random_bytes_syscall): use arc4random_buf if
  available.
------------------------------------------------------------------------
r54911 | yui-knk | 2016-05-04 23:12:10 +0900 (Wed, 04 May 2016) | 10 lines

numeric.c: Remove prototype declarations to internal.h

* numeric.c (fix_plus): Remove rb_nucomp_add prototype
  declaration.

* numeric.c (fix_mul): Remove rb_nucomp_mul prototype
  declaration.

* internal.h (rb_nucomp_add, rb_nucomp_mul): add prototype
  declarations.
------------------------------------------------------------------------
r54910 | nobu | 2016-05-04 19:10:07 +0900 (Wed, 04 May 2016) | 4 lines

proc.c: separate rb_method_call_with_block

* proc.c (rb_method_call_with_block): separate the cases with and
  without tag for optimization.
------------------------------------------------------------------------
r54909 | nobu | 2016-05-04 19:10:06 +0900 (Wed, 04 May 2016) | 4 lines

proc.c: passed_block

* proc.c (passed_block): extract conversion from passed proc value
  to rb_block_t pointer.
------------------------------------------------------------------------
r54908 | nobu | 2016-05-04 19:10:05 +0900 (Wed, 04 May 2016) | 3 lines

proc.c: constify

* proc.c (method_callable_method_entry): constify data.
------------------------------------------------------------------------
r54907 | ktsj | 2016-05-04 18:46:48 +0900 (Wed, 04 May 2016) | 3 lines

* lib/net/http/header.rb: [DOC] add documentation that
  Net::HTTPHeader#{each_header,each_name,each_capitalized_name,
  each_value,each_capitalized} without block returns an enumerator.
------------------------------------------------------------------------
r54906 | ktsj | 2016-05-04 18:46:46 +0900 (Wed, 04 May 2016) | 5 lines

* lib/net/http/header.rb (Net::HTTPHeader#{each_header,each_name,
  each_capitalized_name,each_value,each_capitalized}): Return
  sized enumerators.

* test/net/http/test_httpheader.rb: add test for above.
------------------------------------------------------------------------
r54905 | ktsj | 2016-05-04 18:46:43 +0900 (Wed, 04 May 2016) | 2 lines

* test/net/http/test_httpheader.rb: add missing test of
  Net::HTTPHeader#each_capitalized_name.
------------------------------------------------------------------------
r54904 | ktsj | 2016-05-04 18:07:01 +0900 (Wed, 04 May 2016) | 2 lines

* lib/set.rb: [DOC] add documentation that Set#{delete_if,keep_if,collect!,reject!,select!,
  classify,divide} without block returns an enumerator.
------------------------------------------------------------------------
r54903 | ktsj | 2016-05-04 18:06:59 +0900 (Wed, 04 May 2016) | 4 lines

* lib/set.rb (Set#{delete_if,keep_if,collect!,reject!,select!,classify,divide},
  SortedSet#{delete_if,keep_if}): Return sized enumerators.

* test/test_set.rb: add test for above.
------------------------------------------------------------------------
r54902 | svn | 2016-05-04 18:06:59 +0900 (Wed, 04 May 2016) | 1 line

* 2016-05-04
------------------------------------------------------------------------
r54901 | ktsj | 2016-05-04 18:06:58 +0900 (Wed, 04 May 2016) | 1 line

* test/test_set.rb: add missing test of Set#select!.
------------------------------------------------------------------------
r54898 | kazu | 2016-05-03 23:31:40 +0900 (Tue, 03 May 2016) | 4 lines

Update result of 123456789 ** -2

* numeric.c: [DOC] Update result of 123456789 ** -2.
  [ruby-dev:49606] [Bug #12339]
------------------------------------------------------------------------
r54897 | yui-knk | 2016-05-03 23:12:02 +0900 (Tue, 03 May 2016) | 2 lines

* internal.h (RCOMPLEX_SET_IMAG): undef RCOMPLEX_SET_IMAG
  instead of duplicated undef RCOMPLEX_SET_REAL.
------------------------------------------------------------------------
r54896 | yui-knk | 2016-05-03 22:54:19 +0900 (Tue, 03 May 2016) | 2 lines

* complex.c (rb_complex_set_imag): Fix to properly set imag
  of complex.
------------------------------------------------------------------------
r54895 | naruse | 2016-05-03 22:20:50 +0900 (Tue, 03 May 2016) | 2 lines

* configure.in (warnflags): use -std=gnu99 instead of
  -std=iso9899:1999. [Feature #12336]
------------------------------------------------------------------------
r54894 | naruse | 2016-05-03 22:14:30 +0900 (Tue, 03 May 2016) | 5 lines

* string.c (count_utf8_lead_bytes_with_word): Use __builtin_popcount
  only if it can use SSE 4.2 POPCNT whose latency is 3 cycle.

* internal.h (rb_popcount64): use __builtin_popcountll because now
  it is in fast path.
------------------------------------------------------------------------
r54893 | nobu | 2016-05-03 14:19:20 +0900 (Tue, 03 May 2016) | 4 lines

parse.y: trace elsif

* parse.y (new_if_gen): set newline flag to NODE_IF to trace all
  if/elsif statements.  [ruby-core:67720] [Bug #10763]
------------------------------------------------------------------------
r54892 | nobu | 2016-05-03 10:22:18 +0900 (Tue, 03 May 2016) | 3 lines

eval.c: constify

* eval.c (extract_raise_opts): constify argv.
------------------------------------------------------------------------
r54891 | svn | 2016-05-03 06:04:18 +0900 (Tue, 03 May 2016) | 1 line

* 2016-05-03
------------------------------------------------------------------------
r54890 | normal | 2016-05-03 06:04:17 +0900 (Tue, 03 May 2016) | 15 lines

process.c (disable_child_handler_fork_child): initialize handler for SIGPIPE

This only happens on the !POSIX_SIGNAL case; but one may
test with the following:

    --- a/process.c
    +++ b/process.c
    @@ -3479,6 +3479,7 @@ disable_child_handler_fork_parent(struct child_handler_disabler_state *old)
     #endif
     }

    +#undef POSIX_SIGNAL
     /* This function should be async-signal-safe.  Actually it is. */
     static int
     disable_child_handler_fork_child(struct child_handler_disabler_state *old, char *errmsg, size_t errmsg_buflen)
------------------------------------------------------------------------
r54889 | usa | 2016-05-02 23:05:19 +0900 (Mon, 02 May 2016) | 6 lines

* win32/win32.c, include/ruby/win32.h (rb_w32_utruncate): implements new
  truncate alternative which accepts UTF-8 path.

* file.c (truncate): use above function.
  [Bug #12340]

------------------------------------------------------------------------
r54888 | svn | 2016-05-02 23:03:22 +0900 (Mon, 02 May 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r54887 | usa | 2016-05-02 23:03:21 +0900 (Mon, 02 May 2016) | 2 lines

* test/ruby/test_file_exhaustive.rb: test UTF-8 filename.  see [Bug #12340]

------------------------------------------------------------------------
r54886 | naruse | 2016-05-02 21:04:04 +0900 (Mon, 02 May 2016) | 8 lines

* re.c (str_coderange): to avoid function call when the string already
  has coderange information.

* re.c (rb_reg_prepare_enc): add shortcut path when the regexp has
  the same encoding of given string.

* re.c (rb_reg_prepare_re): avoid duplicated allocation of
  onig_errmsg_buffer.
------------------------------------------------------------------------
r54885 | kazu | 2016-05-02 20:46:02 +0900 (Mon, 02 May 2016) | 1 line

Update rdoc of Integer#modulo [ci skip]
------------------------------------------------------------------------
r54884 | kazu | 2016-05-02 20:46:01 +0900 (Mon, 02 May 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54883 | kazu | 2016-05-02 20:46:00 +0900 (Mon, 02 May 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54882 | nobu | 2016-05-02 12:58:28 +0900 (Mon, 02 May 2016) | 4 lines

string.c: shortcut

* string.c (rb_str_concat): shortcut concatenation to ASCII-8BIT
  as well as US-ASCII.
------------------------------------------------------------------------
r54881 | nobu | 2016-05-02 12:53:34 +0900 (Mon, 02 May 2016) | 4 lines

string.c: fix doc

* string.c (rb_str_concat): [DOC] fix the indefinite article, for
  replacement from Fixnum to Integer.
------------------------------------------------------------------------
r54880 | akr | 2016-05-02 12:35:52 +0900 (Mon, 02 May 2016) | 2 lines

* test/ruby/test_refinement.rb (test_inspect): Use Integer instead of Fixnum.

------------------------------------------------------------------------
r54879 | nobu | 2016-05-02 09:06:04 +0900 (Mon, 02 May 2016) | 4 lines

string.c: fix braces

* string.c (search_nonascii): fix braces unmatched by a
  preprocessing condition.
------------------------------------------------------------------------
r54878 | akr | 2016-05-02 06:59:41 +0900 (Mon, 02 May 2016) | 7 lines

complex.c don't refer rb_cFixnum and rb_cBignum.

* complex.c: Don't refer rb_cFixnum and rb_cBignum.
  (k_fixnum_p): Use FIXNUM_P.
  (k_bignum_p): Use RB_TYPE_P.


------------------------------------------------------------------------
r54877 | naruse | 2016-05-02 03:27:41 +0900 (Mon, 02 May 2016) | 1 line

fix mixed declaration on non UNALIGNED_WORD_ACCESS
------------------------------------------------------------------------
r54876 | akr | 2016-05-02 01:28:18 +0900 (Mon, 02 May 2016) | 3 lines

* test/ruby/test_numeric.rb (test_step): Use Integer::FIXNUM_MAX.


------------------------------------------------------------------------
r54875 | akr | 2016-05-02 01:15:29 +0900 (Mon, 02 May 2016) | 5 lines

test_name use Integer instead of Fixnum.

* test/ruby/test_module.rb (test_name): Use Integer instead of Fixnum.


------------------------------------------------------------------------
r54874 | akr | 2016-05-02 01:01:36 +0900 (Mon, 02 May 2016) | 12 lines

test/lib/test/unit/assertions.rb defines assert_fixnum and assert_bignum.

* test/lib/test/unit/assertions.rb (assert_fixnum): Defined.
  (assert_bignum): Defined.

* test/ruby/test_bignum.rb: Use assert_bignum.

* test/ruby/test_integer_comb.rb: Use assert_fixnum and assert_bignum.

* test/ruby/test_optimization.rb: Ditto.


------------------------------------------------------------------------
r54873 | akr | 2016-05-02 00:42:52 +0900 (Mon, 02 May 2016) | 6 lines

Add a cast to avoid signed integer overflow.

* vm_trace.c (recalc_remove_ruby_vm_event_flags): Add a cast to
  avoid signed integer overflow.


------------------------------------------------------------------------
r54872 | akr | 2016-05-02 00:16:17 +0900 (Mon, 02 May 2016) | 15 lines

envutil.rb defines Integer::{FIXNUM_MIN,FIXNUM_MAX}.

* test/lib/envutil.rb: Define Integer::{FIXNUM_MIN,FIXNUM_MAX}.

* test/ruby/test_bignum.rb: Use Integer::{FIXNUM_MIN,FIXNUM_MAX}.

* test/ruby/test_bignum.rb: Ditto.

* test/ruby/test_integer_comb.rb: Ditto.

* test/ruby/test_marshal.rb: Ditto.

* test/ruby/test_optimization.rb: Ditto.


------------------------------------------------------------------------
r54871 | svn | 2016-05-02 00:02:48 +0900 (Mon, 02 May 2016) | 1 line

* 2016-05-02
------------------------------------------------------------------------
r54870 | mrkn | 2016-05-02 00:02:47 +0900 (Mon, 02 May 2016) | 5 lines

Fix rb_ary_sum for mathn

* array.c (rb_ary_sum): fix for mathn

* test/ruby/test_array.rb (test_sum): ditto.
------------------------------------------------------------------------
r54869 | usa | 2016-05-01 23:56:45 +0900 (Sun, 01 May 2016) | 4 lines

* test/logger/test_logdevice.rb (TestLogDevice#test_shifting_period_suffix):
  too many shifting.  the last shifting created logs named as `*.3`, and
  they were never unlinked.

------------------------------------------------------------------------
r54868 | usa | 2016-05-01 23:54:44 +0900 (Sun, 01 May 2016) | 4 lines

* test/lib/test/unit.rb (Options#non_options): fixed wrong regexp.
  if both positives and negatives were specified, postives had to
  be spcicifed from the beginning.

------------------------------------------------------------------------
r54867 | naruse | 2016-05-01 23:19:02 +0900 (Sun, 01 May 2016) | 1 line

fix for where UNALIGNED_WORD_ACCESS is not allowed
------------------------------------------------------------------------
r54866 | akr | 2016-05-01 21:50:19 +0900 (Sun, 01 May 2016) | 2 lines

update comments.

------------------------------------------------------------------------
r54865 | akr | 2016-05-01 21:30:51 +0900 (Sun, 01 May 2016) | 2 lines

Fix a test message.

------------------------------------------------------------------------
r54864 | usa | 2016-05-01 21:00:35 +0900 (Sun, 01 May 2016) | 2 lines

* win32/win32.c: drop Win2K support.

------------------------------------------------------------------------
r54863 | usa | 2016-05-01 20:42:41 +0900 (Sun, 01 May 2016) | 4 lines

* cont.c, hash.c, random.c, win32/win32.c: cleanup some Win9x/ME/NT4
  support leftovers.
  [fix GH-1328] patched by @cremno

------------------------------------------------------------------------
r54862 | naruse | 2016-05-01 18:07:14 +0900 (Sun, 01 May 2016) | 1 line

Use WORDS_BIGENDIAN
------------------------------------------------------------------------
r54861 | akr | 2016-05-01 10:35:43 +0900 (Sun, 01 May 2016) | 2 lines

[DOC] merge documents for {Integer,Fixnum}#succ.

------------------------------------------------------------------------
r54860 | nobu | 2016-05-01 09:56:15 +0900 (Sun, 01 May 2016) | 5 lines

ChangeLog: fix a typo [ci skip]

* ChangeLog: fix typo, process ID is unrelated to login shell
  name, should be user ID.
  http://twitter.com/nagachika/status/726553209821523968
------------------------------------------------------------------------
r54859 | naruse | 2016-05-01 07:32:05 +0900 (Sun, 01 May 2016) | 3 lines

* string.c (search_nonascii): use nlz on big endian environments.

* internal.h (nlz_intpr): defined.
------------------------------------------------------------------------
r54858 | akr | 2016-05-01 07:05:43 +0900 (Sun, 01 May 2016) | 2 lines

fix a typo.

------------------------------------------------------------------------
r54857 | naruse | 2016-05-01 01:32:36 +0900 (Sun, 01 May 2016) | 1 line

More optimization for r54854's search_nonascii
------------------------------------------------------------------------
r54856 | svn | 2016-05-01 00:39:03 +0900 (Sun, 01 May 2016) | 1 line

* 2016-05-01
------------------------------------------------------------------------
r54855 | naruse | 2016-05-01 00:39:03 +0900 (Sun, 01 May 2016) | 5 lines

revert UNALIGNED_WORD_ACCESS for GCC6

Released GCC 6.0 fixed the issue.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69291
[ruby-core:72211] [Bug #11831] [Bug #11979]
------------------------------------------------------------------------
r54854 | naruse | 2016-05-01 00:39:02 +0900 (Sun, 01 May 2016) | 19 lines

* string.c (search_nonascii): unroll and use ntz

* configure.in (__builtin_ctz): check.

* configure.in (__builtin_ctzll): check.

* internal.h (rb_popcount32): defined for ntz_int32.
  it can use __builtin_popcount but this function is not used on
  GCC environment because it uses __builtin_ctz.
  When another function uses this, using __builtin_popcount
  should be re-considered.

* internal.h (rb_popcount64): ditto.

* internal.h (ntz_int32): defined for ntz_intptr.

* internal.h (ntz_int64): defined for ntz_intptr.

* internal.h (ntz_intptr): defined as ntz for uintptr_t.
------------------------------------------------------------------------
r54853 | akr | 2016-04-30 22:05:22 +0900 (Sat, 30 Apr 2016) | 2 lines

[DOC]

------------------------------------------------------------------------
r54852 | akr | 2016-04-30 21:55:59 +0900 (Sat, 30 Apr 2016) | 5 lines

Gather Fixnum method definitions.

* numeric.c (Init_Numeric): Gather Fixnum method definitions.


------------------------------------------------------------------------
r54851 | akr | 2016-04-30 21:39:53 +0900 (Sat, 30 Apr 2016) | 9 lines

Define Integer#/ instead of Bignum#/.

* numeric.c (rb_int_div): Define Integer#/.

* bignum.c (rb_big_div): Don't define Bignum#/.

* lib/mathn.rb (Integer#/): Replace Integer#/ instead of Bignum#/.


------------------------------------------------------------------------
r54850 | akr | 2016-04-30 21:24:06 +0900 (Sat, 30 Apr 2016) | 7 lines

Define Integer#+ instead of Bignum#+.

* numeric.c (rb_int_plus): Define Integer#+.

* bignum.c (rb_big_plus): Don't define Bignum#+.


------------------------------------------------------------------------
r54849 | akr | 2016-04-30 21:09:31 +0900 (Sat, 30 Apr 2016) | 7 lines

Define Integer#- instead of Bignum#-.

* numeric.c (rb_int_minus): Define Integer#-.

* bignum.c (rb_big_minus): Don't define Bignum#-.


------------------------------------------------------------------------
r54848 | akr | 2016-04-30 20:54:26 +0900 (Sat, 30 Apr 2016) | 7 lines

Define Integer#* instead of Bignum#*.

* numeric.c (rb_int_mul): Define Integer#*.

* bignum.c (rb_big_mul): Don't define Bignum#*.


------------------------------------------------------------------------
r54847 | akr | 2016-04-30 20:31:28 +0900 (Sat, 30 Apr 2016) | 7 lines

Define Integer#% instead of Bignum#%.

* numeric.c (rb_int_modulo): Define Integer#%.

* bignum.c (rb_big_modulo): Don't define Bignum#%.


------------------------------------------------------------------------
r54846 | akr | 2016-04-30 20:18:00 +0900 (Sat, 30 Apr 2016) | 7 lines

Define Integer#== instead of Bignum#==.

* numeric.c (int_equal): Define Integer#==.

* bignum.c (rb_big_eq): Don't define Bignum#==.


------------------------------------------------------------------------
r54845 | akr | 2016-04-30 19:42:06 +0900 (Sat, 30 Apr 2016) | 10 lines

Define Integer#> instead of Bignum#>.

* numeric.c (int_gt): Define Integer#>.

* bignum.c (rb_big_gt): Don't define Bignum#>.
  Renamed from big_gt.

* internal.h (rb_big_gt): Declared.


------------------------------------------------------------------------
r54844 | akr | 2016-04-30 19:26:17 +0900 (Sat, 30 Apr 2016) | 10 lines

Define Integer#>= instead of Bignum#>=.

* numeric.c (int_ge): Define Integer#>=.

* bignum.c (rb_big_ge): Don't define Bignum#>=.
  Renamed from big_ge.

* internal.h (rb_big_ge): Declared.


------------------------------------------------------------------------
r54843 | hsbt | 2016-04-30 19:20:43 +0900 (Sat, 30 Apr 2016) | 1 line

* doc/standard_library.rdoc: Remove obsoleted classes and modules.
------------------------------------------------------------------------
r54842 | akr | 2016-04-30 19:10:23 +0900 (Sat, 30 Apr 2016) | 10 lines

Define Integer#< instead of Bignum#<.

* numeric.c (int_lt): Define Integer#<.

* bignum.c (rb_big_lt): Don't define Bignum#<.
  Renamed from big_lt.

* internal.h (rb_big_lt): Declared.


------------------------------------------------------------------------
r54841 | akr | 2016-04-30 18:48:25 +0900 (Sat, 30 Apr 2016) | 10 lines

Define Integer#<= instead of Bignum#<=.

* numeric.c (int_le): Define Integer#<=.

* bignum.c (rb_big_le): Don't define Bignum#<=.
  Renamed from big_le.

* internal.h (rb_big_le): Declared.


------------------------------------------------------------------------
r54840 | akr | 2016-04-30 18:12:11 +0900 (Sat, 30 Apr 2016) | 4 lines

Define Integer#GMP_VERSION.

* bignum.c (Init_Bignum): Define Integer#GMP_VERSION.

------------------------------------------------------------------------
r54839 | akr | 2016-04-30 17:52:49 +0900 (Sat, 30 Apr 2016) | 2 lines

Define Integer#-@ instead of Fixnum#-@.

------------------------------------------------------------------------
r54838 | akr | 2016-04-30 17:27:30 +0900 (Sat, 30 Apr 2016) | 10 lines

Define Integer#remainder instead of Bignum#remainder.

* numeric.c (int_remainder): Define Integer#remainder.

* bignum.c (rb_big_remainder): Don't define Bignum#remainder.

* internal.h (rb_big_remainder): Declared.



------------------------------------------------------------------------
r54837 | akr | 2016-04-30 15:30:08 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#-@ is unified into Integer.

* numeric.c (rb_int_uminus): {Fixnum,Bignum}#-@ is unified into
  Integer.

* bignum.c (rb_big_uminus): Don't define Bignum#-@.


------------------------------------------------------------------------
r54836 | akr | 2016-04-30 14:43:15 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#div is unified into Integer.

* numeric.c (rb_int_idiv): {Fixnum,Bignum}#div is unified into
  Integer.

* bignum.c (rb_big_idiv): Don't define Bignum#div.


------------------------------------------------------------------------
r54835 | akr | 2016-04-30 14:26:52 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#modulo is unified into Integer.

* numeric.c (rb_int_modulo): {Fixnum,Bignum}#modulo is unified into
  Integer.

* bignum.c (rb_big_modulo): Don't define Bignum#modulo.


------------------------------------------------------------------------
r54834 | akr | 2016-04-30 14:05:54 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#divmod is unified into Integer.

* numeric.c (int_divmod): {Fixnum,Bignum}#divmod is unified into
  Integer.

* bignum.c (rb_big_divmod): Don't define Bignum#divmod.


------------------------------------------------------------------------
r54833 | akr | 2016-04-30 13:22:27 +0900 (Sat, 30 Apr 2016) | 2 lines

move Fixnum#/ document position.

------------------------------------------------------------------------
r54832 | akr | 2016-04-30 13:20:56 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#fdiv is unified into Integer.

* numeric.c (int_fdiv): {Fixnum,Bignum}#fdiv is unified into
  Integer.

* bignum.c (rb_big_fdiv): Don't define Bignum#fdiv.


------------------------------------------------------------------------
r54831 | akr | 2016-04-30 12:59:02 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#** is unified into Integer.

* numeric.c (rb_int_pow): {Fixnum,Bignum}#** is unified into
  Integer.

* bignum.c (rb_big_pow): Don't define Bignum#**.


------------------------------------------------------------------------
r54830 | akr | 2016-04-30 12:30:53 +0900 (Sat, 30 Apr 2016) | 7 lines

Rename fix_rev and rb_big_neg to fix_comp and rb_big_comp.

* bignum.c (rb_big_comp): Renamed from rb_big_neg.

* numeric.c (fix_comp): Renamed from fix_rev.


------------------------------------------------------------------------
r54829 | akr | 2016-04-30 12:27:20 +0900 (Sat, 30 Apr 2016) | 10 lines

{Fixnum,Bignum}#~ is unified into Integer.

* numeric.c (int_comp): {Fixnum,Bignum}#~ is unified into
  Integer.

* bignum.c (rb_big_neg): Don't define Bignum#~.

* internal.h (rb_big_neg): Declared.


------------------------------------------------------------------------
r54828 | akr | 2016-04-30 12:08:53 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#& is unified into Integer.

* numeric.c (int_and): {Fixnum,Bignum}#& is unified into
  Integer.

* bignum.c (rb_big_and): Don't define Bignum#|.


------------------------------------------------------------------------
r54827 | nobu | 2016-04-30 11:56:17 +0900 (Sat, 30 Apr 2016) | 4 lines

ext/thread: remove

* ext/thread: removed dummy extension library.  thread_sync.c
  provides "thread.rb" already.
------------------------------------------------------------------------
r54826 | nobu | 2016-04-30 11:55:18 +0900 (Sat, 30 Apr 2016) | 5 lines

thread_sync.c: define global constants always

* thread_sync.c (ALIAS_GLOBAL_CONST): define global constant
  aliases unconditionally.  same constants are not defined at this
  time.
------------------------------------------------------------------------
r54825 | akr | 2016-04-30 11:54:14 +0900 (Sat, 30 Apr 2016) | 8 lines

{Fixnum,Bignum}#| is unified into Integer.

* numeric.c (int_or): {Fixnum,Bignum}#| is unified into
  Integer.

* bignum.c (rb_big_or): Don't define Bignum#|.


------------------------------------------------------------------------
r54824 | yui-knk | 2016-04-30 11:18:00 +0900 (Sat, 30 Apr 2016) | 1 line

* vm_trace.c: Fix typos. [ci skip]
------------------------------------------------------------------------
r54823 | nobu | 2016-04-30 10:12:52 +0900 (Sat, 30 Apr 2016) | 4 lines

pty.c: dry up

* ext/pty/pty.c (establishShell): gather initializations by the
  default shell path.
------------------------------------------------------------------------
r54822 | nobu | 2016-04-30 10:09:07 +0900 (Sat, 30 Apr 2016) | 5 lines

pty.c: user shell

* ext/pty/pty.c (establishShell): honor USER environment variable
  and login name over uid, one pid can be shared by some login
  names.
------------------------------------------------------------------------
r54821 | svn | 2016-04-30 10:09:06 +0900 (Sat, 30 Apr 2016) | 1 line

* 2016-04-30
------------------------------------------------------------------------
r54820 | nobu | 2016-04-30 10:09:06 +0900 (Sat, 30 Apr 2016) | 5 lines

pty.c: portabilities

* ext/pty/pty.c (no_mesg): define only if used.

* ext/pty/pty.c (pty_check): some flags may not be defined.
------------------------------------------------------------------------
r54819 | nobu | 2016-04-29 22:40:29 +0900 (Fri, 29 Apr 2016) | 4 lines

maintainers.rdoc: update ext/io/nonblock [ci skip]

* doc/maintainers.rdoc (ext/io/nonblock): still maintained, as
  well as ext/io/wait, which is the origin.
------------------------------------------------------------------------
r54818 | usa | 2016-04-29 21:18:51 +0900 (Fri, 29 Apr 2016) | 2 lines

* doc/maintainers.rdoc (ext/win32): of course, it's still maintained. [skip ci]

------------------------------------------------------------------------
r54817 | hsbt | 2016-04-29 21:03:13 +0900 (Fri, 29 Apr 2016) | 1 line

* gems/bundled_gems: Update latest gems, test-unit-3.1.8 and rake-11.1.2.
------------------------------------------------------------------------
r54816 | hsbt | 2016-04-29 20:43:13 +0900 (Fri, 29 Apr 2016) | 1 line

* doc/maintainers.rdoc: Update latest maintainers list on Ruby 2.4
------------------------------------------------------------------------
r54814 | hsbt | 2016-04-29 19:52:51 +0900 (Fri, 29 Apr 2016) | 1 line

* doc/maintainers.rdoc: Removed deprecated entries. These are already deleted.
------------------------------------------------------------------------
r54813 | hsbt | 2016-04-29 19:52:49 +0900 (Fri, 29 Apr 2016) | 2 lines

* doc/maintainers.rdoc: Removed Ruby 1.8 entries. It's not necessary to
  Ruby 2.4 or later.
------------------------------------------------------------------------
r54812 | svn | 2016-04-29 09:56:45 +0900 (Fri, 29 Apr 2016) | 1 line

* 2016-04-29
------------------------------------------------------------------------
r54811 | nobu | 2016-04-29 09:56:44 +0900 (Fri, 29 Apr 2016) | 1 line

win32/win32.c: remove unnecessary declaration
------------------------------------------------------------------------
r54810 | nobu | 2016-04-28 17:03:19 +0900 (Thu, 28 Apr 2016) | 4 lines

hash.c: dry up code

* hash.c (rb_hash_update_{block,func}_callback): dry up hash
  update callback code.  [Fix GH-1338]
------------------------------------------------------------------------
r54809 | naruse | 2016-04-28 16:52:59 +0900 (Thu, 28 Apr 2016) | 2 lines

* re.c (rb_reg_prepare_enc): use rb_enc_asciicompat(enc) instead of
  rb_enc_str_asciicompat_p(str) to avoid useless rb_enc_get(str) call.
------------------------------------------------------------------------
r54808 | nobu | 2016-04-28 16:33:43 +0900 (Thu, 28 Apr 2016) | 4 lines

optparse.rb: [DOC] fix example code [ci skip]

* lib/optparse.rb: [DOC] fix example code.  base on the code by
  Semyon Gaivoronskiy in [ruby-core:75224].  [Bug #12323]
------------------------------------------------------------------------
r54807 | nobu | 2016-04-28 15:54:05 +0900 (Thu, 28 Apr 2016) | 4 lines

win32/file.c: fix reallocation threshold

* win32/file.c (replace_to_long_name): fix reallocation threshold.
  dereferenced size of a pointer is not same as the buffer size.
------------------------------------------------------------------------
r54806 | nobu | 2016-04-28 15:54:03 +0900 (Thu, 28 Apr 2016) | 4 lines

win32/file.c: remove unnecessary code

* win32/file.c (replace_to_long_name): remove unnecessary backward
  scan for the last directory separator.
------------------------------------------------------------------------
r54805 | svn | 2016-04-28 09:33:09 +0900 (Thu, 28 Apr 2016) | 1 line

* properties.
------------------------------------------------------------------------
r54804 | hsbt | 2016-04-28 09:33:08 +0900 (Thu, 28 Apr 2016) | 3 lines

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.4.
  Please see entries of 2.6.4 on
  https://github.com/rubygems/rubygems/blob/master/History.txt
------------------------------------------------------------------------
r54803 | odaira | 2016-04-28 05:00:57 +0900 (Thu, 28 Apr 2016) | 5 lines

* configure.in (rb_cv_lgamma_r_pm0): check if lgamma_r(+0.0)
  returns positive infinity, in addition to lgamma_r(-0.0).
  AIX returns an incorrect result of negative infinity.

* math.c (ruby_lgamma_r): handle +0.0, in addition to -0.0.
------------------------------------------------------------------------
r54802 | naruse | 2016-04-28 01:15:21 +0900 (Thu, 28 Apr 2016) | 3 lines

* time.c: define _DEFAULT_SOURCE because glibc 2.20 depracates
  _BSD_SOURCE.
  https://sourceware.org/glibc/wiki/Release/2.20
------------------------------------------------------------------------
r54801 | svn | 2016-04-28 00:35:24 +0900 (Thu, 28 Apr 2016) | 1 line

* 2016-04-28
------------------------------------------------------------------------
r54800 | akr | 2016-04-28 00:35:23 +0900 (Thu, 28 Apr 2016) | 8 lines

{Fixnum,Bignum}#^ is unified into Integer.

* numeric.c (int_xor): {Fixnum,Bignum}#^ is unified into
  Integer.

* bignum.c (rb_big_xor): Don't define Bignum#^.


------------------------------------------------------------------------
r54798 | akr | 2016-04-27 22:05:09 +0900 (Wed, 27 Apr 2016) | 2 lines

[Doc] Add Document-method: directives.

------------------------------------------------------------------------
r54797 | kazu | 2016-04-27 21:59:59 +0900 (Wed, 27 Apr 2016) | 1 line

Update rdoc of Integer#[] (fix -> int)
------------------------------------------------------------------------
r54796 | akr | 2016-04-27 21:46:46 +0900 (Wed, 27 Apr 2016) | 2 lines

[DOC] move rdoc comments.

------------------------------------------------------------------------
r54795 | akr | 2016-04-27 20:56:03 +0900 (Wed, 27 Apr 2016) | 10 lines

{Fixnum,Bignum}#[] is unified into Integer.

* numeric.c (int_aref): {Fixnum,Bignum}#[] is unified into
  Integer.

* bignum.c (rb_big_aref): Don't define Bignum#<<.

* internal.h (rb_big_aref): Declared.


------------------------------------------------------------------------
r54794 | naruse | 2016-04-27 16:11:07 +0900 (Wed, 27 Apr 2016) | 1 line

* tool/instruction.rb: fix to follow current implementation.
------------------------------------------------------------------------
r54793 | naruse | 2016-04-27 16:11:06 +0900 (Wed, 27 Apr 2016) | 1 line

setdynamic is obsoleted
------------------------------------------------------------------------
r54792 | nobu | 2016-04-27 15:47:56 +0900 (Wed, 27 Apr 2016) | 4 lines

stringio.c: warn block for new

* ext/stringio/stringio.c (strio_s_new): warn if a block is given,
  as well as IO.new.
------------------------------------------------------------------------
r54791 | nobu | 2016-04-27 14:29:49 +0900 (Wed, 27 Apr 2016) | 5 lines

internal.h: ONLY_FOR_INTERNAL_USE

* error.c (ruby_only_for_internal_use): raise fatal error when
  deprecated function only for internal use is called, not just a
  warning.
------------------------------------------------------------------------
r54790 | nobu | 2016-04-27 14:29:07 +0900 (Wed, 27 Apr 2016) | 1 line

internal.h: adjust style
------------------------------------------------------------------------
r54789 | svn | 2016-04-27 00:14:19 +0900 (Wed, 27 Apr 2016) | 1 line

* 2016-04-27
------------------------------------------------------------------------
r54788 | kazu | 2016-04-27 00:14:18 +0900 (Wed, 27 Apr 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54787 | usa | 2016-04-26 23:43:50 +0900 (Tue, 26 Apr 2016) | 3 lines

* tool/redmine-backporter.rb (rel): should not raise exceptions even if
  the user input is wrong.  only reports the error and continue process.

------------------------------------------------------------------------
r54785 | nobu | 2016-04-26 23:35:24 +0900 (Tue, 26 Apr 2016) | 5 lines

Fix -e script encoding

* ruby.c (process_options): convert -e script to the encoding
  given by a command line option on Windows.  assume it is the
  expected encoding.  [ruby-dev:49461] [Bug #11900]
------------------------------------------------------------------------
r54783 | akr | 2016-04-26 21:29:41 +0900 (Tue, 26 Apr 2016) | 2 lines

[DOC] update Integer#<< doc.

------------------------------------------------------------------------
r54782 | akr | 2016-04-26 21:23:05 +0900 (Tue, 26 Apr 2016) | 10 lines

{Fixnum,Bignum}#<< is unified into Integer.

* numeric.c (rb_int_lshift): {Fixnum,Bignum}#<< is unified into
  Integer.

* bignum.c (rb_big_lshift): Don't define Bignum#<<.

* internal.h (rb_big_lshift): Declared.


------------------------------------------------------------------------
r54781 | akr | 2016-04-26 21:09:40 +0900 (Tue, 26 Apr 2016) | 10 lines

{Fixnum,Bignum}#>> is unified into Integer.

* numeric.c (rb_int_rshift): {Fixnum,Bignum}#>> is unified into
  Integer.

* bignum.c (rb_big_rshift): Don't define Bignum#>>.

* internal.h (rb_big_rshift): Declared.


------------------------------------------------------------------------
r54780 | akr | 2016-04-26 20:47:14 +0900 (Tue, 26 Apr 2016) | 9 lines

{Fixnum,Bignum}#size is unified into Integer.

* numeric.c (int_size): {Fixnum,Bignum}#size is unified into Integer.

* bignum.c (rb_big_size_m): Don't define Bignum#size.

* internal.h (rb_big_size_m): Declared.


------------------------------------------------------------------------
r54779 | akr | 2016-04-26 20:30:04 +0900 (Tue, 26 Apr 2016) | 2 lines

forgot to remove Bignum#bit_length.

------------------------------------------------------------------------
r54778 | akr | 2016-04-26 20:17:37 +0900 (Tue, 26 Apr 2016) | 16 lines

{Fixnum,Bignum}#bit_length is unified into Integer.

* numeric.c (rb_int_bit_length): {Fixnum,Bignum}#bit_length is
  unified into Integer.

* bignum.c (rb_big_bit_length): Don't define Bignum#bit_length.

* internal.h (rb_big_bit_length): Declared.

--This iine, and those below, will be ignored--

M    ChangeLog
M    bignum.c
M    internal.h
M    numeric.c

------------------------------------------------------------------------
r54777 | akr | 2016-04-26 19:59:27 +0900 (Tue, 26 Apr 2016) | 7 lines

* numeric.c (int_abs): Integer#{abs,magnitude} moved from Fixnum and Bignum.

* internal.h (rb_big_abs): Declared.

* bignum.c (rb_big_abs): Don't define Bignum#{abs,magnitude}.


------------------------------------------------------------------------
r54776 | svn | 2016-04-26 17:38:21 +0900 (Tue, 26 Apr 2016) | 1 line

* 2016-04-26
------------------------------------------------------------------------
r54775 | nobu | 2016-04-26 17:38:20 +0900 (Tue, 26 Apr 2016) | 4 lines

compile.c: true conditions

* compile.c (compile_branch_condition): add more always-true
  conditions to optimize away unreachable branch.
------------------------------------------------------------------------
r54763 | nobu | 2016-04-25 17:30:56 +0900 (Mon, 25 Apr 2016) | 8 lines

tk/extconf.rb: refactor

* ext/tk/extconf.rb (collect_tcltk_defs): split by -D at the
  beginning or preceded by a space.  exclude empty strings from
  $defs.

* ext/tk/extconf.rb: test if value is set and has non-blank by
  matching /\S/ at once.
------------------------------------------------------------------------
r54762 | nobu | 2016-04-25 16:56:07 +0900 (Mon, 25 Apr 2016) | 6 lines

net/http/header.rb: refactor

* lib/net/http/header.rb (connection_close?): match headers
  without making intermediate arrays.

* lib/net/http/header.rb (connection_keep_alive?): ditto.
------------------------------------------------------------------------
r54761 | nobu | 2016-04-25 16:56:06 +0900 (Mon, 25 Apr 2016) | 6 lines

ripper: fix ripper.E

* ext/ripper/depend (ripper.E): add missing $(INCFLAGS).

* ext/ripper/tools/strip.rb: insert an empty line for blank or
  line directive lines.
------------------------------------------------------------------------
r54760 | nobu | 2016-04-25 16:56:03 +0900 (Mon, 25 Apr 2016) | 4 lines

extmk.rb: refactor

* ext/extmk.rb: extract non-blank part without intermediate
  objects.
------------------------------------------------------------------------
r54759 | nobu | 2016-04-25 14:39:12 +0900 (Mon, 25 Apr 2016) | 6 lines

rbconfig/sizeof: calculate at compilation time

* ext/rbconfig/sizeof/extconf.rb: just check the existence of each
  types, to reduce configuration time, especially cross-compiling.
* template/sizes.c.tmpl: calculate sizes of checked types at
  compilation time.
------------------------------------------------------------------------
r54758 | nobu | 2016-04-25 14:38:55 +0900 (Mon, 25 Apr 2016) | 3 lines

sizes.c.tmpl: extra semicolon

* template/sizes.c.tmpl (DEFINE): remove extra semicolon.
------------------------------------------------------------------------
r54757 | nobu | 2016-04-25 12:45:50 +0900 (Mon, 25 Apr 2016) | 1 line

configure.in: do not create unnecessary verconf.h
------------------------------------------------------------------------
r54756 | hsbt | 2016-04-25 11:27:34 +0900 (Mon, 25 Apr 2016) | 2 lines

* doc/extension.rdoc: Improvements to english grammers.
  [Bug #12246][ruby-core:74792][ci skip]
------------------------------------------------------------------------
r54755 | hsbt | 2016-04-25 11:17:54 +0900 (Mon, 25 Apr 2016) | 3 lines

* encoding.c: Fix return value of `Encoding::ISO8859_1.name`
  [Bug #12313][ruby-core:75147][ci skip]
* ext/bigdecimal/bigdecimal.c: Fix code sample of `BigDecimal.new`
------------------------------------------------------------------------
r54753 | svn | 2016-04-25 00:08:26 +0900 (Mon, 25 Apr 2016) | 1 line

* 2016-04-25
------------------------------------------------------------------------
r54752 | naruse | 2016-04-25 00:08:25 +0900 (Mon, 25 Apr 2016) | 5 lines

Revert "common.mk: timestamp file for verconf.h"

This reverts commit r54748.
It breaks build.
http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20160424T120700Z.log.html.gz
------------------------------------------------------------------------
r54751 | naruse | 2016-04-24 23:58:48 +0900 (Sun, 24 Apr 2016) | 6 lines

Revert "vm_insnhelper.c: INLINE condition" [Bug #12316]

This reverts commit r54747.
!__clang__ is also essential.
Anyway clang inlines vm_getivar into both vm_call_ivar and
vm_getinstancevariable, which r54728 originally intended to.
------------------------------------------------------------------------
r54750 | odaira | 2016-04-24 23:32:31 +0900 (Sun, 24 Apr 2016) | 1 line

* configure.in: add missing -lm for AIX.
------------------------------------------------------------------------
r54749 | kazu | 2016-04-24 22:41:38 +0900 (Sun, 24 Apr 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54748 | nobu | 2016-04-24 21:01:47 +0900 (Sun, 24 Apr 2016) | 1 line

common.mk: timestamp file for verconf.h
------------------------------------------------------------------------
r54747 | nobu | 2016-04-24 21:01:00 +0900 (Sun, 24 Apr 2016) | 4 lines

vm_insnhelper.c: INLINE condition

* vm_insnhelper.c (INLINE): works with __NO_INLINE__ only,
  __clang__ is not the point.
------------------------------------------------------------------------
r54746 | ktsj | 2016-04-24 18:42:40 +0900 (Sun, 24 Apr 2016) | 1 line

* vm_insnhelper.c (INLINE): cosmetic change.
------------------------------------------------------------------------
r54745 | ktsj | 2016-04-24 18:37:04 +0900 (Sun, 24 Apr 2016) | 2 lines

* vm_insnhelper.c (INLINE): disbale r54738 if __NO_INLINE__ is defined.
  It caused "undefined reference to `vm_getivar'".
------------------------------------------------------------------------
r54744 | nobu | 2016-04-24 12:42:25 +0900 (Sun, 24 Apr 2016) | 3 lines

Revert r54742

Commit miss.
------------------------------------------------------------------------
r54743 | nobu | 2016-04-24 12:38:03 +0900 (Sun, 24 Apr 2016) | 1 line

Disable r54738 if clang
------------------------------------------------------------------------
r54742 | nobu | 2016-04-24 11:56:20 +0900 (Sun, 24 Apr 2016) | 1 line

Fix compile error other than gcc
------------------------------------------------------------------------
r54741 | nobu | 2016-04-24 11:10:09 +0900 (Sun, 24 Apr 2016) | 3 lines

regexec.c: constify

* regexec.c (match_at): constify oplabels.
------------------------------------------------------------------------
r54740 | nobu | 2016-04-24 10:10:29 +0900 (Sun, 24 Apr 2016) | 3 lines

win32.c: suppress warnings

* win32/win32.c (set_pioinfo_extra): remove "/*" within comment.
------------------------------------------------------------------------
r54739 | yui-knk | 2016-04-24 09:32:21 +0900 (Sun, 24 Apr 2016) | 2 lines

* test/ruby/test_array.rb: Add test cases for Array#sum with
  non-numeric objects.
------------------------------------------------------------------------
r54738 | naruse | 2016-04-24 07:30:42 +0900 (Sun, 24 Apr 2016) | 29 lines

* vm_insnhelper.c (INLINE): define as `inline` when it is optimized.
  define as `static inline` when it is not optimized to keep
  the symbol generated.

* vm_insnhelper.c (vm_getivar): use `INLINE` to force inline
  so that a compiler inlines it into vm_getinstancevariable
  and optimizes out is_attr and related branches.

* vm_insnhelper.c (vm_getivar): use `inline` to recommend inline.
  Without this vm1_ivar_set is degraded.

  benchmark results:
  minimum results in each 5 measurements.
  Execution time (sec)
  name    ruby 2.4.0dev (2016-04-23 trunk 54727) [x86_64-linux]   ruby 2.4.0dev (2016-04-23 trunk 54733) [x86_64-linux]       built-ruby
  loop_whileloop 0.641                                                   0.642 0.646
  vm1_ivar* 1.002                                                   0.999 0.831
  vm1_ivar_set* 0.369                                                   1.106 0.362

  Speedup ratio: compare with the result of `ruby 2.4.0dev (2016-04-23
  trunk 54727) [x86_64-linux]' (greater is better)
  name    ruby 2.4.0dev (2016-04-23 trunk 54733) [x86_64-linux]
  built-ruby
  loop_whileloop
  0.998        0.991
  vm1_ivar*
  1.003        1.205
  vm1_ivar_set*
  0.334        1.018
------------------------------------------------------------------------
r54737 | naruse | 2016-04-24 03:46:26 +0900 (Sun, 24 Apr 2016) | 4 lines

Support MSVC14 and 15 [Bug #11118]

Search _pioinfo which is not exported after MSVC14.
[Bug #12014] [GH-884]
------------------------------------------------------------------------
r54735 | svn | 2016-04-24 03:05:27 +0900 (Sun, 24 Apr 2016) | 1 line

* 2016-04-24
------------------------------------------------------------------------
r54734 | nagachika | 2016-04-24 03:05:26 +0900 (Sun, 24 Apr 2016) | 1 line

* tool/merger.rb: use FileUtile.rm_f to fix an error on missing temporary file.
------------------------------------------------------------------------
r54733 | nobu | 2016-04-23 23:12:27 +0900 (Sat, 23 Apr 2016) | 4 lines

compile.c: remove redundant trace insn

* compile.c (iseq_peephole_optimize): remove successive line trace
  instructions except for the last.
------------------------------------------------------------------------
r54732 | nobu | 2016-04-23 21:17:36 +0900 (Sat, 23 Apr 2016) | 6 lines

vm_insnhelper.c: getivar setivar optimization

* vm_insnhelper.c (vm_getivar, vm_setivar): remove inline.

* vm_insnhelper.c (vm_call_ivar, vm_call_attrset): tweak the order
  tail-call-optimization friendly.
------------------------------------------------------------------------
r54731 | nobu | 2016-04-23 20:43:52 +0900 (Sat, 23 Apr 2016) | 3 lines

compile.c: instruction ID predicate

* compile.c (IS_INSN_ID): add instruction ID predicate macro.
------------------------------------------------------------------------
r54730 | nobu | 2016-04-23 20:39:41 +0900 (Sat, 23 Apr 2016) | 4 lines

compile.c: ISeq element type predicates

* compile.c (IS_INSN, IS_LABEL, IS_ADJUST): add ISeq element type
  predicate macros.
------------------------------------------------------------------------
r54729 | nobu | 2016-04-23 20:26:59 +0900 (Sat, 23 Apr 2016) | 5 lines

vm_insnhelper.c: missing static to inline

* vm_insnhelper.c (vm_getivar): add missing static to inline,
  otherwise external symbol is referred and link fails when
  optimization is disabled.
------------------------------------------------------------------------
r54728 | naruse | 2016-04-23 18:16:51 +0900 (Sat, 23 Apr 2016) | 17 lines

* vm_insnhelper.c (vm_getivar): specify inline instead of static inline.
  vm_getivar is called by vm_call_ivar and vm_getinstancevariable.
  At least with GCC 4.8 and 5.3 on Linux, they are inlining it into
  vm_call_ivar but not vm_getinstancevariable.
  By `inline`, they correctly inline it and gains performance.

  Speedup ratio: compare with the result of `ruby 2.4.0dev (2016-04-23
  trunk 54727) [x86_64-linux]' (greater is better)
  name    built-ruby
  loop_whileloop       1.001
  vm1_ivar*            1.189
  vm1_ivar_set*        1.024

  Note tha `inline`'s meaning is different between old GCC
  and C99. Old GCC's inline means C99's extern inline.
  https://gcc.gnu.org/onlinedocs/gcc/Inline.html
  Since Ruby specify -std=iso9899:1999, it works like C99.
------------------------------------------------------------------------
r54727 | naruse | 2016-04-23 16:15:26 +0900 (Sat, 23 Apr 2016) | 2 lines

* include/ruby/ruby.h (rb_mul_size_overflow): use UNLIKELY
  by user side to improve generallity.
------------------------------------------------------------------------
r54726 | naruse | 2016-04-23 16:15:25 +0900 (Sat, 23 Apr 2016) | 3 lines

* include/ruby/ruby.h (RB_LIKELY): use prefix in ruby.h.

* intern.h (LIKELY): define with RB_LIKELY.
------------------------------------------------------------------------
r54725 | yui-knk | 2016-04-23 13:27:12 +0900 (Sat, 23 Apr 2016) | 2 lines

* NEWS: Add descriptions for Time#to_time updates.
  [Bug #12271] [ci skip]
------------------------------------------------------------------------
r54724 | yui-knk | 2016-04-23 13:23:29 +0900 (Sat, 23 Apr 2016) | 2 lines

* NEWS: Add descriptions for DateTime#to_time updates.
  [Bug #12189] [ci skip]
------------------------------------------------------------------------
r54723 | nobu | 2016-04-23 12:23:51 +0900 (Sat, 23 Apr 2016) | 3 lines

eval.c: reuse VM tag

* eval.c (ruby_cleanup): reuse same VM tag by managing steps.
------------------------------------------------------------------------
r54722 | nobu | 2016-04-23 12:23:28 +0900 (Sat, 23 Apr 2016) | 4 lines

eval_error.c: reuse threadptr

* eval_error.c (error_print, error_handle): reuse same threadptr
  by passing as an argument.
------------------------------------------------------------------------
r54721 | nobu | 2016-04-23 11:21:29 +0900 (Sat, 23 Apr 2016) | 5 lines

date_core.c: [DOC] markdown to rdoc [ci skip]

* ext/date/date_core.c (Init_date_core): [DOC] Convert DateTime
  documentation to RDoc from Markdown.
  [ruby-core:75136] [Bug #12311]
------------------------------------------------------------------------
r54720 | nobu | 2016-04-23 09:03:37 +0900 (Sat, 23 Apr 2016) | 4 lines

ruby.c: fix command line encoding on cygwin

* ruby.c: cygwin does not use w32_cmdvector, command line can be
  other than UTF-8.  [ruby-dev:49519] [Bug #12184]
------------------------------------------------------------------------
r54719 | nobu | 2016-04-23 09:02:25 +0900 (Sat, 23 Apr 2016) | 1 line

configure.in: move cache variable for AIX round
------------------------------------------------------------------------
r54717 | svn | 2016-04-23 01:02:26 +0900 (Sat, 23 Apr 2016) | 1 line

* 2016-04-23
------------------------------------------------------------------------
r54716 | odaira | 2016-04-23 01:02:25 +0900 (Sat, 23 Apr 2016) | 3 lines

* configure.in: don't use the system-provided round(3) on AIX.
  In AIX, round(0.49999999999999994) returns 1.0.
  Use round() in numeric.c instead.
------------------------------------------------------------------------
r54706 | akr | 2016-04-22 21:20:06 +0900 (Fri, 22 Apr 2016) | 6 lines

* test/ruby/test_time_tz.rb: Tests depends on Europe/Moscow removed
  to avoid test failures due to the tzdata change.
  https://github.com/eggert/tz/commit/8ee11a301cf173afb0c76e0315b9f9ec8ebb9d95
  Found by naruse.


------------------------------------------------------------------------
r54705 | akr | 2016-04-22 20:44:34 +0900 (Fri, 22 Apr 2016) | 2 lines

[DOC] Arrah#sum with non-numeric objects.

------------------------------------------------------------------------
r54704 | naruse | 2016-04-22 20:42:31 +0900 (Fri, 22 Apr 2016) | 7 lines

* include/ruby/ruby.h (rb_mul_size_overflow): added to handle
  mul overflow efficiently.

* include/ruby/ruby.h (rb_alloc_tmp_buffer2): use rb_mul_size_overflow
  and avoid division where it can define DSIZE_T.

* gc.c (xmalloc2_size): moved from ruby.h and use rb_mul_size_overflow.
------------------------------------------------------------------------
r54703 | nobu | 2016-04-22 20:34:05 +0900 (Fri, 22 Apr 2016) | 4 lines

time.c: add example [ci skip]

* time.c (time_asctime): [DOC] add ctime example, not only
  asctime.  [ruby-core:75126] [Bug #12310]
------------------------------------------------------------------------
r54701 | nobu | 2016-04-22 19:04:47 +0900 (Fri, 22 Apr 2016) | 1 line

variable.c: fix implicit conversion
------------------------------------------------------------------------
r54700 | naruse | 2016-04-22 18:47:34 +0900 (Fri, 22 Apr 2016) | 2 lines

* variable.c: use uint32_t instead of long to avoid confusion about
  the type of ivtbl->numiv.
------------------------------------------------------------------------
r54699 | nobu | 2016-04-22 18:45:24 +0900 (Fri, 22 Apr 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54682 | nobu | 2016-04-22 15:14:21 +0900 (Fri, 22 Apr 2016) | 4 lines

tk: suppress progress indicators

* ext/tk/extconf.rb: hack to disable progress indicators with
  parallel build, not to interleave other messages.
------------------------------------------------------------------------
r54681 | nobu | 2016-04-22 15:09:29 +0900 (Fri, 22 Apr 2016) | 4 lines

eval_jump.c: restore previous error info

* eval_jump.c (exec_end_procs_chain): restore previous error info
  for each end procs.  [ruby-core:75038] [Bug #12302]
------------------------------------------------------------------------
r54679 | usa | 2016-04-22 15:07:19 +0900 (Fri, 22 Apr 2016) | 4 lines

* tool/redmine-backporter.rb: the fullpath of merger.rb is too long to
  copy&paste on Windows.  show shorter name instead on the platform.
  I'm sure that the user of this command on Windows is only me.

------------------------------------------------------------------------
r54677 | usa | 2016-04-22 14:52:30 +0900 (Fri, 22 Apr 2016) | 2 lines

* tool/merger.rb: remove temporary file.

------------------------------------------------------------------------
r54670 | hsbt | 2016-04-22 11:27:10 +0900 (Fri, 22 Apr 2016) | 2 lines

* lib/net/http.rb: Improve documentation for SSL requests via GET method.
  [fix GH-1325][ci skip] Patch by @jsyeo
------------------------------------------------------------------------
r54669 | hsbt | 2016-04-22 10:51:18 +0900 (Fri, 22 Apr 2016) | 2 lines

* lib/webrick/ssl.rb: Support to add SSLCiphers option.
  [fix GH-1321] Patch by @rhadoo
------------------------------------------------------------------------
r54668 | hsbt | 2016-04-22 10:43:31 +0900 (Fri, 22 Apr 2016) | 2 lines

* file.c, win32/file.c: Removed obsoleted safe level checks.
  [fix GH-1327] Patch by @cremno
------------------------------------------------------------------------
r54667 | hsbt | 2016-04-22 10:02:01 +0900 (Fri, 22 Apr 2016) | 2 lines

* benchmark/bm_so_meteor_contest.rb: fix a typo.
  [fix GH-1330][ci skip] Patch by @sachin21
------------------------------------------------------------------------
r54666 | nobu | 2016-04-22 06:59:01 +0900 (Fri, 22 Apr 2016) | 5 lines

default.mspec: OBJDIR

* spec/default.mspec: set object directory for optional/capi, not
  to pollute the source directory.
  https://github.com/ruby/spec/pull/247
------------------------------------------------------------------------
r54665 | nobu | 2016-04-22 06:38:21 +0900 (Fri, 22 Apr 2016) | 1 line

spec/default.mspec: reduce expand_path
------------------------------------------------------------------------
r54664 | naruse | 2016-04-22 05:59:40 +0900 (Fri, 22 Apr 2016) | 7 lines

* gc.c (rb_alloc_tmp_buffer_with_count): added like xmalloc2 to
  avoid duplicated check of size.

* gc.c (ruby_xmalloc2): added to keep separate layers.

* include/ruby/ruby.h (rb_alloc_tmp_buffer2): added to check
  the size more statically.
------------------------------------------------------------------------
r54663 | svn | 2016-04-22 05:59:40 +0900 (Fri, 22 Apr 2016) | 1 line

* 2016-04-22
------------------------------------------------------------------------
r54662 | naruse | 2016-04-22 05:59:39 +0900 (Fri, 22 Apr 2016) | 3 lines

* include/ruby/ruby.h (LIKELY): moved from internal.h.

* include/ruby/ruby.h (UNLIKELY): ditto.
------------------------------------------------------------------------
r54661 | naruse | 2016-04-22 05:59:39 +0900 (Fri, 22 Apr 2016) | 18 lines

* gc.c (objspace_malloc_prepare): remove size check because it is
  used by objspace_xmalloc and objspace_xcalloc.
  objspace_xmalloc introduces its own check in this commit.
  objspace_xcalloc checks with xmalloc2_size (ruby_xmalloc2_size).

* gc.c (objspace_xmalloc0): common xmalloc function.

* gc.c (objspace_xmalloc): introduce its own size check.

* gc.c (objspace_xmalloc2): separated from ruby_xmalloc2 to clarify
  the layer who has the responsibility to check the size.

* gc.c (objspace_xrealloc): remove duplicated size check.

* gc.c (ruby_xmalloc2): use objspace_xmalloc2.

* include/ruby/ruby.h (ruby_xmalloc2_size): follow the size limit
  as SSIZE_MAX. Note that ISO C says size_t is unsigned integer.
------------------------------------------------------------------------
r54660 | kazu | 2016-04-21 21:16:14 +0900 (Thu, 21 Apr 2016) | 1 line

fix typos
------------------------------------------------------------------------
r54659 | kazu | 2016-04-21 21:16:13 +0900 (Thu, 21 Apr 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54658 | svn | 2016-04-21 12:14:06 +0900 (Thu, 21 Apr 2016) | 1 line

* 2016-04-21
------------------------------------------------------------------------
r54657 | nobu | 2016-04-21 12:14:05 +0900 (Thu, 21 Apr 2016) | 6 lines

ifchange: ignore unmatch TEST_COLORS

* configure.in: check if succeeded in creating config.h.
* tool/ifchange: ignore failures when TEST_COLORS unmatched. just
  use the default value if expected name is not contained in it.
  [ruby-core:75046] [Bug #12303]
------------------------------------------------------------------------
r54655 | nobu | 2016-04-20 17:33:33 +0900 (Wed, 20 Apr 2016) | 7 lines

cgi/util.rb: remove CGI::Util#_unescape

* ext/cgi/escape/escape.c (cgiesc_unescape): define unescape
  method instead of _unescape, and should pass the optional
  argument to the super method.
* lib/cgi/util.rb (CGI::Util#_unescape): remove intermediate
  method.
------------------------------------------------------------------------
r54654 | nobu | 2016-04-20 15:52:30 +0900 (Wed, 20 Apr 2016) | 6 lines

error.c: SyntaxError#initialize

* error.c (syntax_error_initialize): move the default message,
  "compile error", from parse.y.  the default parameter should
  belong to the class definition.
* parse.y (yycompile0): use the default parameter.
------------------------------------------------------------------------
r54653 | nobu | 2016-04-20 13:37:26 +0900 (Wed, 20 Apr 2016) | 4 lines

assertions.rb: return the exception

* test/lib/test/unit/assertions.rb (assert_syntax_error): return
  the rescued exception object as well as assert_raise.
------------------------------------------------------------------------
r54652 | nobu | 2016-04-20 11:52:07 +0900 (Wed, 20 Apr 2016) | 4 lines

compile.c: make SyntaxError after formatting

* compile.c (append_compile_error): make SyntaxError instance by
  rb_syntax_error_append on demand after formatting the message.
------------------------------------------------------------------------
r54651 | svn | 2016-04-20 10:25:56 +0900 (Wed, 20 Apr 2016) | 1 line

* 2016-04-20
------------------------------------------------------------------------
r54650 | nobu | 2016-04-20 10:25:55 +0900 (Wed, 20 Apr 2016) | 8 lines

refactor syntax error

* compile.c (append_compile_error): use rb_syntax_error_append.
* error.c (rb_syntax_error_append): append messages into a
  SyntaxError exception instance.
* parse.y (yycompile0): make new SyntaxError instance in main
  mode, otherwize error_buffer should be a SyntaxError if error
  has occurred.
------------------------------------------------------------------------
r54649 | nobu | 2016-04-19 17:42:50 +0900 (Tue, 19 Apr 2016) | 7 lines

refactor parser error

* error.c (err_vcatf): rename, and separate appending message from
  creating a string buffer.
* error.c (rb_syntax_error_append): merge rb_error_vsprintf and
  rb_compile_err_append.
* parse.y (parser_compile_error): use rb_syntax_error_append.
------------------------------------------------------------------------
r54648 | nobu | 2016-04-19 13:46:20 +0900 (Tue, 19 Apr 2016) | 6 lines

appending compile error without rb_errinfo

* compile.c (append_compile_error, compile_bug): pass iseq and get
  error info and file from it, not by the thread error info.
* error.c (rb_report_bug_valist): take va_list instead of variadic
  arguments, and just report the bug but not abort.
------------------------------------------------------------------------
r54647 | sonots | 2016-04-19 13:20:48 +0900 (Tue, 19 Apr 2016) | 4 lines

* lib/time.rb: revert r54167 because it would break
  backward compatibilities, and it is documented that
  Time.parse does not take into account time zone
  abbreations other than ones described in RFC 822
------------------------------------------------------------------------
r54646 | nobu | 2016-04-19 13:14:38 +0900 (Tue, 19 Apr 2016) | 4 lines

use more descriptive assertions

* test/logger/test_logdevice.rb: use assert_predicate,
  assert_not_predicate, and assert_file instead of bare assert.
------------------------------------------------------------------------
r54645 | sonots | 2016-04-19 13:13:19 +0900 (Tue, 19 Apr 2016) | 1 line

* ChangeLog: Fix dates of previous commits
------------------------------------------------------------------------
r54644 | sonots | 2016-04-19 12:55:13 +0900 (Tue, 19 Apr 2016) | 2 lines

* ChangeLog: Add descriptions for logger updates
* NEWS: Add descriptions for logger updates
------------------------------------------------------------------------
r54641 | sonots | 2016-04-19 00:54:45 +0900 (Tue, 19 Apr 2016) | 1 line

* test/logger/test_logdevice.rb: fix tests to pass on windows
------------------------------------------------------------------------
r54640 | svn | 2016-04-19 00:07:32 +0900 (Tue, 19 Apr 2016) | 1 line

* 2016-04-19
------------------------------------------------------------------------
r54639 | sonots | 2016-04-19 00:07:31 +0900 (Tue, 19 Apr 2016) | 1 line

* lib/logger.rb: Add shift_period_suffix option [Fix GH-10772]
------------------------------------------------------------------------
r54638 | sonots | 2016-04-18 19:45:40 +0900 (Mon, 18 Apr 2016) | 4 lines

Allow specifying logger parameters in constructor

* lib/logger.rb: Allow specifying logger prameters such as level,
  progname, datetime_format, formatter in constructor [Bug #12224]
------------------------------------------------------------------------
r54630 | nobu | 2016-04-18 16:08:35 +0900 (Mon, 18 Apr 2016) | 3 lines

error.c: warn_vsprintf

* error.c (warn_vsprintf, warning_string): share common code.
------------------------------------------------------------------------
r54629 | nobu | 2016-04-18 16:08:34 +0900 (Mon, 18 Apr 2016) | 4 lines

error.c: compile_vsprintf

* error.c (compile_vsprintf): rename compile_snprintf, following
  the argument changes.
------------------------------------------------------------------------
r54628 | nobu | 2016-04-18 16:07:03 +0900 (Mon, 18 Apr 2016) | 5 lines

compile.c: fix dangling link

* compile.c (iseq_peephole_optimize): should not replace the
  current target INSN, not to follow the replaced dangling link in
  the caller.  [ruby-core:74993] [Bug #11816]
------------------------------------------------------------------------
r54626 | nobu | 2016-04-18 12:57:34 +0900 (Mon, 18 Apr 2016) | 4 lines

numeric.c: numeric ndigits

* numeric.c (num_floor, num_ceil, num_truncate): add an optional
  parameter, digits, as well as Numeric#round.  [Feature #12245]
------------------------------------------------------------------------
r54625 | nobu | 2016-04-18 12:56:33 +0900 (Mon, 18 Apr 2016) | 4 lines

numeric.c: flo_truncate

* numeric.c (flo_truncate): add an optional parameter, digits, as
  well as Float#round.  [Feature #12245]
------------------------------------------------------------------------
r54624 | nobu | 2016-04-18 12:55:33 +0900 (Mon, 18 Apr 2016) | 4 lines

numeric.c: int_truncate

* numeric.c (int_truncate): add an optional parameter, digits, as
  well as Integer#round.  [Feature #12245]
------------------------------------------------------------------------
r54623 | nobu | 2016-04-18 12:40:03 +0900 (Mon, 18 Apr 2016) | 4 lines

test_float.rb: assertions for negative floats

* test/ruby/test_float.rb: add assertions for round,floor,ceil on
  negative floats.  [Feature #12245]
------------------------------------------------------------------------
r54622 | svn | 2016-04-18 11:38:38 +0900 (Mon, 18 Apr 2016) | 1 line

* 2016-04-18
------------------------------------------------------------------------
r54621 | nobu | 2016-04-18 11:38:37 +0900 (Mon, 18 Apr 2016) | 4 lines

numeric.c: update doc [ci skip]

* numeric.c (int_to_i): [DOC] floor and ceil are no longer
  synonyms.  [Feature #12245]
------------------------------------------------------------------------
r54620 | nobu | 2016-04-17 21:37:15 +0900 (Sun, 17 Apr 2016) | 4 lines

error.c: remove unused function

* error.c (rb_compile_bug): remove unused function, which has
  never been exposed.
------------------------------------------------------------------------
r54619 | ktsj | 2016-04-17 20:34:52 +0900 (Sun, 17 Apr 2016) | 1 line

* array.c (rb_ary_sum): [DOC] fix typos.
------------------------------------------------------------------------
r54616 | svn | 2016-04-17 04:20:12 +0900 (Sun, 17 Apr 2016) | 1 line

* 2016-04-17
------------------------------------------------------------------------
r54615 | nagachika | 2016-04-17 04:20:11 +0900 (Sun, 17 Apr 2016) | 1 line

* tool/redmine-backporter.rb: revisions are strings.
------------------------------------------------------------------------
r54614 | yui-knk | 2016-04-16 14:25:59 +0900 (Sat, 16 Apr 2016) | 2 lines

* ext/date/date_core.c : remove not used f_getlocal macro.
  After r54553 f_getlocal macro is not used.
------------------------------------------------------------------------
r54613 | yui-knk | 2016-04-16 14:14:13 +0900 (Sat, 16 Apr 2016) | 2 lines

* ext/date/date_core.c : remove not used f_utc6 macro.
  After r54169 f_utc6 macro is not used.
------------------------------------------------------------------------
r54612 | nobu | 2016-04-16 10:00:13 +0900 (Sat, 16 Apr 2016) | 4 lines

struct.c: unique members

* struct.c (struct_make_members_list, rb_struct_s_def): member
  names should be unique. [ruby-core:74971] [Bug #12291]
------------------------------------------------------------------------
r54611 | nobu | 2016-04-16 09:59:42 +0900 (Sat, 16 Apr 2016) | 5 lines

struct.c: struct_make_members_list

* struct.c (struct_make_members_list): extract making member name
  list from char* va_list, with creating symbols without
  intermediate IDs.
------------------------------------------------------------------------
r54610 | nagachika | 2016-04-16 01:34:22 +0900 (Sat, 16 Apr 2016) | 1 line

* tool/redmine-backporter.rb: sort revisions.
------------------------------------------------------------------------
r54609 | akr | 2016-04-16 01:26:38 +0900 (Sat, 16 Apr 2016) | 4 lines

* array.c (rb_ary_sum): Don't yield same element twice.
  Found by nagachika.


------------------------------------------------------------------------
r54606 | akr | 2016-04-16 01:04:18 +0900 (Sat, 16 Apr 2016) | 2 lines

* array.c (rb_ary_sum): Fix SEGV by [1/2r, 1].sum.

------------------------------------------------------------------------
r54605 | svn | 2016-04-16 00:26:49 +0900 (Sat, 16 Apr 2016) | 1 line

* 2016-04-16
------------------------------------------------------------------------
r54604 | akr | 2016-04-16 00:26:48 +0900 (Sat, 16 Apr 2016) | 2 lines

mention Array#sum with third-party gems.

------------------------------------------------------------------------
r54603 | mrkn | 2016-04-15 23:54:39 +0900 (Fri, 15 Apr 2016) | 8 lines

rename rb_rational_add -> rb_rational_plus

* rational.c (rb_rational_plus): rename from rb_rational_add
  to be aligned with rb_fix_plus.

* array.c (rb_ary_sum): ditto.

* internal.h: ditto.
------------------------------------------------------------------------
r54602 | mrkn | 2016-04-15 23:46:35 +0900 (Fri, 15 Apr 2016) | 8 lines

array.c (rb_ary_sum): use rb_rational_add directly

* rational.c (rb_rational_add): rename from nurat_add.

* array.c (rb_ary_sum): use rb_rational_add directly.

* test/ruby/test_array.rb (test_sum): add assertions for an array of
  Rational values.
------------------------------------------------------------------------
r54601 | mrkn | 2016-04-15 22:33:05 +0900 (Fri, 15 Apr 2016) | 7 lines

array.c: sum for Rational and Float mixed arrays

* array.c (rb_ary_sum): apply the precision compensated algorithm
  for an array in which Rational and Float values are mixed.

* test/ruby/test_array.rb (test_sum): add assertions for the above
  change.
------------------------------------------------------------------------
r54600 | nobu | 2016-04-15 22:30:03 +0900 (Fri, 15 Apr 2016) | 5 lines

thread.c: defer setting name in initialize

* thread.c (rb_thread_setname): defer setting native thread name
  set in initialize until the native thread is created.
  [ruby-core:74963] [Bug #12290]
------------------------------------------------------------------------
r54599 | nobu | 2016-04-15 21:13:35 +0900 (Fri, 15 Apr 2016) | 4 lines

win32/console: io_handle

* ext/-test-/win32/console/attribute.c (io_handle): extract
  conversion from IO instance to HANDLE.
------------------------------------------------------------------------
r54598 | nobu | 2016-04-15 21:12:25 +0900 (Fri, 15 Apr 2016) | 6 lines

thread.c: must be initialized to set name

* thread.c (get_initialized_threadptr): extract ensuring that the
  thread is initialized.
* thread.c (rb_thread_setname): thread must be initialized to set
  the name.  [ruby-core:74963] [Bug #12290]
------------------------------------------------------------------------
r54596 | hsbt | 2016-04-15 20:27:38 +0900 (Fri, 15 Apr 2016) | 1 line

* lib/irb/ext/save-history.rb: Fix NoMethodError when method is not defined.
------------------------------------------------------------------------
r54594 | naruse | 2016-04-15 15:39:49 +0900 (Fri, 15 Apr 2016) | 1 line

* common.mk (benchmark): order options for built-ruby and compare-ruby.
------------------------------------------------------------------------
r54593 | nobu | 2016-04-15 15:15:54 +0900 (Fri, 15 Apr 2016) | 1 line

io/console: bump up
------------------------------------------------------------------------
r54591 | mrkn | 2016-04-15 14:16:04 +0900 (Fri, 15 Apr 2016) | 2 lines

* test/ruby/test_array.rb (test_sum): add assertions for Rational and
  Complex numbers.
------------------------------------------------------------------------
r54590 | nobu | 2016-04-15 10:17:51 +0900 (Fri, 15 Apr 2016) | 1 line

NEWS: mention [Feature #12245]
------------------------------------------------------------------------
r54589 | nobu | 2016-04-15 10:07:14 +0900 (Fri, 15 Apr 2016) | 7 lines

io/console: unknown key code for names with nul

* ext/io/console/console.c (console_key_pressed_p): raise the same
  exception, "unknown virtual key code", for names with nul chars.
  though console_win32_vk() considers the length and can deal with
  nul chars, rb_sprintf() raised at PRIsVALUE previously, so quote
  it if it is unprintable.
------------------------------------------------------------------------
r54588 | nobu | 2016-04-15 10:06:49 +0900 (Fri, 15 Apr 2016) | 4 lines

io/console: move conditions

* test/io/console/test_io_console.rb: move conditions for method
  definitions before the bodies.
------------------------------------------------------------------------
r54587 | nobu | 2016-04-15 09:02:59 +0900 (Fri, 15 Apr 2016) | 4 lines

io/console: rb_sym2str

* ext/io/console/console.c (rb_sym2str): fallback definition for
  older ruby.  [ruby-core:74953] [Bug #12284]
------------------------------------------------------------------------
r54586 | nobu | 2016-04-15 09:02:43 +0900 (Fri, 15 Apr 2016) | 4 lines

io/console: use rb_funcallv

* ext/io/console/console.c: use rb_funcallv instead of
  rb_funcall2, and define rb_funcallv if unavailable.
------------------------------------------------------------------------
r54585 | nobu | 2016-04-15 09:02:42 +0900 (Fri, 15 Apr 2016) | 4 lines

io/console: fallback RARRAY_CONST_PTR

* ext/io/console/console.c (RARRAY_CONST_PTR): fallback definition
  for older ruby.
------------------------------------------------------------------------
r54584 | nobu | 2016-04-15 09:02:41 +0900 (Fri, 15 Apr 2016) | 4 lines

io/console: reject symbols with nul char

* ext/io/console/console.c (console_key_pressed_p): symbol names
  can contain nul chars, reject them.
------------------------------------------------------------------------
r54583 | nobu | 2016-04-15 06:41:08 +0900 (Fri, 15 Apr 2016) | 3 lines

fix commit miss

* ChangeLog: remove duplicate entry.
------------------------------------------------------------------------
r54582 | svn | 2016-04-15 01:19:34 +0900 (Fri, 15 Apr 2016) | 1 line

* 2016-04-15
------------------------------------------------------------------------
r54581 | akr | 2016-04-15 01:19:33 +0900 (Fri, 15 Apr 2016) | 2 lines

add assertions.

------------------------------------------------------------------------
r54580 | kazu | 2016-04-14 22:40:30 +0900 (Thu, 14 Apr 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54579 | akr | 2016-04-14 21:57:07 +0900 (Thu, 14 Apr 2016) | 2 lines

add an assertion.

------------------------------------------------------------------------
r54578 | akr | 2016-04-14 21:56:38 +0900 (Thu, 14 Apr 2016) | 2 lines

[DOC]

------------------------------------------------------------------------
r54577 | akr | 2016-04-14 21:48:44 +0900 (Thu, 14 Apr 2016) | 3 lines

* array.c (rb_ary_sum): Support the optional argument, init, and block.


------------------------------------------------------------------------
r54576 | naruse | 2016-04-14 19:06:41 +0900 (Thu, 14 Apr 2016) | 2 lines

* lib/irb/ext/save-history.rb: suppress warning: method redefined;
  discarding old save_history=.
------------------------------------------------------------------------
r54575 | nobu | 2016-04-14 14:58:16 +0900 (Thu, 14 Apr 2016) | 5 lines

tkutil.c: ary can be nil

* ext/tk/tkutil/tkutil.c (tk_hash_kv): the third argument can be
  nil not only an Array.  reported by @windwiny at
  https://github.com/ruby/ruby/commit/cdaa94e#commitcomment-17096618
------------------------------------------------------------------------
r54574 | nobu | 2016-04-14 14:28:58 +0900 (Thu, 14 Apr 2016) | 5 lines

cont.c: wrong _MSC_VER check

* cont.c (fiber_initialize_machine_stack_context): fix wrong
  _MSC_VER check, should be decimal but not hexadecimal.
  [ruby-core:74936] [Bug #12279]
------------------------------------------------------------------------
r54573 | nobu | 2016-04-14 13:41:47 +0900 (Thu, 14 Apr 2016) | 4 lines

process.c: prefer rb_check_arity

* process.c: use rb_check_arity instead of rb_scan_args for simple
  optional arguments.
------------------------------------------------------------------------
r54572 | nobu | 2016-04-14 10:30:12 +0900 (Thu, 14 Apr 2016) | 4 lines

ruby-runner.h

* template/ruby-runner.h.in: separate configured part from
  ruby-runner.c.
------------------------------------------------------------------------
r54571 | nobu | 2016-04-14 10:25:34 +0900 (Thu, 14 Apr 2016) | 4 lines

configure.in: feature macros on cygwin

* configure.in (cygwin): add feature macros for the declarations
  of eaccess.
------------------------------------------------------------------------
r54570 | nobu | 2016-04-14 10:25:33 +0900 (Thu, 14 Apr 2016) | 3 lines

configure.in: tabify

* configure.in: tabify spaces after a tab.
------------------------------------------------------------------------
r54569 | svn | 2016-04-14 09:00:33 +0900 (Thu, 14 Apr 2016) | 1 line

* 2016-04-14
------------------------------------------------------------------------
r54568 | akr | 2016-04-14 09:00:32 +0900 (Thu, 14 Apr 2016) | 2 lines

[DOC]

------------------------------------------------------------------------
r54567 | akr | 2016-04-13 23:55:18 +0900 (Wed, 13 Apr 2016) | 2 lines

Array#sum described.

------------------------------------------------------------------------
r54566 | akr | 2016-04-13 23:40:20 +0900 (Wed, 13 Apr 2016) | 2 lines

add a space in [ruby-core:74569] [Feature #12217]

------------------------------------------------------------------------
r54565 | akr | 2016-04-13 22:51:53 +0900 (Wed, 13 Apr 2016) | 9 lines

* 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.


------------------------------------------------------------------------
r54564 | nobu | 2016-04-13 15:56:36 +0900 (Wed, 13 Apr 2016) | 4 lines

numeric.c: flo_ceil

* numeric.c (flo_ceil): add an optional parameter, digits, as
  well as Float#round.  [Feature #12245]
------------------------------------------------------------------------
r54563 | nobu | 2016-04-13 15:54:38 +0900 (Wed, 13 Apr 2016) | 4 lines

numeric.c: flo_floor

* numeric.c (flo_floor): add an optional parameter, digits, as
  well as Integer#floor.  [Feature #12245]
------------------------------------------------------------------------
r54562 | nobu | 2016-04-13 15:50:24 +0900 (Wed, 13 Apr 2016) | 4 lines

numeric.c: int_ceil

* numeric.c (int_ceil): add an optional parameter, digits, as
  well as Integer#round.  [Feature #12245]
------------------------------------------------------------------------
r54561 | nobu | 2016-04-13 15:47:55 +0900 (Wed, 13 Apr 2016) | 4 lines

numeric.c: int_floor

* numeric.c (int_floor): add an optional parameter, digits, as
  well as Integer#round.
------------------------------------------------------------------------
r54560 | nobu | 2016-04-13 15:14:12 +0900 (Wed, 13 Apr 2016) | 1 line

NEWS: [Feature #9969]
------------------------------------------------------------------------
r54559 | nobu | 2016-04-13 14:47:49 +0900 (Wed, 13 Apr 2016) | 4 lines

file.c: File.empty?

* file.c (Init_File): add alias File.empty? to File.zero?.
  [Feature #9969]
------------------------------------------------------------------------
r54558 | nobu | 2016-04-13 14:36:26 +0900 (Wed, 13 Apr 2016) | 4 lines

parse.y: massign in cond

* parse.y (assign_in_cond): allow multiple assignment in
  conditional expression.  [Feature #10617]
------------------------------------------------------------------------
r54557 | nobu | 2016-04-13 14:12:01 +0900 (Wed, 13 Apr 2016) | 7 lines

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.
------------------------------------------------------------------------
r54556 | ko1 | 2016-04-13 12:03:37 +0900 (Wed, 13 Apr 2016) | 7 lines

* 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).

------------------------------------------------------------------------
r54555 | svn | 2016-04-13 11:41:25 +0900 (Wed, 13 Apr 2016) | 1 line

* 2016-04-13
------------------------------------------------------------------------
r54554 | nobu | 2016-04-13 11:41:24 +0900 (Wed, 13 Apr 2016) | 4 lines

numeric.c: float_invariant_round

* numeric.c (float_invariant_round): extracted from flo_round to
  be optimizer-friendly, e.g., tail-call optimization.
------------------------------------------------------------------------
r54553 | nobu | 2016-04-12 20:40:37 +0900 (Tue, 12 Apr 2016) | 4 lines

date_core.c: preserve timezone

* ext/date/date_core.c (time_to_time): should preserve timezone
  info.  [ruby-core:74889] [Bug #12271]
------------------------------------------------------------------------
r54549 | nobu | 2016-04-12 12:49:03 +0900 (Tue, 12 Apr 2016) | 3 lines

basictest: disable warnings

* basictest/runner.rb: disable warnings for old test script.
------------------------------------------------------------------------
r54548 | nobu | 2016-04-12 11:51:20 +0900 (Tue, 12 Apr 2016) | 4 lines

compile.c: initialize LABEL fields

* compile.c (new_label_body): initialize bit fields, since
  compile_data_alloc does not clear the memory.  [Bug #12082]
------------------------------------------------------------------------
r54547 | svn | 2016-04-12 09:30:56 +0900 (Tue, 12 Apr 2016) | 1 line

* 2016-04-12
------------------------------------------------------------------------
r54546 | nobu | 2016-04-12 09:30:55 +0900 (Tue, 12 Apr 2016) | 4 lines

test_optimization.rb: disasm

* test/ruby/test_optimization.rb (disasm): dump disassembled code
  for investigation.
------------------------------------------------------------------------
r54545 | kazu | 2016-04-11 21:39:31 +0900 (Mon, 11 Apr 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54544 | akr | 2016-04-11 20:50:00 +0900 (Mon, 11 Apr 2016) | 2 lines

Update dependencies.

------------------------------------------------------------------------
r54543 | ko1 | 2016-04-11 20:19:52 +0900 (Mon, 11 Apr 2016) | 3 lines

* vm_backtrace.c (frame2klass): filter only for imemo_ment.
  T_IMEMO/imemo_iseq can be passed here.

------------------------------------------------------------------------
r54542 | nobu | 2016-04-11 17:43:06 +0900 (Mon, 11 Apr 2016) | 5 lines

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]
------------------------------------------------------------------------
r54541 | nobu | 2016-04-11 17:27:19 +0900 (Mon, 11 Apr 2016) | 4 lines

TestException.rb: suppress warning

* test/excludes/TestException.rb: suppress "ambiguous first
  argument" warning.
------------------------------------------------------------------------
r54540 | nobu | 2016-04-11 17:27:17 +0900 (Mon, 11 Apr 2016) | 4 lines

test/unit.rb: show warning locations

* test/lib/test/unit.rb (ExcludedMethods.load): supply the path to
  show the warning locations.
------------------------------------------------------------------------
r54539 | nobu | 2016-04-11 17:06:23 +0900 (Mon, 11 Apr 2016) | 5 lines

test_whileuntil.rb: fix old behavior

* test/ruby/test_whileuntil.rb (test_while): fix old behavior.
  mere numeric literal in condition no longer matches $. global
  variable.
------------------------------------------------------------------------
r54538 | nobu | 2016-04-11 17:06:22 +0900 (Mon, 11 Apr 2016) | 4 lines

test_rubyoptions.rb: suppress warning

* test/ruby/test_rubyoptions.rb (test_indentation_check): remove
  unused variable to suppress warning.
------------------------------------------------------------------------
r54537 | nobu | 2016-04-11 17:06:21 +0900 (Mon, 11 Apr 2016) | 4 lines

test_regexp.rb: suppress warning

* test/ruby/test_regexp.rb (test_named_capture): suppress
  "assigned but unused variable" warning by prefixing '_'.
------------------------------------------------------------------------
r54536 | nobu | 2016-04-11 17:06:19 +0900 (Mon, 11 Apr 2016) | 4 lines

test_iterator.rb: suppress warnings

* test/ruby/test_iterator.rb (test_break): suppress "statement not
  reached" warnings.
------------------------------------------------------------------------
r54535 | nobu | 2016-04-11 14:13:31 +0900 (Mon, 11 Apr 2016) | 5 lines

test_coverage.rb: suppress warnings

* test/coverage/test_coverage.rb (test_coverage_snapshot),
  (test_restarting_coverage): use unique names to suppress method
  redefinition warnings.
------------------------------------------------------------------------
r54534 | nobu | 2016-04-11 13:28:16 +0900 (Mon, 11 Apr 2016) | 4 lines

fiddle/import.rb: suppress warnings

* ext/fiddle/lib/fiddle/import.rb (type_alias, handler): suppress
  "not initialized instance variable" warnings.
------------------------------------------------------------------------
r54533 | nobu | 2016-04-11 06:59:02 +0900 (Mon, 11 Apr 2016) | 9 lines

file.c: prefer rb_check_arity

* file.c (rb_file_s_expand_path, rb_file_s_absolute_path): use
  rb_check_arity instead of rb_scan_args for a simple optional
  argument.

* file.c (rb_file_s_realpath, rb_file_s_realdirpath): ditto.

* file.c (rb_file_s_basename): ditto.
------------------------------------------------------------------------
r54532 | nobu | 2016-04-11 06:59:01 +0900 (Mon, 11 Apr 2016) | 4 lines

file.c: apply2files returns Fixnum

* file.c (apply2files): return Fixnum so that callers can just
  return it.
------------------------------------------------------------------------
r54531 | svn | 2016-04-11 06:54:43 +0900 (Mon, 11 Apr 2016) | 1 line

* 2016-04-11
------------------------------------------------------------------------
r54530 | nobu | 2016-04-11 06:54:41 +0900 (Mon, 11 Apr 2016) | 4 lines

file.c: apply to argv

* file.c (apply2files): apply to a VALUE vector instead of a
  temporary array.
------------------------------------------------------------------------
r54529 | nobu | 2016-04-10 20:54:17 +0900 (Sun, 10 Apr 2016) | 4 lines

registry.rb: fix API names

* ext/win32/lib/win32/registry.rb (DeleteValue, DeleteKey): fix
  API names.  [ruby-core:74863] [Bug #12264]
------------------------------------------------------------------------
r54528 | nobu | 2016-04-10 17:47:44 +0900 (Sun, 10 Apr 2016) | 6 lines

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.
------------------------------------------------------------------------
r54527 | svn | 2016-04-10 16:30:42 +0900 (Sun, 10 Apr 2016) | 1 line

* 2016-04-10
------------------------------------------------------------------------
r54526 | nobu | 2016-04-10 16:30:42 +0900 (Sun, 10 Apr 2016) | 5 lines

win32/file.c: fix free

* win32/file.c (rb_file_expand_path_internal): should free wpath,
  but not xfree, corresponding to rb_w32_mbstr_to_wstr which
  allocates by malloc.
------------------------------------------------------------------------
r54525 | ktsj | 2016-04-09 22:39:32 +0900 (Sat, 09 Apr 2016) | 1 line

* lib/ostruct.rb: [DOC] fix position of nodoc directive.
------------------------------------------------------------------------
r54524 | nobu | 2016-04-09 13:01:35 +0900 (Sat, 09 Apr 2016) | 1 line

ext/tk/extconf.rb: add newline
------------------------------------------------------------------------
r54523 | nobu | 2016-04-09 12:58:01 +0900 (Sat, 09 Apr 2016) | 3 lines

load.c: fix r54521

* load.c (rb_f_load): do not convert the encoding twice.
------------------------------------------------------------------------
r54522 | nobu | 2016-04-09 10:25:11 +0900 (Sat, 09 Apr 2016) | 7 lines

assertions.rb: set default internal encoding

* test/lib/test/unit/assertions.rb (assert_raise_with_message):
  set default internal encoding to the excpected message, which
  affects String#inspect in messages.

* test/lib/test/unit/assertions.rb (assert_warning): ditto.
------------------------------------------------------------------------
r54521 | nobu | 2016-04-09 10:03:15 +0900 (Sat, 09 Apr 2016) | 4 lines

load.c: raise name before conversion

* load.c (rb_f_load): raise with the original path name before
  encoding conversion.
------------------------------------------------------------------------
r54520 | nobu | 2016-04-09 09:59:53 +0900 (Sat, 09 Apr 2016) | 4 lines

test_io_m17n.rb: nil default internal encoding

* test/ruby/test_io_m17n.rb (test_bom_non_utf): ensure default
  internal encoding is not set.
------------------------------------------------------------------------
r54519 | svn | 2016-04-09 02:05:13 +0900 (Sat, 09 Apr 2016) | 1 line

* 2016-04-09
------------------------------------------------------------------------
r54518 | nobu | 2016-04-09 02:05:12 +0900 (Sat, 09 Apr 2016) | 9 lines

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.
------------------------------------------------------------------------
r54517 | nobu | 2016-04-08 17:32:25 +0900 (Fri, 08 Apr 2016) | 4 lines

bignum.c: radix check functions

* bignum.c (valid_radix_p, invalid_radix): extracted functions to
  check radix.
------------------------------------------------------------------------
r54516 | nobu | 2016-04-08 12:53:28 +0900 (Fri, 08 Apr 2016) | 4 lines

tk/extconf.rb: progress

* ext/tk/extconf.rb (progress): print progress messages only if
  Logging is quiet.
------------------------------------------------------------------------
r54515 | nobu | 2016-04-08 12:14:45 +0900 (Fri, 08 Apr 2016) | 8 lines

tk/extconf.rb: outdated checks

* ext/tk/extconf.rb: remove outdated checks.

* ext/tk/tcltklib.c (ip_ruby_cmd): remove longstanding dead code.
  ptr and len in RArray were till 1.8 and have_struct_member of
  1.8 does not set HAVE_<stuct_name>_<member_name> but only
  HAVE_ST_<member_name>.
------------------------------------------------------------------------
r54514 | nobu | 2016-04-08 08:46:45 +0900 (Fri, 08 Apr 2016) | 4 lines

dln.c: move error message definition

* dln.c (dln_load): move the definition of incompatible library
  version error message to be shared.
------------------------------------------------------------------------
r54513 | svn | 2016-04-08 01:43:37 +0900 (Fri, 08 Apr 2016) | 1 line

* 2016-04-08
------------------------------------------------------------------------
r54512 | kazu | 2016-04-08 01:43:36 +0900 (Fri, 08 Apr 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54511 | nobu | 2016-04-07 21:14:29 +0900 (Thu, 07 Apr 2016) | 4 lines

win32.c: call w32_wopen directly

* win32/win32.c (rb_w32_uopen): call w32_wopen directly instead of
  variadic rb_w32_wopen.
------------------------------------------------------------------------
r54510 | nobu | 2016-04-07 19:04:05 +0900 (Thu, 07 Apr 2016) | 4 lines

regexp.rdoc: terminators in comments [ci skip]

* doc/regexp.rdoc (comments): [DOC] terminators cannot appear in
  comments.  [ruby-core:74838] [Bug #12256]
------------------------------------------------------------------------
r54509 | nobu | 2016-04-07 11:24:16 +0900 (Thu, 07 Apr 2016) | 4 lines

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.
------------------------------------------------------------------------
r54508 | nobu | 2016-04-07 10:33:04 +0900 (Thu, 07 Apr 2016) | 4 lines

fake.rb: set extout

* tool/fake.rb (prehook): set "extout" in RbConfig to configure
  extension libraries.
------------------------------------------------------------------------
r54507 | svn | 2016-04-07 09:10:42 +0900 (Thu, 07 Apr 2016) | 1 line

* 2016-04-07
------------------------------------------------------------------------
r54506 | nobu | 2016-04-07 09:10:41 +0900 (Thu, 07 Apr 2016) | 4 lines

test_ssl.rb: skip unsupported ciphers

* test/openssl/test_ssl.rb (test_get_ephemeral_key): skip
  unsupported ciphers.  [GH-1318]
------------------------------------------------------------------------
r54504 | eregon | 2016-04-06 23:29:17 +0900 (Wed, 06 Apr 2016) | 6 lines

* 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.
------------------------------------------------------------------------
r54503 | nobu | 2016-04-06 22:41:33 +0900 (Wed, 06 Apr 2016) | 4 lines

configure.in: fix lgamma_r condition

* configure.in (rb_cv_lgamma_r_m0): fix the condition for
  lgamma_r(-0.0).  [Bug #12249]
------------------------------------------------------------------------
r54502 | usa | 2016-04-06 17:40:02 +0900 (Wed, 06 Apr 2016) | 3 lines

* tool/downloader.rb (RubyGems.download): follow the change of the
  rubygems ssl_certs directory tree introduced by previous commit.

------------------------------------------------------------------------
r54501 | nobu | 2016-04-06 16:59:37 +0900 (Wed, 06 Apr 2016) | 3 lines

btest: resource limit

* bootstraptest/test_thread.rb: rescue resource limitation errors.
------------------------------------------------------------------------
r54500 | hsbt | 2016-04-06 15:01:14 +0900 (Wed, 06 Apr 2016) | 3 lines

* 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
------------------------------------------------------------------------
r54499 | nobu | 2016-04-06 14:13:29 +0900 (Wed, 06 Apr 2016) | 5 lines

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.
------------------------------------------------------------------------
r54498 | nobu | 2016-04-06 13:38:49 +0900 (Wed, 06 Apr 2016) | 4 lines

test_ssl.rb: skip unavailable pkeys

* test/openssl/test_ssl.rb (test_get_ephemeral_key): skip
  unavailable public keys.  [GH-1318]
------------------------------------------------------------------------
r54497 | nobu | 2016-04-06 10:56:16 +0900 (Wed, 06 Apr 2016) | 6 lines

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].
------------------------------------------------------------------------
r54496 | nobu | 2016-04-06 10:17:55 +0900 (Wed, 06 Apr 2016) | 6 lines

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]
------------------------------------------------------------------------
r54495 | usa | 2016-04-06 01:23:39 +0900 (Wed, 06 Apr 2016) | 3 lines

* math.c (ruby_lgamma_r): mswin's lgamma_r also seems to be wrong.
  cf. [Bug #12249]

------------------------------------------------------------------------
r54494 | nobu | 2016-04-06 00:53:32 +0900 (Wed, 06 Apr 2016) | 3 lines

math.c: fix lgamma

* math.c (ruby_lgamma_r): fix lgamma(-0.0) on mingw and OSX.
------------------------------------------------------------------------
r54493 | svn | 2016-04-06 00:52:03 +0900 (Wed, 06 Apr 2016) | 1 line

* 2016-04-06
------------------------------------------------------------------------
r54492 | nobu | 2016-04-06 00:52:02 +0900 (Wed, 06 Apr 2016) | 4 lines

math.c: fix tgamma

* math.c (ruby_tgamma): fix tgamma(-0.0) on mingw.
  [ruby-core:74817] [Bug #12249]
------------------------------------------------------------------------
r54490 | nobu | 2016-04-05 17:15:22 +0900 (Tue, 05 Apr 2016) | 4 lines

string.c: rb_str_concat_literals

* string.c (rb_str_concat_literals): concatenate literal string
  fragments.
------------------------------------------------------------------------
r54489 | naruse | 2016-04-05 14:54:03 +0900 (Tue, 05 Apr 2016) | 2 lines

* ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
  [Bug #12202] [ruby-core:74802]
------------------------------------------------------------------------
r54488 | kazu | 2016-04-05 01:12:03 +0900 (Tue, 05 Apr 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54487 | nobu | 2016-04-05 00:08:20 +0900 (Tue, 05 Apr 2016) | 4 lines

test_get_ephemeral_key: use assert_instance_of

* test/openssl/test_ssl.rb (test_get_ephemeral_key): should use
  assert_instance_of instead of comparison of classes.
------------------------------------------------------------------------
r54486 | svn | 2016-04-05 00:06:47 +0900 (Tue, 05 Apr 2016) | 1 line

* 2016-04-05
------------------------------------------------------------------------
r54485 | nobu | 2016-04-05 00:06:46 +0900 (Tue, 05 Apr 2016) | 6 lines

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.
------------------------------------------------------------------------
r54484 | nobu | 2016-04-04 23:37:07 +0900 (Mon, 04 Apr 2016) | 6 lines

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]
------------------------------------------------------------------------
r54483 | svn | 2016-04-04 17:49:18 +0900 (Mon, 04 Apr 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r54482 | ko1 | 2016-04-04 17:49:17 +0900 (Mon, 04 Apr 2016) | 15 lines

* 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.

------------------------------------------------------------------------
r54481 | ko1 | 2016-04-04 17:41:55 +0900 (Mon, 04 Apr 2016) | 14 lines

* 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.

------------------------------------------------------------------------
r54480 | svn | 2016-04-04 16:42:52 +0900 (Mon, 04 Apr 2016) | 1 line

* 2016-04-04
------------------------------------------------------------------------
r54479 | ko1 | 2016-04-04 16:42:51 +0900 (Mon, 04 Apr 2016) | 2 lines

* vm.c (Init_VM): should pass tokens.

------------------------------------------------------------------------
r54477 | nobu | 2016-04-03 09:34:31 +0900 (Sun, 03 Apr 2016) | 7 lines

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.
------------------------------------------------------------------------
r54476 | svn | 2016-04-03 07:38:45 +0900 (Sun, 03 Apr 2016) | 1 line

* 2016-04-03
------------------------------------------------------------------------
r54475 | nobu | 2016-04-03 07:38:44 +0900 (Sun, 03 Apr 2016) | 4 lines

numeric.c: move declaration [ci skip]

* numeric.c (fix_lshift, fix_rshift, flo_truncate): move forward
  declaration to the top.
------------------------------------------------------------------------
r54474 | nobu | 2016-04-02 15:33:26 +0900 (Sat, 02 Apr 2016) | 4 lines

numeric.c: prefer rb_check_arity

* numeric.c (flo_round, int_to_s, int_round): use rb_check_arity
  instead of rb_scan_args for a simple optional argument.
------------------------------------------------------------------------
r54473 | svn | 2016-04-02 15:24:20 +0900 (Sat, 02 Apr 2016) | 1 line

* 2016-04-02
------------------------------------------------------------------------
r54472 | nobu | 2016-04-02 15:24:19 +0900 (Sat, 02 Apr 2016) | 3 lines

rb_check_arity returns argc now

* include/ruby/intern.h (rb_check_arity): returns argc.
------------------------------------------------------------------------
r54470 | kazu | 2016-04-01 22:00:20 +0900 (Fri, 01 Apr 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r54469 | duerst | 2016-04-01 20:58:47 +0900 (Fri, 01 Apr 2016) | 9 lines

* 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.

------------------------------------------------------------------------
r54468 | nobu | 2016-04-01 14:55:30 +0900 (Fri, 01 Apr 2016) | 11 lines

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
------------------------------------------------------------------------
r54467 | usa | 2016-04-01 12:27:17 +0900 (Fri, 01 Apr 2016) | 3 lines

* tool/release.sh: BRE accepts \{m,\} expression.  use it for future many-digits
  version numbers.

------------------------------------------------------------------------
r54466 | normal | 2016-04-01 05:33:55 +0900 (Fri, 01 Apr 2016) | 16 lines

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]
------------------------------------------------------------------------
r54465 | eregon | 2016-04-01 01:14:52 +0900 (Fri, 01 Apr 2016) | 3 lines

* 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.
------------------------------------------------------------------------
r54461 | usa | 2016-04-01 00:13:23 +0900 (Fri, 01 Apr 2016) | 2 lines

* tool/release.sh: two-digit version number support.

------------------------------------------------------------------------
r54460 | svn | 2016-04-01 00:04:34 +0900 (Fri, 01 Apr 2016) | 1 line

* 2016-04-01
------------------------------------------------------------------------
r54459 | usa | 2016-04-01 00:04:34 +0900 (Fri, 01 Apr 2016) | 2 lines

* tool/merger.rb (version): version number may be two-digit.

------------------------------------------------------------------------
r54455 | nobu | 2016-03-31 21:46:15 +0900 (Thu, 31 Mar 2016) | 3 lines

gc.c: use PRIdSIZE

* gc.c (heap_extend_pages): fix format specifiers for size_t.
------------------------------------------------------------------------
r54454 | ko1 | 2016-03-31 19:16:48 +0900 (Thu, 31 Mar 2016) | 2 lines

* gc.c: need to set initial value of GC_HEAP_FREE_SLOTS_GOAL_RATIO.

------------------------------------------------------------------------
r54453 | ko1 | 2016-03-31 18:16:48 +0900 (Thu, 31 Mar 2016) | 25 lines

* 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.

------------------------------------------------------------------------
r54452 | ko1 | 2016-03-31 17:49:09 +0900 (Thu, 31 Mar 2016) | 2 lines

* gc.c (gc_marks_finish): fix syntax error.

------------------------------------------------------------------------
r54451 | ko1 | 2016-03-31 17:21:35 +0900 (Thu, 31 Mar 2016) | 33 lines

* 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.

------------------------------------------------------------------------
r54450 | ko1 | 2016-03-31 16:45:13 +0900 (Thu, 31 Mar 2016) | 14 lines

* 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.

------------------------------------------------------------------------
r54449 | svn | 2016-03-31 16:02:41 +0900 (Thu, 31 Mar 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r54448 | ko1 | 2016-03-31 16:02:40 +0900 (Thu, 31 Mar 2016) | 4 lines

* gc.c (gc_verify_heap_page): check the number of zombies.

* gc.c (gc_verify_heap_pages): check also tomb heap.

------------------------------------------------------------------------
r54447 | ko1 | 2016-03-31 15:51:27 +0900 (Thu, 31 Mar 2016) | 7 lines

* 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'.

------------------------------------------------------------------------
r54446 | nobu | 2016-03-31 12:02:35 +0900 (Thu, 31 Mar 2016) | 4 lines

complex.c: pure declarations

* complex.c (get_dat1, get_dat2): turn into pure variable
  declarations only, not mixed code and declarations.
------------------------------------------------------------------------
r54445 | nobu | 2016-03-31 11:33:51 +0900 (Thu, 31 Mar 2016) | 4 lines

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.
------------------------------------------------------------------------
r54444 | nobu | 2016-03-31 11:18:21 +0900 (Thu, 31 Mar 2016) | 4 lines

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]
------------------------------------------------------------------------
r54441 | svn | 2016-03-31 03:41:47 +0900 (Thu, 31 Mar 2016) | 1 line

* 2016-03-31
------------------------------------------------------------------------
r54440 | naruse | 2016-03-31 03:41:46 +0900 (Thu, 31 Mar 2016) | 2 lines

* ext/nkf/nkf-utf8/nkf.c: Merge upstream 69f7e74dde.
  fix indent.
------------------------------------------------------------------------
r54439 | nobu | 2016-03-30 22:14:31 +0900 (Wed, 30 Mar 2016) | 4 lines

parse.y: get rid of ISASCII on ID

* parse.y (ripper_id2sym): do not call ISASCII() on ID, rb_isascii
  is restricted to int now.
------------------------------------------------------------------------
r54438 | nobu | 2016-03-30 22:02:16 +0900 (Wed, 30 Mar 2016) | 5 lines

st.c: fix collision statistics [ci skip]

* st.c (stat_col): get rid of NaN.

* st.c (collision_check): define before used.
------------------------------------------------------------------------
r54435 | nobu | 2016-03-30 17:21:18 +0900 (Wed, 30 Mar 2016) | 4 lines

hash.c: init table with size

* hash.c (rb_hash_s_create): allocate internal table with the
  given size.
------------------------------------------------------------------------
r54434 | nobu | 2016-03-30 16:33:21 +0900 (Wed, 30 Mar 2016) | 7 lines

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]
------------------------------------------------------------------------
r54433 | nobu | 2016-03-30 10:27:03 +0900 (Wed, 30 Mar 2016) | 4 lines

rational.c: pure declarations

* rational.c (get_dat1, get_dat2): turn into pure variable
  declarations only, not mixed code and declarations.
------------------------------------------------------------------------
r54432 | hsbt | 2016-03-30 09:46:05 +0900 (Wed, 30 Mar 2016) | 4 lines

* 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
------------------------------------------------------------------------
r54423 | naruse | 2016-03-30 01:57:33 +0900 (Wed, 30 Mar 2016) | 2 lines

* ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
  patched by Anton Sivakov [Bug #12201] [Bug #12202]
------------------------------------------------------------------------
r54422 | svn | 2016-03-30 01:55:55 +0900 (Wed, 30 Mar 2016) | 1 line

* 2016-03-30
------------------------------------------------------------------------
r54421 | naruse | 2016-03-30 01:55:55 +0900 (Wed, 30 Mar 2016) | 2 lines

* tool/redmine-backporter.rb: add given revision to current changests
  on associating the revision to the related ticket.
------------------------------------------------------------------------
r54420 | naruse | 2016-03-30 01:55:54 +0900 (Wed, 30 Mar 2016) | 1 line

* tool/merger.rb: update revision.h before merge.
------------------------------------------------------------------------
r54400 | kazu | 2016-03-29 21:34:37 +0900 (Tue, 29 Mar 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54392 | naruse | 2016-03-29 19:34:54 +0900 (Tue, 29 Mar 2016) | 1 line

* addr2line.c: define toupper for its use. fix r54391.
------------------------------------------------------------------------
r54391 | naruse | 2016-03-29 19:24:05 +0900 (Tue, 29 Mar 2016) | 7 lines

* 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.
------------------------------------------------------------------------
r54390 | naruse | 2016-03-29 18:59:27 +0900 (Tue, 29 Mar 2016) | 7 lines

* 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.
------------------------------------------------------------------------
r54389 | naruse | 2016-03-29 18:59:26 +0900 (Tue, 29 Mar 2016) | 2 lines

* tool/merger.rb: support to backport header as backport identifier.
  Now you can specify by 'merge revision(s) 49254: [Backport #10738]'.
------------------------------------------------------------------------
r54383 | duerst | 2016-03-29 16:53:43 +0900 (Tue, 29 Mar 2016) | 6 lines

* 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.

------------------------------------------------------------------------
r54349 | duerst | 2016-03-29 13:30:58 +0900 (Tue, 29 Mar 2016) | 2 lines

* enc/unicode.c: Cleaned up some comments.

------------------------------------------------------------------------
r54347 | duerst | 2016-03-29 13:24:55 +0900 (Tue, 29 Mar 2016) | 4 lines

* enc/unicode/case-folding.rb, casefold.h: Removing data for idempotent
  titlecasing.
* enc/unicode.c: Adjust code to data removal.

------------------------------------------------------------------------
r54346 | hsbt | 2016-03-29 12:45:32 +0900 (Tue, 29 Mar 2016) | 3 lines

* 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.
------------------------------------------------------------------------
r54345 | nobu | 2016-03-29 06:40:55 +0900 (Tue, 29 Mar 2016) | 6 lines

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.
------------------------------------------------------------------------
r54344 | svn | 2016-03-29 06:39:25 +0900 (Tue, 29 Mar 2016) | 1 line

* 2016-03-29
------------------------------------------------------------------------
r54343 | nobu | 2016-03-29 06:39:24 +0900 (Tue, 29 Mar 2016) | 9 lines

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.
------------------------------------------------------------------------
r54314 | kazu | 2016-03-28 21:25:41 +0900 (Mon, 28 Mar 2016) | 1 line

* numeric.c (int_pos_p): fix typos.
------------------------------------------------------------------------
r54313 | duerst | 2016-03-28 14:54:47 +0900 (Mon, 28 Mar 2016) | 3 lines

* enc/unicode.c: Refactoring in preparation for data reduction for
  titlecase.

------------------------------------------------------------------------
r54312 | duerst | 2016-03-28 14:36:35 +0900 (Mon, 28 Mar 2016) | 2 lines

* enc/unicode.c: Minor refactoring for I WITH DOT ABOVE.

------------------------------------------------------------------------
r54311 | duerst | 2016-03-28 14:26:23 +0900 (Mon, 28 Mar 2016) | 2 lines

* enc/unicode.c: Removed code now covered by data from table.

------------------------------------------------------------------------
r54310 | duerst | 2016-03-28 11:49:20 +0900 (Mon, 28 Mar 2016) | 2 lines

* enc/unicode.c: Adding comments. [ci skip]

------------------------------------------------------------------------
r54309 | hsbt | 2016-03-28 11:30:28 +0900 (Mon, 28 Mar 2016) | 4 lines

* 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.
------------------------------------------------------------------------
r54308 | hsbt | 2016-03-28 11:26:39 +0900 (Mon, 28 Mar 2016) | 3 lines

* 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
------------------------------------------------------------------------
r54307 | hsbt | 2016-03-28 11:02:37 +0900 (Mon, 28 Mar 2016) | 3 lines

* 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]
------------------------------------------------------------------------
r54306 | nobu | 2016-03-28 08:19:50 +0900 (Mon, 28 Mar 2016) | 4 lines

sprintf.c: refactor Rational f

* sprintf.c (rb_str_format): refactor floating point format of
  Rational by using gereric Integer functions.
------------------------------------------------------------------------
r54305 | svn | 2016-03-28 08:18:53 +0900 (Mon, 28 Mar 2016) | 1 line

* 2016-03-28
------------------------------------------------------------------------
r54304 | nobu | 2016-03-28 08:18:52 +0900 (Mon, 28 Mar 2016) | 5 lines

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>.
------------------------------------------------------------------------
r54303 | nobu | 2016-03-27 12:55:08 +0900 (Sun, 27 Mar 2016) | 3 lines

sprintf.c: simplify

* sprintf.c (rb_str_format): remove repeated calculations.
------------------------------------------------------------------------
r54302 | nobu | 2016-03-27 12:13:39 +0900 (Sun, 27 Mar 2016) | 5 lines

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.
------------------------------------------------------------------------
r54301 | svn | 2016-03-27 10:18:11 +0900 (Sun, 27 Mar 2016) | 1 line

* 2016-03-27
------------------------------------------------------------------------
r54300 | nobu | 2016-03-27 10:18:10 +0900 (Sun, 27 Mar 2016) | 3 lines

gen_dummy_probes.rb: argument names

* tool/gen_dummy_probes.rb: preserve macro argument names.
------------------------------------------------------------------------
r54299 | nobu | 2016-03-26 11:03:49 +0900 (Sat, 26 Mar 2016) | 4 lines

test_integer.rb: refine test_round

* test/ruby/test_integer.rb (test_round): refine assertions and
  borrow from rubyspec.
------------------------------------------------------------------------
r54298 | nobu | 2016-03-26 10:55:14 +0900 (Sat, 26 Mar 2016) | 4 lines

numeric.c: rb_int2str

* numeric.c (rb_int2str): conversion function to String for
  generic Integer.
------------------------------------------------------------------------
r54297 | nobu | 2016-03-26 10:54:50 +0900 (Sat, 26 Mar 2016) | 4 lines

numeric.c: rb_int_round

* numeric.c (rb_int_round): rounding function for generic
  Integers.
------------------------------------------------------------------------
r54296 | nobu | 2016-03-26 10:54:16 +0900 (Sat, 26 Mar 2016) | 4 lines

numeric.c: basic arithmetic

* numeric.c (rb_int_{uminus,plus,minus,mul,idiv,modulo}): basic
  arithmetic functions for generic Integers.
------------------------------------------------------------------------
r54295 | nobu | 2016-03-26 10:52:00 +0900 (Sat, 26 Mar 2016) | 4 lines

numeric.c: Fixnum predicts

* numeric.c (FIXNUM_{POSITIVE,NEGATIVE,ZERO}_P): predict macros
  only for Fixnum.
------------------------------------------------------------------------
r54294 | nobu | 2016-03-26 10:34:35 +0900 (Sat, 26 Mar 2016) | 4 lines

compile.c: explicit address

* compile.c (prepare_compile_error): add & to explicit address of
  functions to suppress warnings by old VC.
------------------------------------------------------------------------
r54293 | naruse | 2016-03-26 06:44:26 +0900 (Sat, 26 Mar 2016) | 1 line

use more suitable ticket [Bug #12218]
------------------------------------------------------------------------
r54292 | naruse | 2016-03-26 06:40:49 +0900 (Sat, 26 Mar 2016) | 1 line

Add patch author of r54291
------------------------------------------------------------------------
r54291 | naruse | 2016-03-26 06:35:39 +0900 (Sat, 26 Mar 2016) | 1 line

* localeinit.c (rb_locale_charmap_index): fix prototype. [Bug #12118]
------------------------------------------------------------------------
r54289 | svn | 2016-03-26 00:12:26 +0900 (Sat, 26 Mar 2016) | 1 line

* 2016-03-26
------------------------------------------------------------------------
r54288 | usa | 2016-03-26 00:12:25 +0900 (Sat, 26 Mar 2016) | 2 lines

* ChangeLog: [ci skip] correct a mail address.  cf. [Bug #11870]

------------------------------------------------------------------------
r54259 | duerst | 2016-03-25 16:40:49 +0900 (Fri, 25 Mar 2016) | 3 lines

* test/ruby/enc/test_case_mapping.rb: Additional tests title case;
  some not yet activated.

------------------------------------------------------------------------
r54258 | nobu | 2016-03-25 13:38:13 +0900 (Fri, 25 Mar 2016) | 8 lines

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.
------------------------------------------------------------------------
r54257 | nobu | 2016-03-25 11:08:39 +0900 (Fri, 25 Mar 2016) | 4 lines

fix URI::HTTP.new example

* lib/uri/http.rb (URI::HTTP#initialize): [DOC] fix example,
  missing mandatory arguments.  [ruby-core:74540] [Bug #12215]
------------------------------------------------------------------------
r54256 | naruse | 2016-03-25 01:51:30 +0900 (Fri, 25 Mar 2016) | 2 lines

* thread_pthread.c (reserve_stack): fix reserving position where
  the stack growing bottom to top. [Bug #12118]
------------------------------------------------------------------------
r54255 | nobu | 2016-03-25 01:10:43 +0900 (Fri, 25 Mar 2016) | 7 lines

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]
------------------------------------------------------------------------
r54254 | nobu | 2016-03-25 01:04:51 +0900 (Fri, 25 Mar 2016) | 4 lines

test_find_executable.rb: each_exts

* test/mkmf/test_find_executable.rb (each_exts): extract common
  setup.
------------------------------------------------------------------------
r54253 | nobu | 2016-03-25 00:49:43 +0900 (Fri, 25 Mar 2016) | 4 lines

strftime.c: Bignum conversion

* strftime.c (format_value): convert from Bignum to String,
  instead of rb_str_format.
------------------------------------------------------------------------
r54252 | nobu | 2016-03-25 00:12:56 +0900 (Fri, 25 Mar 2016) | 4 lines

strftime.c: set buffer length

* strftime.c (FMTV): set the buffer length before appending to
  keep just put part.
------------------------------------------------------------------------
r54251 | svn | 2016-03-25 00:01:40 +0900 (Fri, 25 Mar 2016) | 1 line

* 2016-03-25
------------------------------------------------------------------------
r54250 | nobu | 2016-03-25 00:01:39 +0900 (Fri, 25 Mar 2016) | 4 lines

strftime.c: refine r54248

* strftime.c (FMT_PRECISION): eliminate side effects.
  [Bug #12213]
------------------------------------------------------------------------
r54249 | nobu | 2016-03-24 22:39:42 +0900 (Thu, 24 Mar 2016) | 1 line

ChangeLog: remove duplicate entry [ci skip]
------------------------------------------------------------------------
r54248 | nobu | 2016-03-24 22:38:20 +0900 (Thu, 24 Mar 2016) | 4 lines

strftime.c: remove recursive-assignments

* strftime.c (FMT, FMTV): remove recursive-assignments to get rid
  of undefined behavior.  [ruby-core:74532] [Bug #12213]
------------------------------------------------------------------------
r54246 | nobu | 2016-03-24 17:44:03 +0900 (Thu, 24 Mar 2016) | 5 lines

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.
------------------------------------------------------------------------
r54245 | nobu | 2016-03-24 14:20:22 +0900 (Thu, 24 Mar 2016) | 4 lines

strftime.c: case conversion

* strftime.c (STRFTIME): deal with case conversion flags for
  recursive formats.
------------------------------------------------------------------------
r54244 | nobu | 2016-03-24 13:27:35 +0900 (Thu, 24 Mar 2016) | 4 lines

date_core.c: unused variable

* ext/date/date_core.c (dt_lite_jisx0301): remove no longer used
  variable.
------------------------------------------------------------------------
r54243 | nobu | 2016-03-24 12:43:28 +0900 (Thu, 24 Mar 2016) | 4 lines

date_core.c: append strings

* ext/date/date_core.c (dt_lite_iso8601): strftimev() always
  returns a String, so append them directly.
------------------------------------------------------------------------
r54242 | nobu | 2016-03-24 12:43:06 +0900 (Thu, 24 Mar 2016) | 5 lines

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.
------------------------------------------------------------------------
r54241 | nobu | 2016-03-24 12:42:37 +0900 (Thu, 24 Mar 2016) | 4 lines

date_core.c: fix inspect

* ext/date/date_core.c (mk_inspect_raw, mk_inspect): inspect by
  "%+"PRIsVALUE, to prevent intermediate strings from GC.
------------------------------------------------------------------------
r54240 | svn | 2016-03-24 11:43:35 +0900 (Thu, 24 Mar 2016) | 1 line

* 2016-03-24
------------------------------------------------------------------------
r54239 | nobu | 2016-03-24 11:43:34 +0900 (Thu, 24 Mar 2016) | 5 lines

strftime.c: fix false failure

* strftime.c (rb_strftime_with_timespec): remove unnecessary
  check, as `s` equals to `endp` when recursed STRFTIME resized
  the capacity same as the size.
------------------------------------------------------------------------
r54238 | mrkn | 2016-03-23 21:50:24 +0900 (Wed, 23 Mar 2016) | 1 line

* enum.c (ary_inject_op): put subtract operation out of if-clause.
------------------------------------------------------------------------
r54237 | mrkn | 2016-03-23 21:41:00 +0900 (Wed, 23 Mar 2016) | 2 lines

* enum.c (ary_inject_op): Use Kahan's compensated summation algorithm
  for summing up float values.
------------------------------------------------------------------------
r54236 | nobu | 2016-03-23 20:57:01 +0900 (Wed, 23 Mar 2016) | 9 lines

strftime.c: format in String

* strftime.c (rb_strftime_with_timespec): append formatted results
  to the given string with expanding, and also deal with NUL chars.
* strftime.c (rb_strftime, rb_strftime_timespec): return formatted
  string, not the length put in the given buffer.
* time.c (rb_strftime_alloc): no longer needs to retry with
  reallocating buffers.
* time.c (time_strftime): no longer needs to split by NUL chars.
------------------------------------------------------------------------
r54235 | naruse | 2016-03-23 14:25:29 +0900 (Wed, 23 Mar 2016) | 3 lines

* lib/rdoc/ri/driver.rb (interactive): rescue NotFoundError raised in
  expand_name. (display_name rescues NotFoundError by itself,
  the original logic looks buggy...)
------------------------------------------------------------------------
r54234 | nobu | 2016-03-23 11:44:54 +0900 (Wed, 23 Mar 2016) | 5 lines

remove SIGN_EXTEND_CHAR macro

* marshal.c (r_long): cast to `signed char`, which is used
  already, instead of SIGN_EXTEND_CHAR.
* parse.y: SIGN_EXTEND_CHAR is no longer used.  [Fix GH-1302]
------------------------------------------------------------------------
r54233 | nobu | 2016-03-23 11:38:49 +0900 (Wed, 23 Mar 2016) | 8 lines

GNUmakefile.in: fix MSYS2_ARG_CONV_EXCL

* cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL_PARAM):
  * add missing parentheses and remove double quotes.
  * rename to get rid of recursive references.
  * as --excludes-dir option is for a path name, its argument
    should be converted.
  [ruby-dev:49526] [Bug #12199]
------------------------------------------------------------------------
r54232 | svn | 2016-03-23 10:39:42 +0900 (Wed, 23 Mar 2016) | 1 line

* 2016-03-23
------------------------------------------------------------------------
r54231 | hsbt | 2016-03-23 10:39:41 +0900 (Wed, 23 Mar 2016) | 2 lines

* variable.c: Added documentation about order of `Module#constants`
  [ci skip][Bug #12121][ruby-dev:49505][fix GH-1301]
------------------------------------------------------------------------
r54230 | svn | 2016-03-22 21:08:31 +0900 (Tue, 22 Mar 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r54229 | duerst | 2016-03-22 21:08:30 +0900 (Tue, 22 Mar 2016) | 6 lines

* include/ruby/oniguruma.h: Additional flag for characters that are titlecase.
* enc/unicode/case-folding.rb, casefold.h: Using above flag in data.
* enc/unicode.c: Marking capitalized character as unmodified if it is
  already titlecase.
* test/ruby/enc/test_case_mapping.rb: Tests for above functionality.

------------------------------------------------------------------------
r54228 | nobu | 2016-03-22 14:19:01 +0900 (Tue, 22 Mar 2016) | 4 lines

parse.y: lambda indentation check

* parse.y (lambda_body, parser_yylex): warn mismatched indentation
  of lambda block.
------------------------------------------------------------------------
r54227 | nobu | 2016-03-22 14:13:55 +0900 (Tue, 22 Mar 2016) | 4 lines

test_rubyoptions.rb: other indentation checks

* test/ruby/test_rubyoptions.rb (test_indentation_check): assert
  warnings against other keyword mismatches.
------------------------------------------------------------------------
r54226 | usa | 2016-03-22 11:41:24 +0900 (Tue, 22 Mar 2016) | 3 lines

* time.c (wmul): wrong condition.
  fixed many test failures on 32bit and LLP64 platforms.

------------------------------------------------------------------------
r54225 | usa | 2016-03-22 10:37:01 +0900 (Tue, 22 Mar 2016) | 7 lines

* time.c (wdiv, wmod): wdivmod0() assumes the 3rd and the 4th arguments
  are valid pointers.
  maybe checking them in wdivmod0() is better manner, but I guess that
  passing real dummy pointers may be faster than checking and branching
  in wdivmod0().
  this commit fixes SEGV on 32bit and LLP64 platforms.

------------------------------------------------------------------------
r54224 | usa | 2016-03-22 10:24:55 +0900 (Tue, 22 Mar 2016) | 2 lines

* time.c (divmodv): void function never returns any value.

------------------------------------------------------------------------
r54223 | nobu | 2016-03-22 10:11:03 +0900 (Tue, 22 Mar 2016) | 6 lines

test/unit.rb: defer failures in non-replace mode

* test/lib/test/unit.rb (Test::Unit::StatusLine#failed): print
  failed messages only if replacing mode, otherwise defer them
  until the end, to get rid of interleaving failures with progress
  messages.  refix r54195.
------------------------------------------------------------------------
r54222 | naruse | 2016-03-22 04:14:27 +0900 (Tue, 22 Mar 2016) | 1 line

fix typo
------------------------------------------------------------------------
r54221 | naruse | 2016-03-22 03:57:30 +0900 (Tue, 22 Mar 2016) | 10 lines

* time.c (MUL_OVERFLOW_FIXWV_P): defined for FIXWV.

* time.c (wmul): use MUL_OVERFLOW_FIXWV_P and only switch.

* time.c (wmul): use mul which has Fixnum optimization.

* time.c (rb_time_magnify): If WIDEVALUE_IS_WIDER, wmul() has the same
  optimized logic, else mul() has also the similar logic for Fixnum.

* time.c (rb_time_unmagnify): almost ditto.
------------------------------------------------------------------------
r54220 | naruse | 2016-03-22 03:57:25 +0900 (Tue, 22 Mar 2016) | 1 line

fix typo
------------------------------------------------------------------------
r54219 | svn | 2016-03-22 03:19:16 +0900 (Tue, 22 Mar 2016) | 1 line

* 2016-03-22
------------------------------------------------------------------------
r54218 | naruse | 2016-03-22 03:19:15 +0900 (Tue, 22 Mar 2016) | 14 lines

* time.c (divmodv): add the case both arguments are Fixnum.

* time.c (wquo): use quo which has Fixnum optimization.

* time.c (wdivmod0): added for WIDEVALUE_IS_WIDER.

* time.c (wdivmod): use wdivmod0 and divmodv.
  divmodv has Fixnum optimization.

* time.c (wdiv): use wdivmod0 and div to avoid the use of divmodv which
  calls id_quo whose return value is array.

* time.c (wmod): use wdivmod0 and mod to avoid the use of divmodv which
  calls id_quo whose return value is array.
------------------------------------------------------------------------
r54217 | nobu | 2016-03-21 22:53:25 +0900 (Mon, 21 Mar 2016) | 4 lines

suppress warning

* iseq.c (rb_iseq_compile_with_option): suppress
  maybe-uninitialized warning by gcc 4.8.
------------------------------------------------------------------------
r54216 | naruse | 2016-03-21 22:36:03 +0900 (Mon, 21 Mar 2016) | 3 lines

* internal.h (rb_fix_divmod_fix): like r54213, use FIX2NUM only if
  x == FIXNUM_MIN && y == -1. This must be a rare case and it is
  expected compiler to handle well.
------------------------------------------------------------------------
r54215 | nobu | 2016-03-21 22:31:30 +0900 (Mon, 21 Mar 2016) | 1 line

time.c (quo): fix missing return
------------------------------------------------------------------------
r54214 | naruse | 2016-03-21 22:21:12 +0900 (Mon, 21 Mar 2016) | 1 line

fix commit miss
------------------------------------------------------------------------
r54213 | naruse | 2016-03-21 22:17:45 +0900 (Mon, 21 Mar 2016) | 4 lines

* time.c (mod): Add Fixnum case.

* time.c (quo): c can be Fixnum except a == FIXNUM_MIN && b == -1.
  Such case can be optimized out because quo()'s argument is constant.
------------------------------------------------------------------------
r54212 | nobu | 2016-03-21 22:09:26 +0900 (Mon, 21 Mar 2016) | 4 lines

internal.h: fix no-DLONG case

* internal.h (rb_fix_mul_fix): multiply converted values, not
  object VALUEs.
------------------------------------------------------------------------
r54211 | nobu | 2016-03-21 20:18:31 +0900 (Mon, 21 Mar 2016) | 6 lines

suppress msys2 pathname conversion

* common.mk (TEST_EXCLUDES, EXCLUDE_TESTFRAMEWORK): use full spell
  long option.
* cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL): suppress path name
  conversions by msys2.  [ruby-dev:49525] [Bug #12199]
------------------------------------------------------------------------
r54210 | nobu | 2016-03-21 19:09:33 +0900 (Mon, 21 Mar 2016) | 5 lines

string.c: skip invalid char gap

* string.c (enc_succ_alnum_char): try to skip an invalid character
  gap between GREEK CAPITAL RHO and SIGMA.
  [ruby-core:74478] [Bug #12204]
------------------------------------------------------------------------
r54209 | nobu | 2016-03-21 18:55:50 +0900 (Mon, 21 Mar 2016) | 4 lines

node.c: mark u3 of NODE_MATCH2

* node.c (rb_gc_mark_node): NODE_MATCH2 can have nd_args, u3,
  since r54100.
------------------------------------------------------------------------
r54208 | nobu | 2016-03-21 18:55:29 +0900 (Mon, 21 Mar 2016) | 4 lines

test/unit.rb: show crashed file

* test/lib/test/unit.rb (after_worker_down): show failed file name
  if worker crashed.
------------------------------------------------------------------------
r54207 | svn | 2016-03-21 03:28:22 +0900 (Mon, 21 Mar 2016) | 1 line

* 2016-03-21
------------------------------------------------------------------------
r54206 | naruse | 2016-03-21 03:28:21 +0900 (Mon, 21 Mar 2016) | 1 line

fix r54203's typo (no DLONG case)
------------------------------------------------------------------------
r54205 | usa | 2016-03-20 21:18:28 +0900 (Sun, 20 Mar 2016) | 3 lines

* internal.h (rb_int128t2big): declare only when HAVE_INT128_T.
  fixed a compile error with VC++ introduced at r54203.

------------------------------------------------------------------------
r54204 | nobu | 2016-03-20 20:26:17 +0900 (Sun, 20 Mar 2016) | 1 line

time.c (mul): fix missing return.
------------------------------------------------------------------------
r54203 | naruse | 2016-03-20 20:10:43 +0900 (Sun, 20 Mar 2016) | 12 lines

* internal.h (DLONG): defined if long is 32bit (and LONG_LONG is 64bit;
  but LONG_LONG is always defined as 64bit), or there's int128_t.

* internal.h (DL2NUM): defined if DLONG is defined.

* internal.h (rb_fix_mul_fix): defined for `Fixnum * Fixnum`.

* insns.def (opt_mul): use rb_fix_mul_fix().

* numeric.c (fix_mul): ditto.

* time.c (mul): ditto.
------------------------------------------------------------------------
r54202 | nobu | 2016-03-20 19:09:14 +0900 (Sun, 20 Mar 2016) | 4 lines

bignum.c: micro optimization

* bignum.c (rb_big_cmp): micro optimization of Fixnum comparison.
  as SIGNED_VALUE and Fixnum have same sign-bits and same order.
------------------------------------------------------------------------
r54201 | nobu | 2016-03-20 18:53:50 +0900 (Sun, 20 Mar 2016) | 5 lines

numeric.c: optimize Fixnum<->Bignum comparisons

* numeric.c (fix_gt, fix_ge, fix_lt, fix_le): optimize comparisons
  Fixnum against Bignum by rb_big_cmp in inversed order without
  new Bignum instance.
------------------------------------------------------------------------
r54200 | naruse | 2016-03-20 18:47:20 +0900 (Sun, 20 Mar 2016) | 5 lines

* time.c (add): remove FIXABLE() which is in LONG2NUM().

* time.c (sub): ditto.

* time.c (mul): ditto.
------------------------------------------------------------------------
r54199 | naruse | 2016-03-20 04:48:26 +0900 (Sun, 20 Mar 2016) | 4 lines

* bignum.c (rb_big_cmp): reduce the code.

* bignum.c (rb_big_eq): If normalized bignum is still bignum,
  it must be larger than fixnum.
------------------------------------------------------------------------
r54198 | mrkn | 2016-03-20 01:51:27 +0900 (Sun, 20 Mar 2016) | 1 line

ChangeLog: fix typo [ci skip]
------------------------------------------------------------------------
r54197 | svn | 2016-03-20 01:08:53 +0900 (Sun, 20 Mar 2016) | 1 line

* 2016-03-20
------------------------------------------------------------------------
r54196 | mrkn | 2016-03-20 01:08:52 +0900 (Sun, 20 Mar 2016) | 4 lines

* include/ruby/intern.h (rb_big_odd_p, rb_big_even_p): move to
  internal.h so that they are exported only for ruby itself.

* internal.h (rb_big_odd_p, rb_big_even_p): ditto.
------------------------------------------------------------------------
r54195 | nobu | 2016-03-19 21:56:25 +0900 (Sat, 19 Mar 2016) | 5 lines

test/unit.rb: defer failures in verbose mode

* test/lib/test/unit.rb (Test::Unit::StatusLine#failed): defer
  failed messages until the end in verbose mode, to get rid of
  interleaving failures with progress messages.
------------------------------------------------------------------------
r54194 | nobu | 2016-03-19 21:53:36 +0900 (Sat, 19 Mar 2016) | 4 lines

fix r54193

* numeric.c (fix_cmp): invert the result as the comarison is
  inverted.
------------------------------------------------------------------------
r54193 | naruse | 2016-03-19 19:06:57 +0900 (Sat, 19 Mar 2016) | 2 lines

* numeric.c (fix_cmp): use rb_big_cmp if x is Fixnum and y is Bignum.
  rb_big_cmp handles such case smartly with big_norm.
------------------------------------------------------------------------
r54192 | mrkn | 2016-03-19 18:43:35 +0900 (Sat, 19 Mar 2016) | 5 lines

* numeric.c (int_to_f): raise NotImplementedError when a receiver
  class is unknown.

* test/-ext-/integer/test_my_integer.rb (test_my_integer_to_f): modify
  a test for the above change.
------------------------------------------------------------------------
r54191 | mrkn | 2016-03-19 18:29:29 +0900 (Sat, 19 Mar 2016) | 1 line

ChangeLog: fix filename [ci skip]
------------------------------------------------------------------------
r54190 | mrkn | 2016-03-19 18:28:12 +0900 (Sat, 19 Mar 2016) | 10 lines

* bignum.c (Bignum#<=>): remove it because they are unified with
  Integer#<=>.

* numeric.c (Integer#<=>, Fixnum#<=>): move <=> method from Fixnum to
  Integer.

* numeric.c (int_cmp): add this method for Integer#<=>.

* test/-ext-/integer/test_my_integer.rb (test_my_integer_cmp): add a
  test to examine Integer#<=> for unknown subclasses.
------------------------------------------------------------------------
r54189 | nobu | 2016-03-19 14:46:20 +0900 (Sat, 19 Mar 2016) | 9 lines

SyntaxError message at iseq compile

* iseq.c (rb_iseq_compile_with_option): make the parser in mild
  error.
* load.c (rb_load_internal0): ditto.
* parse.y (yycompile0): return the error message within the error
  to be raised.  [Feature #11951]
* parse.y (parser_compile_error): accumulate error messages in the
  error_buffer.
------------------------------------------------------------------------
r54188 | nobu | 2016-03-19 11:49:21 +0900 (Sat, 19 Mar 2016) | 4 lines

test_iseq.rb: shorten

* test/ruby/test_iseq.rb (TestISeq): use the utility method to get
  rid of warnings and the alias to shorten.
------------------------------------------------------------------------
r54187 | naruse | 2016-03-19 04:06:33 +0900 (Sat, 19 Mar 2016) | 3 lines

* time.c (LOCALTIME): organize #ifdefs.

* time.c (GMTIME): define only ifndef HAVE_STRUCT_TM_TM_GMTOFF.
------------------------------------------------------------------------
r54186 | naruse | 2016-03-19 04:06:32 +0900 (Sat, 19 Mar 2016) | 4 lines

* configure.in (rb_cv_member_struct_tm_tm_gmtoff): For Linux (glibc)
  define _BSD_SOURCE for time.h to define struct tm.tm_gmtoff.

* time.c: define _BSD_SOURCE at the top.
------------------------------------------------------------------------
r54185 | nobu | 2016-03-19 03:09:52 +0900 (Sat, 19 Mar 2016) | 3 lines

parse.y: mark debug_buffer

* parse.y (parser_mark): mark debug_buffer.
------------------------------------------------------------------------
r54184 | odaira | 2016-03-19 03:05:47 +0900 (Sat, 19 Mar 2016) | 3 lines

* test/-ext-/time/test_new.rb (test_timespec_new): change a gmtoff
  test to a better one that does not depend on whether the current
  time is in summer time or not.
------------------------------------------------------------------------
r54183 | nobu | 2016-03-19 00:38:10 +0900 (Sat, 19 Mar 2016) | 1 line

ChangeLog: fix typo [ci skip]
------------------------------------------------------------------------
r54182 | svn | 2016-03-19 00:02:46 +0900 (Sat, 19 Mar 2016) | 1 line

* 2016-03-19
------------------------------------------------------------------------
r54181 | mrkn | 2016-03-19 00:02:45 +0900 (Sat, 19 Mar 2016) | 4 lines

* bignum.c (rb_big_to_f, Bignum#to_f): removed them because they are
  unified with int_to_f and Integer#to_f.

* numeric.c (int_to_f): treat Bignum values directly.
------------------------------------------------------------------------
r54180 | svn | 2016-03-18 23:52:48 +0900 (Fri, 18 Mar 2016) | 1 line

* properties.
------------------------------------------------------------------------
r54179 | mrkn | 2016-03-18 23:52:46 +0900 (Fri, 18 Mar 2016) | 15 lines

* numeric.c (int_to_f, fix_to_f): rename fix_to_f to int_to_f, and add
  treatment for subclasses which don't have definitions of to_f method.

* numeric.c (Integer#to_f, Fixnum#to_f): move to_f method from Fixnum
  to Integer.

* ext/-test-/integer/my_integer.rb: define helper class for testing
  to_f method for a subclass of Integer.

* ext/-test-/integer/extconf.rb: ditto.

* ext/-test-/integer/init.c: ditto.

* test/-ext-/integer/test_my_integer.rb: examine to_f method for a
  subclass of Integer.
------------------------------------------------------------------------
r54178 | mrkn | 2016-03-18 22:33:42 +0900 (Fri, 18 Mar 2016) | 3 lines

* include/ruby/intern.h (rb_big_hash): Move to internal.h.

* internal.h: ditto.
------------------------------------------------------------------------
r54177 | mrkn | 2016-03-18 22:11:09 +0900 (Fri, 18 Mar 2016) | 4 lines

* bignum.c (Bignum#eql?): remove its definition because it is unified
  with Numeric#eql?.

* numeric.c (num_eql): treat Bignum values directly.
------------------------------------------------------------------------
r54176 | mrkn | 2016-03-18 21:57:40 +0900 (Fri, 18 Mar 2016) | 4 lines

* bignum.c (rb_big_to_s, Bignum#to_s): remove its definition because
  it is unified with Integer#to_s.

* numeric.c (int_to_s): treat Bignum values directly.
------------------------------------------------------------------------
r54175 | mrkn | 2016-03-18 21:33:28 +0900 (Fri, 18 Mar 2016) | 3 lines

* numeric.c (int_to_s): Move from flo_to_s.

* numeric.c (Integer#to_s): Move from Fixnum#to_s.
------------------------------------------------------------------------
r54174 | nobu | 2016-03-18 17:00:57 +0900 (Fri, 18 Mar 2016) | 4 lines

test_file_exhaustive.rb: strict check test_dirname

* test/ruby/test_file_exhaustive.rb (test_dirname): assert same as
  the parent directory, not ascendant directories.
------------------------------------------------------------------------
r54173 | nobu | 2016-03-18 16:37:07 +0900 (Fri, 18 Mar 2016) | 3 lines

gc.c: fix r54115

* gc.c (gc_page_sweep): use the argument objspace.
------------------------------------------------------------------------
r54172 | nobu | 2016-03-18 16:22:26 +0900 (Fri, 18 Mar 2016) | 5 lines

parse.y: Fix for nth_ref_max

* parse.y (parse_numvar): NTH_REF must be less than a half of
  INT_MAX, as it is left-shifted to be ORed with back-ref flag.
  [ruby-core:74444] [Bug#12192] [Fix GH-1296]
------------------------------------------------------------------------
r54171 | nobu | 2016-03-18 15:59:10 +0900 (Fri, 18 Mar 2016) | 4 lines

file.c: simplify rb_file_s_split

* file.c (rb_file_s_split): use rb_file_dirname instead of
  rb_file_s_dirname with unused Qnil.
------------------------------------------------------------------------
r54170 | nobu | 2016-03-18 12:25:32 +0900 (Fri, 18 Mar 2016) | 3 lines

gc.c: fix commit miss r54145

* gc.c (tick): fix missing close parenthesis.  [Fix GH-1291]
------------------------------------------------------------------------
r54169 | sonots | 2016-03-18 10:26:12 +0900 (Fri, 18 Mar 2016) | 2 lines

* ext/date/date_core.c (datetime_to_time): preserve timezone info
  [Bug #12189] [Fix GH-1295]
------------------------------------------------------------------------
r54168 | mrkn | 2016-03-18 10:22:38 +0900 (Fri, 18 Mar 2016) | 9 lines

* bignum.c (rb_big_hash): make it public function to be available in
  other source files, and remove documentation comment for Bignum#hash.

* bignum.c (Bignum#hash): remove its definition because it is unified
  with Object#hash.

* include/ruby/intern.h (rb_big_hash): add a prototype declaration.

* hash.c (any_hash): treat Bignum values directly.
------------------------------------------------------------------------
r54167 | sonots | 2016-03-18 02:46:22 +0900 (Fri, 18 Mar 2016) | 3 lines

* lib/time.rb (parse, strptime): Fix Time.parse/strptime does not
  have compatibility with DateTime.parse/strptime in terms of parsing
  timezone [Bug #12190] [Fix GH-1297]
------------------------------------------------------------------------
r54166 | mrkn | 2016-03-18 02:17:08 +0900 (Fri, 18 Mar 2016) | 2 lines

* numeric.c (fix_zero_p, fix_even_p, fix_odd_p): remove needless
  functions.
------------------------------------------------------------------------
r54165 | mrkn | 2016-03-18 02:15:33 +0900 (Fri, 18 Mar 2016) | 3 lines

* numeric.c (int_even_p): treat Fixnum and Bignum values directly.

I forgot include this commit in the previous one.
------------------------------------------------------------------------
r54164 | mrkn | 2016-03-18 02:11:42 +0900 (Fri, 18 Mar 2016) | 12 lines

* bignum.c (Bignum#even?, Bignum#odd?): remove definitions
  because they are unified with Integer#even? and Integer#odd?.

* numeric.c (Fixnum#zero?, Fixnum#even?, Fixnum#odd?): remove
  definitions because they are unified with Numeric#zero?,
  Integer#even?, and Integer#odd?.

* numeric.c (num_zero_p, int_even_p, int_odd_p): treat Fixnum and
  Bignum values directly.

* test/ruby/test_integer.rb (test_odd_p_even_p): remove meaningless
  test case.
------------------------------------------------------------------------
r54163 | mrkn | 2016-03-18 02:07:29 +0900 (Fri, 18 Mar 2016) | 5 lines

* bignum.c (rb_big_even_p, rb_big_odd_p): make them public functions
  to be available in other source files.

* include/ruby/intern.h (rb_big_even_p, rb_big_odd_p): add prototype
  declarations.
------------------------------------------------------------------------
r54162 | akr | 2016-03-18 00:27:05 +0900 (Fri, 18 Mar 2016) | 4 lines

* enum.c (ary_inject_op): Implement the specialized code for sum of
  float numbers.


------------------------------------------------------------------------
r54161 | svn | 2016-03-18 00:18:59 +0900 (Fri, 18 Mar 2016) | 1 line

* 2016-03-18
------------------------------------------------------------------------
r54160 | svn | 2016-03-18 00:18:59 +0900 (Fri, 18 Mar 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r54159 | mame | 2016-03-18 00:18:59 +0900 (Fri, 18 Mar 2016) | 2 lines

* numeric.c (num_step): use rb_equal for zero check. rb_num_coerce_cmp
  created an object which caused extra overhead.
------------------------------------------------------------------------
r54158 | nobu | 2016-03-17 22:21:36 +0900 (Thu, 17 Mar 2016) | 4 lines

ruby.h: remove RB_GC_GUARD_PTR

* include/ruby/ruby.h (RB_GC_GUARD_PTR): remove intermediate
  macro, and expand for each RB_GC_GUARD.  [Fix GH-1293]
------------------------------------------------------------------------
r54157 | nobu | 2016-03-17 22:19:02 +0900 (Thu, 17 Mar 2016) | 4 lines

compile.c: strict condition

* compile.c (iseq_specialized_instruction): specialize only
  concatenated newarray and send, no labels and no adjusts.
------------------------------------------------------------------------
r54156 | nobu | 2016-03-17 22:08:35 +0900 (Thu, 17 Mar 2016) | 4 lines

compile.c: move newarray specialization

* compile.c (iseq_specialized_instruction): move specialization
  for opt_newarray_max/min from translation phase.
------------------------------------------------------------------------
r54155 | mame | 2016-03-17 21:52:47 +0900 (Thu, 17 Mar 2016) | 1 line

* array.c, enum.c: make rdoc format consistent.
------------------------------------------------------------------------
r54154 | mame | 2016-03-17 21:49:19 +0900 (Thu, 17 Mar 2016) | 1 line

* NEWS: add Array#max, #min, and the optimization.  [Feature #12172]
------------------------------------------------------------------------
r54153 | mame | 2016-03-17 21:47:31 +0900 (Thu, 17 Mar 2016) | 5 lines

* compile.c (NODE_CALL): add optimization shortcut for Array#max/min.
  Now `[x, y].max` is optimized so that a temporal array object is not
  created in some condition.

* insns.def (opt_newarray_max, opt_newarray_min): added.
------------------------------------------------------------------------
r54152 | mame | 2016-03-17 21:37:20 +0900 (Thu, 17 Mar 2016) | 6 lines

* array.c (rb_ary_max, rb_ary_min): implement Array#max and min with
  arguments.  replace super call with rb_nmin_run.

* enum.c (nmin_run): exported (as rb_nmin_run).

* internal.h: added a prototype for rb_nmin_run.
------------------------------------------------------------------------
r54151 | mame | 2016-03-17 21:25:40 +0900 (Thu, 17 Mar 2016) | 2 lines

* array.c (rb_ary_max, rb_ary_min): implement a block by itself instead
  of delegating Enumerable#max/min.
------------------------------------------------------------------------
r54150 | mame | 2016-03-17 21:14:21 +0900 (Thu, 17 Mar 2016) | 11 lines

* array.c (rb_ary_max, rb_ary_min): Array#max and Array#min added.
  [Feature #12172]

* internal.h (OPTIMIZED_CMP): moved from enum.c so that array.c can
  use it.

* test/ruby/test_array.rb (test_max, test_min): tests for Array#max
  and Array#min.

* test/ruby/test_enum.rb (test_max, test_min): revised a bit to test
  Enumerable#max and #min explicitly.
------------------------------------------------------------------------
r54149 | mame | 2016-03-17 21:03:48 +0900 (Thu, 17 Mar 2016) | 6 lines

* internal.c: struct cmp_opt_data added for refactoring out a data
  structure for CMP_OPTIMIZABLE

* array.c (struct ary_sort_data): use struct cmp_opt_data.

* enum.c (struct min_t, max_t, min_max_t): use struct cmp_opt_data.
------------------------------------------------------------------------
r54148 | akr | 2016-03-17 20:55:58 +0900 (Thu, 17 Mar 2016) | 3 lines

* enum.c (ary_inject_op): Extracted from enum_inject.


------------------------------------------------------------------------
r54147 | akr | 2016-03-17 18:50:19 +0900 (Thu, 17 Mar 2016) | 8 lines

* enum.c (enum_inject): Implement the specialized code for sum of
  integers including Bignums.

* internal.h (rb_fix_plus): Declared to be usable from enum_inject.

* numeric.c (rb_fix_plus): Defined.


------------------------------------------------------------------------
r54146 | nobu | 2016-03-17 17:20:29 +0900 (Thu, 17 Mar 2016) | 4 lines

thread_sync.c: Update rdoc for Queue [skip ci]

* thread_sync.c: [DOC] Update documentation for Queue class
  description.  [Fix GH-1292]
------------------------------------------------------------------------
r54145 | nobu | 2016-03-17 17:14:53 +0900 (Thu, 17 Mar 2016) | 10 lines

gc.c: tick for POWER arch

* gc.c (tick): Use __builtin_ppc_get_timebase for POWER arch.
  [Fix GH-1291]

This gives a little performance improvement

        user     system      total        real
Before: 20.870000   0.000000  20.870000 ( 20.893959)
After:  20.720000   0.000000  20.720000 ( 20.733970)
------------------------------------------------------------------------
r54144 | naruse | 2016-03-17 15:01:11 +0900 (Thu, 17 Mar 2016) | 15 lines

* lib/securerandom.rb (gen_random): to avoid blocking on Windows.
  On Windows OpenSSL RAND_bytes (underlying implementation is
  RAND_poll in crypto/rand/rand_win.c) may be blocked at
  NetStatisticsGet.
  https://wiki.openssl.org/index.php/Random_Numbers#Windows_Issues
  Instead of this, use Random.raw_seed directory (whose implementation
  CryptGenRandom is one of the source of
  entropy of RAND_poll on Windows).
  https://wiki.openssl.org/index.php/Random_Numbers
  Note: CryptGenRandom function is PRNG and doesn't check its entropy,
  so it won't block. [Bug #12139]
  https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa379942.aspx
  https://tools.ietf.org/html/rfc4086#section-7.1.3
  https://eprint.iacr.org/2007/419.pdf
  http://www.cs.huji.ac.il/~dolev/pubs/thesis/msc-thesis-leo.pdf
------------------------------------------------------------------------
r54143 | nobu | 2016-03-17 14:47:44 +0900 (Thu, 17 Mar 2016) | 3 lines

compile.c: bit flag

* compile.c (LABEL): turn `set` flag a bit field.
------------------------------------------------------------------------
r54142 | nobu | 2016-03-17 14:22:57 +0900 (Thu, 17 Mar 2016) | 4 lines

assertions.rb: fix result of assert_nothing_raised

* test/lib/test/unit/assertions.rb (assert_nothing_raised): do not
  discard the result of the given block.
------------------------------------------------------------------------
r54141 | nobu | 2016-03-17 13:31:10 +0900 (Thu, 17 Mar 2016) | 5 lines

test_optimization.rb: tailcall

* test/ruby/test_optimization.rb (TestRubyOptimization.tailcall):
  helper method to compile methods with tailcall optimization
  enabled.
------------------------------------------------------------------------
r54140 | duerst | 2016-03-17 12:09:00 +0900 (Thu, 17 Mar 2016) | 4 lines

* enc/unicode.c: Fixed two macro definitions.
* test/ruby/enc/test_case_mapping.rb: Test cases that detected
  the above bugs.

------------------------------------------------------------------------
r54139 | nobu | 2016-03-17 11:36:28 +0900 (Thu, 17 Mar 2016) | 5 lines

socket/option.c: accurate condition

* ext/socket/option.c (inspect_tcpi_msec): more accurate condition
  for TCPI msec member inspection function.
  [ruby-core:74388] [Bug #12185]
------------------------------------------------------------------------
r54138 | nobu | 2016-03-17 10:23:03 +0900 (Thu, 17 Mar 2016) | 4 lines

test_marshal.rb: assert bad link

* test/ruby/test_marshal.rb (test_marshal_load_r_prepare_reference_crash):
  assert an ArgumentError exception at a bad link.
------------------------------------------------------------------------
r54137 | odaira | 2016-03-17 08:20:14 +0900 (Thu, 17 Mar 2016) | 3 lines

* test/-ext-/time/test_new.rb (test_timespec_new): Time#gmtoff values
  are the same only when both or neither of the Time objects are in
  summer time (daylight-saving time).
------------------------------------------------------------------------
r54136 | drbrain | 2016-03-17 07:18:12 +0900 (Thu, 17 Mar 2016) | 3 lines

* marshal.c (r_object0):  raise ArgumentError when linking to undefined
  object.

------------------------------------------------------------------------
r54135 | mrkn | 2016-03-17 00:53:08 +0900 (Thu, 17 Mar 2016) | 1 line

* test/ruby/test_bignum.rb: Make sure to use Bignum values in the tests.
------------------------------------------------------------------------
r54134 | svn | 2016-03-17 00:04:11 +0900 (Thu, 17 Mar 2016) | 1 line

* 2016-03-17
------------------------------------------------------------------------
r54133 | nobu | 2016-03-17 00:04:11 +0900 (Thu, 17 Mar 2016) | 4 lines

transcode-tblgen.rb: chomp invalid line

* tool/transcode-tblgen.rb (citrus_decode_mapsrc): remove newline
  from invalid line in exception messages.
------------------------------------------------------------------------
r54132 | nobu | 2016-03-16 23:51:40 +0900 (Wed, 16 Mar 2016) | 4 lines

transcode-tblgen.rb: binary mode

* tool/transcode-tblgen.rb (citrus_decode_mapsrc): read in binary
  mode to deal with non-ascii characters.
------------------------------------------------------------------------
r54131 | nobu | 2016-03-16 23:10:27 +0900 (Wed, 16 Mar 2016) | 5 lines

parse.y: symbol literals for alias/undef

* defs/keywords (alias, undef): symbol literals are allowed.
* parse.y (parse_percent): should parse symbol literals for alias
  and undef.  [ruby-dev:47681] [Bug #8851]
------------------------------------------------------------------------
r54130 | svn | 2016-03-16 21:42:16 +0900 (Wed, 16 Mar 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r54129 | naruse | 2016-03-16 21:42:15 +0900 (Wed, 16 Mar 2016) | 1 line

* enc/trans/JIS: update Unicode's notice. [Bug #11844]
------------------------------------------------------------------------
r54128 | nobu | 2016-03-16 20:03:38 +0900 (Wed, 16 Mar 2016) | 4 lines

proc.c: fail symbol proc binding

* proc.c (proc_binding): proc from symbol can not make a binding.
  [ruby-core:74100] [Bug #12137]
------------------------------------------------------------------------
r54127 | duerst | 2016-03-16 18:42:45 +0900 (Wed, 16 Mar 2016) | 2 lines

* test/ruby/enc/test_case_mapping.rb: Fixed and activated a test for Cherokee.

------------------------------------------------------------------------
r54126 | svn | 2016-03-16 17:58:57 +0900 (Wed, 16 Mar 2016) | 1 line

* 2016-03-16
------------------------------------------------------------------------
r54125 | duerst | 2016-03-16 17:58:56 +0900 (Wed, 16 Mar 2016) | 2 lines

* test/ruby/enc/test_case_mapping.rb: Fixed a logical error.

------------------------------------------------------------------------
r54124 | duerst | 2016-03-16 17:57:34 +0900 (Wed, 16 Mar 2016) | 4 lines

* test/ruby/enc/test_case_mapping.rb: Adding tests for Cherokee.
  One test not yet working.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r54123 | duerst | 2016-03-16 15:44:05 +0900 (Wed, 16 Mar 2016) | 4 lines

* test/ruby/enc/test_case_mapping.rb: Adding tests for actual Unicode
  case mapping. Fixing some aliasing issues.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r54122 | akr | 2016-03-15 21:53:06 +0900 (Tue, 15 Mar 2016) | 4 lines

* enum.c (enum_inject): Consider redefinition of Fixnum#+.
  [ruby-dev:49510] [Bug#12178] Reported by usa.


------------------------------------------------------------------------
r54121 | kazu | 2016-03-15 21:47:18 +0900 (Tue, 15 Mar 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54120 | akr | 2016-03-15 20:42:23 +0900 (Tue, 15 Mar 2016) | 3 lines

* enum.c (enum_inject): Implement the specialied code for :+ operator
  for Fixnums.

------------------------------------------------------------------------
r54119 | akr | 2016-03-15 20:27:34 +0900 (Tue, 15 Mar 2016) | 3 lines

* enum.c (enum_inject): Implement the specialized code for self is an
  array and a symbol operator is given.

------------------------------------------------------------------------
r54118 | duerst | 2016-03-15 16:29:51 +0900 (Tue, 15 Mar 2016) | 3 lines

* enc/unicode.c: Eliminating common code.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r54117 | duerst | 2016-03-15 16:17:09 +0900 (Tue, 15 Mar 2016) | 4 lines

* enc/unicode.c: Expansion of some code repetition in preparation for
  elimination of common code pieces.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r54116 | nobu | 2016-03-15 16:02:09 +0900 (Tue, 15 Mar 2016) | 4 lines

gc.c: mark_stack_locations

* gc.c (mark_stack_locations): extract the common part from
  mark_current_machine_context and rb_gc_mark_machine_stack.
------------------------------------------------------------------------
r54115 | nobu | 2016-03-15 15:42:29 +0900 (Tue, 15 Mar 2016) | 3 lines

gc.c: rb_objspace_of

* gc.c (rb_objspace_of): macro to get the objspace from a thread.
------------------------------------------------------------------------
r54114 | nobu | 2016-03-15 15:42:27 +0900 (Tue, 15 Mar 2016) | 4 lines

gc.c: expand a local macro

* gc.c (mark_current_machine_context, rb_gc_mark_machine_stack):
  expand rb_gc_mark_locations local macro.
------------------------------------------------------------------------
r54113 | svn | 2016-03-15 13:49:25 +0900 (Tue, 15 Mar 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r54112 | duerst | 2016-03-15 13:49:24 +0900 (Tue, 15 Mar 2016) | 4 lines

* enc/unicode.c: Additional macros and code to use mapping data in
  CaseMappingSpecials array.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r54111 | nobu | 2016-03-15 13:41:24 +0900 (Tue, 15 Mar 2016) | 4 lines

internal.h: private rb_gc_mark_global_tbl

* internal.h (rb_gc_mark_global_tbl): should be private,
  but was accidentally exported.
------------------------------------------------------------------------
r54110 | hsbt | 2016-03-15 12:51:19 +0900 (Tue, 15 Mar 2016) | 3 lines

* doc/extension.ja.rdoc: Fix RDoc markup in doc/extension*.rdoc.
  [ci skip][Bug #12143][ruby-core:74143]
* doc/extension.rdoc: ditto.
------------------------------------------------------------------------
r54109 | hsbt | 2016-03-15 09:56:45 +0900 (Tue, 15 Mar 2016) | 2 lines

* time.c: Minor typo in Time#dst? documentation.
  [ci skip][fix GH-1290]
------------------------------------------------------------------------
r54108 | nobu | 2016-03-15 09:47:46 +0900 (Tue, 15 Mar 2016) | 5 lines

test_marshal.rb: use assert_ruby_status

* test/ruby/test_marshal.rb (test_marshal_load_extended_class_crash):
  use assert_ruby_status to deal with signals, core dump and
  diagnostic reports.
------------------------------------------------------------------------
r54107 | nobu | 2016-03-15 09:28:17 +0900 (Tue, 15 Mar 2016) | 4 lines

test_rubyoptions.rb: VERSION_PATTERN

* test/ruby/test_rubyoptions.rb (VERSION_PATTERN): make the
  pattern at loading, and escape regexp meta characters.
------------------------------------------------------------------------
r54106 | headius | 2016-03-15 04:39:24 +0900 (Tue, 15 Mar 2016) | 2 lines

* test/ruby/test_rubyoptions.rb (test_disable): add tests for
  --disable-gems and --disable-did_you_mean.
------------------------------------------------------------------------
r54105 | drbrain | 2016-03-15 03:36:14 +0900 (Tue, 15 Mar 2016) | 2 lines

* marshal.c (r_object0): Fix Marshal crash for corrupt extended object.

------------------------------------------------------------------------
r54104 | svn | 2016-03-15 01:24:05 +0900 (Tue, 15 Mar 2016) | 1 line

* 2016-03-15
------------------------------------------------------------------------
r54103 | headius | 2016-03-15 01:24:04 +0900 (Tue, 15 Mar 2016) | 2 lines

* test/ruby/test_rubyoptions.rb: make version matching support
  JRuby's version output.
------------------------------------------------------------------------
r54102 | naruse | 2016-03-14 19:14:48 +0900 (Mon, 14 Mar 2016) | 36 lines

* bignum.c (big2str_2bdigits): reduce div instruction.

Fix the code so that C compiler unify div instructions of `%` and `/`.

Before:
  4291b0:       48 89 f0                mov    %rsi,%rax
  4291b3:       31 d2                   xor    %edx,%edx
  4291b5:       48 83 ef 01             sub    $0x1,%rdi
  4291b9:       48 f7 f1                div    %rcx  # <---- !
  4291bc:       41 0f b6 04 11          movzbl (%r9,%rdx,1),%eax
  4291c1:       31 d2                   xor    %edx,%edx
  4291c3:       41 88 04 38             mov    %al,(%r8,%rdi,1)
  4291c7:       48 63 4b 04             movslq 0x4(%rbx),%rcx
  4291cb:       48 89 f0                mov    %rsi,%rax
  4291ce:       48 f7 f1                div    %rcx  # <---- !
  4291d1:       48 89 c6                mov    %rax,%rsi
  4291d4:       48 85 ff                test   %rdi,%rdi
  4291d7:       75 d7                   jne    4291b0 <big2str_2bdigits+0x50>
  4291d9:       48 63 6b 10             movslq 0x10(%rbx),%rbp
  4291dd:       48 01 6b 20             add    %rbp,0x20(%rbx)
  4291e1:       48 8b 44 24 48          mov    0x48(%rsp),%rax
  4291e6:       64 48 33 04 25 28 00    xor    %fs:0x28,%rax

After:
  4291b0:       48 63 73 04             movslq 0x4(%rbx),%rsi
  4291b4:       31 d2                   xor    %edx,%edx
  4291b6:       48 83 e9 01             sub    $0x1,%rcx
  4291ba:       48 f7 f6                div    %rsi  # <---- !
  4291bd:       41 0f b6 14 10          movzbl (%r8,%rdx,1),%edx
  4291c2:       88 14 0f                mov    %dl,(%rdi,%rcx,1)
  4291c5:       48 85 c9                test   %rcx,%rcx
  4291c8:       75 e6                   jne    4291b0 <big2str_2bdigits+0x50>
  4291ca:       48 63 6b 10             movslq 0x10(%rbx),%rbp
  4291ce:       48 01 6b 20             add    %rbp,0x20(%rbx)
  4291d2:       48 8b 44 24 48          mov    0x48(%rsp),%rax
  4291d7:       64 48 33 04 25 28 00    xor    %fs:0x28,%rax
------------------------------------------------------------------------
r54101 | duerst | 2016-03-14 18:39:54 +0900 (Mon, 14 Mar 2016) | 4 lines

* include/ruby/oniguruma.h, enc/unicode.c: Adjusting flag assignments
  and macros to work with unified CaseMappingSpecials array.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r54100 | nobu | 2016-03-14 16:53:39 +0900 (Mon, 14 Mar 2016) | 45 lines

optimize named capture assignment

* compile.c (compile_named_capture_assign): optimize named capture
  assignments, by replacing repeating global variable accesses
  with `dup`, and by returning the matched result instead of
  re-getting it from the MatchData.

* parse.y (reg_named_capture_assign_gen): build just assignment
  nodes for the optimization.

ex. `/(?<x>.)/ =~ "bar"`

- old
  ```
  0000 putstring        "bar"
  0002 opt_regexpmatch1 /(?<x>.)/
  0004 pop
  0005 getglobal        $~
  0007 branchunless     25
  0009 getglobal        $~
  0011 putobject        :x
  0013 opt_aref         <callinfo!mid:[], argc:1, ARGS_SIMPLE>
  0016 setlocal_OP__WC__0 2
  0018 getglobal        $~
  0020 putobject_OP_INT2FIX_O_0_C_
  0021 opt_send_without_block <callinfo!mid:begin, argc:1, ARGS_SIMPLE>
  0024 leave
  0025 putobject        nil
  0027 setlocal_OP__WC__0 2
  0029 putobject        nil
  0031 leave
  ```

- new
  ```
  0000 putstring        "bar"
  0002 opt_regexpmatch1 /(?<x>.)/
  0004 getglobal        $~
  0006 dup
  0007 branchunless     14
  0009 putobject        :x
  0011 opt_aref         <callinfo!mid:[], argc:1, ARGS_SIMPLE>
  0014 setlocal_OP__WC__0 2
  0016 leave
  ```
------------------------------------------------------------------------
r54099 | nobu | 2016-03-14 16:03:01 +0900 (Mon, 14 Mar 2016) | 6 lines

ruby.c: reduce fstat

* file.c (ruby_is_fd_loadable): now return -1 if loadable but
  may block.
* ruby.c (open_load_file): wait to read by the result of
  ruby_is_fd_loadable, without fstat.
------------------------------------------------------------------------
r54098 | naruse | 2016-03-14 13:41:16 +0900 (Mon, 14 Mar 2016) | 1 line

* numeric.c (fix2str): improve r54092 like rb_int2big().
------------------------------------------------------------------------
r54097 | normal | 2016-03-14 10:20:14 +0900 (Mon, 14 Mar 2016) | 8 lines

document OpenSSL::SSL::SSLContext#setup as MT-unsafe

On a cursory inspection, using rb_block_call for extra_chain_cert
is thread-unsafe.  There may be other instances of thread-unsafe
behavior in this method, but one is enough.

* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): document as MT-unsafe
  [ruby-core:73803] [Bug #12069]
------------------------------------------------------------------------
r54096 | svn | 2016-03-14 01:26:05 +0900 (Mon, 14 Mar 2016) | 1 line

* 2016-03-14
------------------------------------------------------------------------
r54095 | nobu | 2016-03-14 01:26:04 +0900 (Mon, 14 Mar 2016) | 3 lines

parse.y: adjust indent

* parse.y: adjust indent and tabify spaces after tabs.
------------------------------------------------------------------------
r54094 | nobu | 2016-03-13 09:43:25 +0900 (Sun, 13 Mar 2016) | 4 lines

win32.h: fix O_SHARE_DELETE

* include/ruby/win32.h (O_SHARE_DELETE): change to fit Fixnum
  limit.  [ruby-core:74285] [Bug #12171]
------------------------------------------------------------------------
r54093 | svn | 2016-03-13 09:15:49 +0900 (Sun, 13 Mar 2016) | 1 line

* 2016-03-13
------------------------------------------------------------------------
r54092 | nobu | 2016-03-13 09:15:48 +0900 (Sun, 13 Mar 2016) | 4 lines

numeric.c: fix edge case

* numeric.c (rb_fix2str): fix edge case, accidentally generated
  wrong Fixnum from LONG_MIN.
------------------------------------------------------------------------
r54091 | nobu | 2016-03-12 10:35:54 +0900 (Sat, 12 Mar 2016) | 3 lines

unicode.c: off-by-one error

* enc/unicode.c (CodePointListValidP): fix off-by-one error.
------------------------------------------------------------------------
r54090 | nobu | 2016-03-12 10:15:31 +0900 (Sat, 12 Mar 2016) | 4 lines

unicode.c: boundary check

* enc/unicode.c (CodePointListValidP): add pathological boundary
  check, for gcc 4.9.
------------------------------------------------------------------------
r54089 | nobu | 2016-03-12 09:50:29 +0900 (Sat, 12 Mar 2016) | 5 lines

Malformed RDoc syntax in catch [ci skip]

* vm_eval.c (rb_f_catch): [DOC] fix malformed RDoc syntax, "+...+"
  cannot enclose non-identifier characters.
  a patch by Sebastian S in [ruby-core:74278].  [Bug#12170]
------------------------------------------------------------------------
r54088 | svn | 2016-03-12 02:58:50 +0900 (Sat, 12 Mar 2016) | 1 line

* 2016-03-12
------------------------------------------------------------------------
r54087 | akr | 2016-03-12 02:58:49 +0900 (Sat, 12 Mar 2016) | 2 lines

* test/lib/test/unit.rb: describe !/REGEXP/ in the help message.

------------------------------------------------------------------------
r54086 | nobu | 2016-03-11 17:03:11 +0900 (Fri, 11 Mar 2016) | 6 lines

testunit: negative filter

* test/lib/test/unit.rb (Options#non_options): make regexp name
  options prefixed with "!" negative filters.
* common.mk (TEST_EXCLUDES): use negative filter to exclude memory
  leak tests.  -x option excludes test files, not test methods.
------------------------------------------------------------------------
r54085 | duerst | 2016-03-11 16:11:27 +0900 (Fri, 11 Mar 2016) | 6 lines

* enc/unicode/case-folding.rb, casefold.h: Streamlining approach to
  case mapping data not available from case folding by unifying all
  three cases (special title, special upper, special lower).
* enc/unicode.c: Adjust macro names for above (macros are currently inactive).
  (with Kimihito Matsui)

------------------------------------------------------------------------
r54084 | nobu | 2016-03-11 12:30:25 +0900 (Fri, 11 Mar 2016) | 4 lines

Revert r54082 "ruby.c: load in binary mode"

DATA is expected to be text mode, but there is no ways to make a
FD to text mode from binary mode.
------------------------------------------------------------------------
r54083 | svn | 2016-03-11 10:47:20 +0900 (Fri, 11 Mar 2016) | 1 line

* 2016-03-11
------------------------------------------------------------------------
r54082 | nobu | 2016-03-11 10:47:19 +0900 (Fri, 11 Mar 2016) | 4 lines

ruby.c: load in binary mode

* ruby.c (open_load_file): always open in binary mode if provided,
  parser deals with CRs.
------------------------------------------------------------------------
r54081 | nobu | 2016-03-10 17:34:18 +0900 (Thu, 10 Mar 2016) | 7 lines

iseq.h: coverage_enabled flag

* iseq.c (prepare_iseq_build): enable coverage by coverage_enabled
  option, not by parse_in_eval flag in the thread context.
* iseq.h (rb_compile_option_struct): add coverage_enabled flag.
* parse.y (yycompile0): set coverage_enabled flag if coverage
  array is made.
------------------------------------------------------------------------
r54080 | nobu | 2016-03-10 16:27:41 +0900 (Thu, 10 Mar 2016) | 3 lines

node.c: no nd_compile_option unless set

* node.c (dump_node): show nd_compile_option only when it is set.
------------------------------------------------------------------------
r54079 | nobu | 2016-03-10 16:27:40 +0900 (Thu, 10 Mar 2016) | 4 lines

node.c: stringize before expansion

* node.c (F_NODE, F_OPTION): stringize member names defined as
  macros before expansion.
------------------------------------------------------------------------
r54078 | nobu | 2016-03-10 16:06:39 +0900 (Thu, 10 Mar 2016) | 4 lines

iseq.h: bit flags

* iseq.h (rb_compile_option_struct): turn boolean flags to bit
  fields.
------------------------------------------------------------------------
r54077 | nobu | 2016-03-10 15:19:55 +0900 (Thu, 10 Mar 2016) | 4 lines

node.c: hidden options hash

* node.c (dump_option): nd_compile_option is a hidden hash object,
  cannot call inspect on it.
------------------------------------------------------------------------
r54076 | nobu | 2016-03-10 14:32:49 +0900 (Thu, 10 Mar 2016) | 4 lines

iseq.c: set coverage at once

* iseq.c (prepare_iseq_build): set coverage at once, not
  repeatedly resetting.
------------------------------------------------------------------------
r54075 | nobu | 2016-03-10 14:32:48 +0900 (Thu, 10 Mar 2016) | 4 lines

thread.c: check type of coverage

* thread.c (update_coverage): check type of coverage array not
  only if non-zero.
------------------------------------------------------------------------
r54074 | svn | 2016-03-10 09:55:37 +0900 (Thu, 10 Mar 2016) | 1 line

* 2016-03-10
------------------------------------------------------------------------
r54073 | odaira | 2016-03-10 09:55:37 +0900 (Thu, 10 Mar 2016) | 3 lines

* test/socket/test_socket.rb (test_udp_recvmsg_truncation):
  AIX does not set the MSG_TRUNC flag for a message partially read
  by recvmsg(2) with the MSG_PEEK flag set.
------------------------------------------------------------------------
r54066 | kazu | 2016-03-09 22:30:13 +0900 (Wed, 09 Mar 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r54065 | nobu | 2016-03-09 19:39:21 +0900 (Wed, 09 Mar 2016) | 4 lines

common.mk: dependency of prelude.o

* common.mk (prelude.o): fix missing dependency on iseq.h, for
  rb_compile_option_t.
------------------------------------------------------------------------
r54064 | nobu | 2016-03-09 16:52:27 +0900 (Wed, 09 Mar 2016) | 4 lines

driver.rb: unused variable

* benchmark/driver.rb (BenchmarkDriver.load): remove unused
  variable.
------------------------------------------------------------------------
r54063 | ko1 | 2016-03-09 16:49:06 +0900 (Wed, 09 Mar 2016) | 2 lines

* benchmark/driver.rb: fix my last commit (syntax error).

------------------------------------------------------------------------
r54062 | ko1 | 2016-03-09 16:42:32 +0900 (Wed, 09 Mar 2016) | 5 lines

* benchmark/driver.rb: fix output messages.

* benchmark/memory_wrapper.rb: use respond_to? because
  member? does not work well.

------------------------------------------------------------------------
r54061 | svn | 2016-03-09 16:22:28 +0900 (Wed, 09 Mar 2016) | 1 line

* properties.
------------------------------------------------------------------------
r54060 | ko1 | 2016-03-09 16:22:27 +0900 (Wed, 09 Mar 2016) | 9 lines

* benchmark/driver.rb: support memory usage benchmark.
  use `--measure-target=[target]'.
  Now, we can use the following targets:
    * real (default): real time which returns process time in sec.
    * peak: peak memory usage (physical memory) in bytes.
    * size: last memory usage (physical memory) in bytes.

* benchmark/memory_wrapper.rb: ditto.

------------------------------------------------------------------------
r54059 | nobu | 2016-03-09 16:17:04 +0900 (Wed, 09 Mar 2016) | 3 lines

hash.c: COPY_DEFAULT

* hash.c (COPY_DEFAULT): new macro to copy the default value/proc.
------------------------------------------------------------------------
r54058 | nobu | 2016-03-09 16:17:03 +0900 (Wed, 09 Mar 2016) | 3 lines

hash.c: SET_PROC_DEFAULT

* hash.c (SET_PROC_DEFAULT): new macro to set the default proc.
------------------------------------------------------------------------
r54057 | nobu | 2016-03-09 16:17:03 +0900 (Wed, 09 Mar 2016) | 3 lines

hash.c: SET_DEFAULT

* hash.c (SET_DEFAULT): new macro to set the default value.
------------------------------------------------------------------------
r54056 | nobu | 2016-03-09 16:17:02 +0900 (Wed, 09 Mar 2016) | 4 lines

hash.c: hash_dup for rb_hash_to_h

* hash.c (rb_hash_to_h): share hash_dup to copy the contents and
  the default value/proc only.
------------------------------------------------------------------------
r54055 | nobu | 2016-03-09 16:17:01 +0900 (Wed, 09 Mar 2016) | 10 lines

hash.c: make duplicated hash WB protected

* hash.c (hash_alloc_flags): allocate new hash with the flags and
  the default value.

* hash.c (hash_dup): duplicate with the flags and the default
  value.

* hash.c (rb_hash_dup): make the duplicated hash write-barrier
  protected.
------------------------------------------------------------------------
r54054 | svn | 2016-03-09 15:05:54 +0900 (Wed, 09 Mar 2016) | 1 line

* properties.
------------------------------------------------------------------------
r54053 | ko1 | 2016-03-09 15:05:53 +0900 (Wed, 09 Mar 2016) | 6 lines

* benchmark/bm_vm3_gc_old_full.rb: add GC.start benchmark.

* benchmark/bm_vm3_gc_old_immediate.rb: ditto.

* benchmark/bm_vm3_gc_old_lazy.rb: ditto.

------------------------------------------------------------------------
r54052 | ko1 | 2016-03-09 15:02:18 +0900 (Wed, 09 Mar 2016) | 3 lines

* benchmark/driver.rb: exit benchmarking if a benchmark process
  receives signals.

------------------------------------------------------------------------
r54051 | nobu | 2016-03-09 14:14:42 +0900 (Wed, 09 Mar 2016) | 4 lines

test_hash.rb: tests for to_h

* test/ruby/test_hash.rb: add tests for Hash#to_h, which copies
  default value/proc but not instance variables.
------------------------------------------------------------------------
r54050 | nobu | 2016-03-09 13:45:27 +0900 (Wed, 09 Mar 2016) | 4 lines

hash.c: tbl_update_func

* hash.c (tbl_update_func): extract function typedef from the
  declaration of tbl_update.
------------------------------------------------------------------------
r54049 | nobu | 2016-03-09 13:22:50 +0900 (Wed, 09 Mar 2016) | 6 lines

memory_status.rb: independent of MiniTest

* test/lib/memory_status.rb: make Memory::Status independent of
  MiniTest::Skip.
* test/lib/test/unit/assertions.rb (assert_no_memory_leak): skip
  if Memory::Status is not available.
------------------------------------------------------------------------
r54048 | nobu | 2016-03-09 12:48:33 +0900 (Wed, 09 Mar 2016) | 4 lines

memory_status.rb: remove unused values

* test/lib/memory_status.rb: remove initial status values, which
  are not used.
------------------------------------------------------------------------
r54047 | odaira | 2016-03-09 09:28:41 +0900 (Wed, 09 Mar 2016) | 4 lines

* test/io/wait/test_io_wait.rb (test_wait_readwrite_timeout):
  select(2) in AIX returns "readable" for the write-side fd
  of a pipe, so it is not possible to use a pipe to test
  the read-write timeout of IO#wait on AIX.
------------------------------------------------------------------------
r54046 | usa | 2016-03-09 08:00:32 +0900 (Wed, 09 Mar 2016) | 2 lines

* win32/win32.c (rb_w32_write_console): remove unused variable.

------------------------------------------------------------------------
r54037 | headius | 2016-03-09 03:38:28 +0900 (Wed, 09 Mar 2016) | 2 lines

* test/ruby/test_require.rb (test_require_with_loaded_features_pop):
  Only remove PATH so threads don't accidentally double-pop.
------------------------------------------------------------------------
r54035 | nobu | 2016-03-09 00:29:48 +0900 (Wed, 09 Mar 2016) | 5 lines

vm_method.c: fix aliased original name

* vm_method.c (rb_alias): the original name should be properly
  available method_added method, set the name before calling the
  hook.
------------------------------------------------------------------------
r54034 | nobu | 2016-03-09 00:21:23 +0900 (Wed, 09 Mar 2016) | 1 line

ruby 2.0.0 has ended
------------------------------------------------------------------------
r54033 | nobu | 2016-03-09 00:21:22 +0900 (Wed, 09 Mar 2016) | 4 lines

ruby.c: extra comma

* ruby.c (feature_option, debug_option, dump_option): remove an
  extra comma from option lists.
------------------------------------------------------------------------
r54032 | svn | 2016-03-09 00:07:06 +0900 (Wed, 09 Mar 2016) | 1 line

* 2016-03-09
------------------------------------------------------------------------
r54031 | nobu | 2016-03-09 00:07:05 +0900 (Wed, 09 Mar 2016) | 4 lines

logger.rb: kwd args

* lib/logger.rb (Logger::LogDevice#initialize): define using
  keyword arguments.
------------------------------------------------------------------------
r54030 | headius | 2016-03-08 23:38:22 +0900 (Tue, 08 Mar 2016) | 5 lines

test/ruby/test_array.rb: split permute + stack error tests out.

* test/ruby/test_array.rb: split out the test for no stack error
  on large input for test_permutation, test_repeated_permutation,
  and test_repeated_combination, and make them all timeout:30.
------------------------------------------------------------------------
r54029 | naruse | 2016-03-08 18:15:18 +0900 (Tue, 08 Mar 2016) | 18 lines

* intern.h (rb_divmod): assume compilers `/` and `%` comply C99
  and reduce branching. If a compiler doesn't comply, add #ifdefs.

* intern.h (rb_div): added for Ruby's behavior.

* intern.h (rb_mod): added for Ruby's behavior.

* insns.def (opt_div): use rb_div.

* insns.def (opt_mod): use rb_mod.

* numeric.c (fixdivmod): removed.

* numeric.c (fix_divide): use rb_div.

* numeric.c (fix_mod): use rb_mod.

* numeric.c (fix_divmod): use rb_divmod.
------------------------------------------------------------------------
r54028 | naruse | 2016-03-08 17:54:38 +0900 (Tue, 08 Mar 2016) | 2 lines

* insns.def (opt_mod): show its method name on ZeroDivisionError.
  [Bug #12158]
------------------------------------------------------------------------
r54027 | usa | 2016-03-08 17:34:35 +0900 (Tue, 08 Mar 2016) | 3 lines

* win32/win32.c (rb_w32_write_console): now no need to check
  ERROR_CALL_NOT_IMPLEMENTED because it is for old Win9X.

------------------------------------------------------------------------
r54026 | usa | 2016-03-08 16:55:48 +0900 (Tue, 08 Mar 2016) | 3 lines

* win32/win32.c (rb_w32_write_console): stop the VT100 emulation if the
  console supports it natively.

------------------------------------------------------------------------
r54025 | odaira | 2016-03-08 08:22:49 +0900 (Tue, 08 Mar 2016) | 5 lines

* test/net/imap/test_imap.rb (test_idle_timeout): Because of the
  timeout specified in "imap.idle(0.2)", there is no gurantee that
  the server thread has done all the work before the client thread
  performs the assertions. It depends on the thread scheduling.
  Add checks to avoid false positives (on AIX, particularly).
------------------------------------------------------------------------
r54024 | nobu | 2016-03-08 04:39:32 +0900 (Tue, 08 Mar 2016) | 5 lines

test_rubyoptions.rb: fix test

* test/ruby/test_rubyoptions.rb (test_shebang): adjust only
  expected stderr as a warning, assertion has meaning on all
  platforms.
------------------------------------------------------------------------
r54023 | usa | 2016-03-08 00:44:34 +0900 (Tue, 08 Mar 2016) | 3 lines

* ruby.c (warn_cr_in_shebang): meaningless check on DOSISH platforms.
  fixed a test failure introduced at r53998.

------------------------------------------------------------------------
r54022 | nagachika | 2016-03-08 00:28:57 +0900 (Tue, 08 Mar 2016) | 2 lines

* ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb: fix method name typo.
  [ruby-core:72513] [Bug #11893] The patch provided by Akira Matsuda.
------------------------------------------------------------------------
r54021 | nagachika | 2016-03-08 00:26:38 +0900 (Tue, 08 Mar 2016) | 2 lines

* ext/tk/lib/tkextlib/tcllib/toolbar.rb: fix method name typo.
  [ruby-core:72511] [Bug #11891] The patch provided by Akira Matsuda.
------------------------------------------------------------------------
r54020 | nagachika | 2016-03-08 00:23:25 +0900 (Tue, 08 Mar 2016) | 2 lines

* ext/tk/lib/tkextlib/blt/tree.rb: fix method name typo.
[ruby-core:72510] [Bug #11890] The patch provided by Akira Matsuda.
------------------------------------------------------------------------
r54019 | svn | 2016-03-08 00:16:00 +0900 (Tue, 08 Mar 2016) | 1 line

* 2016-03-08
------------------------------------------------------------------------
r54018 | nagachika | 2016-03-08 00:15:59 +0900 (Tue, 08 Mar 2016) | 4 lines

* ext/tk/lib/tk/menubar.rb: fix a typo in font name. [ruby-core:72505]
  [Bug #11886] The patch provided by Akira Matsuda.

* ext/tk/sample/*.rb: ditto.
------------------------------------------------------------------------
r54017 | nobu | 2016-03-07 17:17:02 +0900 (Mon, 07 Mar 2016) | 4 lines

.travis.yml: add branches [ci skip]

* .travis.yml (branches): automatically run Travis on branches
  created with `git feature` or `git bug` commands.
------------------------------------------------------------------------
r54016 | nobu | 2016-03-07 15:24:46 +0900 (Mon, 07 Mar 2016) | 4 lines

update-rubyspec: show latest commit

* Makefile.in, win32/Makefile.sub (update-mspec, update-rubyspec):
  ensure the latest commits.
------------------------------------------------------------------------
r54015 | nobu | 2016-03-07 13:33:00 +0900 (Mon, 07 Mar 2016) | 5 lines

class.c: err if superclass is 0

* class.c (rb_define_class, rb_define_class_id_under): raise
  ArgumentError if super is 0, deprecated behavior which has been
  warned long time.
------------------------------------------------------------------------
r54014 | nobu | 2016-03-07 13:28:32 +0900 (Mon, 07 Mar 2016) | 4 lines

internal.h: functions for class internals

* internal.h: move function declarations for class internals from
  include/ruby/intern.h.
------------------------------------------------------------------------
r54013 | nobu | 2016-03-07 10:58:09 +0900 (Mon, 07 Mar 2016) | 6 lines

win32ole_event.c: use rb_write_error_str

* ext/win32ole/win32ole_event.c (rescue_callback): use
  rb_write_error_str instead of rb_write_error, to respect
  the encoding and prevent the message from GC.
* internal.h (rb_write_error_str): export.
------------------------------------------------------------------------
r54012 | nobu | 2016-03-07 10:05:36 +0900 (Mon, 07 Mar 2016) | 4 lines

io.c: remove extra declarations

* io.c (rb_io_set_encoding): remove extra declarations,
  rb_std{in,out,err} are defined in this file.
------------------------------------------------------------------------
r54011 | svn | 2016-03-07 01:43:51 +0900 (Mon, 07 Mar 2016) | 1 line

* 2016-03-07
------------------------------------------------------------------------
r54010 | odaira | 2016-03-07 01:43:50 +0900 (Mon, 07 Mar 2016) | 4 lines

* test/ruby/test_process.rb (test_execopts_gid): Skip a test
  that is known to fail on AIX. AIX allows setgid to
  a supplementary group, but Ruby does not allow the "-e"
  option when setgid'ed, so the test does not work as intended.
------------------------------------------------------------------------
r54009 | nobu | 2016-03-06 22:43:42 +0900 (Sun, 06 Mar 2016) | 4 lines

io.c: fix output of Array [ci skip]

* io.c (rb_obj_display): [DOC] fix output of Array, as Array#to_s
  is same as Array#inspect since 1.9.
------------------------------------------------------------------------
r54008 | svn | 2016-03-06 17:34:51 +0900 (Sun, 06 Mar 2016) | 1 line

* 2016-03-06
------------------------------------------------------------------------
r54007 | nobu | 2016-03-06 17:34:50 +0900 (Sun, 06 Mar 2016) | 4 lines

eval_error.c: trivial optimization

* eval_error.c (warn_print): optimize warn_print with a string
  literal, with rb_write_error2 instead of rb_write_error.
------------------------------------------------------------------------
r54006 | nobu | 2016-03-05 10:33:04 +0900 (Sat, 05 Mar 2016) | 4 lines

parse.y: optimize negate_lit

* parse.y (negate_lit): optimize bignum, rational, and complex
  negation.
------------------------------------------------------------------------
r54005 | odaira | 2016-03-05 09:54:17 +0900 (Sat, 05 Mar 2016) | 3 lines

* test/socket/test_addrinfo.rb (test_ipv6_address_predicates):
  IN6_IS_ADDR_V4COMPAT and IN6_IS_ADDR_V4MAPPED are broken
  on AIX, so skip related tests.
------------------------------------------------------------------------
r54004 | odaira | 2016-03-05 09:29:39 +0900 (Sat, 05 Mar 2016) | 11 lines

Sat Mar  5 09:17:54 2016  Rei Odaira  <Rei.Odaira@gmail.com>

* test/rinda/test_rinda.rb (test_make_socket_ipv4_multicast):
  The fifth argument to getsockopt(2) should be modified to
  indicate the actual size of the value on return,
  but not in AIX. This is a know bug. Skip related tests.
* test/rinda/test_rinda.rb (test_ring_server_ipv4_multicast):
  ditto.
* test/rinda/test_rinda.rb (test_make_socket_unicast): ditto.
* test/socket/test_basicsocket.rb (test_getsockopt): ditto.
* test/socket/test_sockopt.rb (test_bool): ditto.
------------------------------------------------------------------------
r54003 | odaira | 2016-03-05 07:43:31 +0900 (Sat, 05 Mar 2016) | 4 lines

* test/-ext-/float/test_nextafter.rb: In AIX,
  nextafter(+0.0,-0.0)=+0.0, and nextafter(-0.0,+0.0)=-0.0,
  but they should return -0.0 and +0.0, respectively. This is
  a known bug in nextafter(3) on AIX, so skip related tests.
------------------------------------------------------------------------
r54002 | odaira | 2016-03-05 07:20:56 +0900 (Sat, 05 Mar 2016) | 4 lines

* test/zlib/test_zlib.rb (test_adler32_combine, test_crc32_combine):
  Skip two tests on AIX because zconf.h in zlib does not correctly
  recognize _LARGE_FILES in AIX. The problem was already reported
  to zlib, and skip these tests until it is fixed.
------------------------------------------------------------------------
r54001 | svn | 2016-03-05 03:14:19 +0900 (Sat, 05 Mar 2016) | 1 line

* 2016-03-05
------------------------------------------------------------------------
r54000 | odaira | 2016-03-05 03:14:18 +0900 (Sat, 05 Mar 2016) | 3 lines

* thread_pthread.c (getstack): __pi_stacksize returned by
  pthread_getthrds_np() is wrong on AIX. Use
  __pi_stackend - __pi_stackaddr instead.
------------------------------------------------------------------------
r53999 | nobu | 2016-03-04 22:39:46 +0900 (Fri, 04 Mar 2016) | 4 lines

securerandom.rb: remove to_s call

* lib/securerandom.rb (gen_random): Array#join returns a String,
  no to_s is needed.
------------------------------------------------------------------------
r53998 | nobu | 2016-03-04 22:27:36 +0900 (Fri, 04 Mar 2016) | 4 lines

ruby.c: warn_cr_in_shebang

* ruby.c (load_file_internal): warn if shebang line ends with a
  carriage return.
------------------------------------------------------------------------
r53997 | ko1 | 2016-03-04 19:37:35 +0900 (Fri, 04 Mar 2016) | 3 lines

* gc.c: use 2 bits with unsigned int for rb_objspace::flags::mode
  because it always returns 0 to 2 (non-negative value).

------------------------------------------------------------------------
r53996 | ko1 | 2016-03-04 18:53:03 +0900 (Fri, 04 Mar 2016) | 16 lines

* gc.c: rename "enum gc_stat" to "enum gc_mode"
  because there is a same name (no related) function gc_stat().

  Also gc_stat_* are renamed to gc_mode_*,
  gc_stat_transition() to gc_mode_transition(),
  rb_objspace::flags::stat is renamed to rb_objspace::flags::mode.

  Change rb_objspace::flags::mode from 2 bits to 3 bits because VC++
  returns negative enum value with 2 bits.

* gc.c (gc_mode): add a macro to access rb_objspace::flags::mode
  with verification code (verification is enabled only on
  RGENGC_CHECK_MODE > 0).

* gc.c (gc_mode_set): same macro for setter.

------------------------------------------------------------------------
r53995 | nobu | 2016-03-04 14:19:12 +0900 (Fri, 04 Mar 2016) | 4 lines

ruby.c: simplify

* ruby.c (load_file_internal): simplify by local variables instead
  of repeating RSTRING macros.
------------------------------------------------------------------------
r53994 | nobu | 2016-03-04 13:34:17 +0900 (Fri, 04 Mar 2016) | 4 lines

test_rubyoptions.rb: encoding option

* test/ruby/test_rubyoptions.rb (test_shebang): use encoding
  option to assert_in_out_err.
------------------------------------------------------------------------
r53993 | nobu | 2016-03-04 12:53:43 +0900 (Fri, 04 Mar 2016) | 7 lines

ruby.c: remove a magic number

* ruby.c (load_file_internal): remove a magic number, which means
  the length of ruby_engine but the value is unknown in this file
  since the variable is in a different file now.  instead, strstr
  should deal with it well, as far as ruby_engine does not contain
  a space and a hyphen.
------------------------------------------------------------------------
r53992 | hsbt | 2016-03-04 09:29:40 +0900 (Fri, 04 Mar 2016) | 4 lines

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.1.
  Please see entries of 2.6.0 and 2.6.1 on
  https://github.com/rubygems/rubygems/blob/master/History.txt
  [fix GH-1270] Patch by @segiddins
------------------------------------------------------------------------
r53991 | svn | 2016-03-04 06:05:45 +0900 (Fri, 04 Mar 2016) | 1 line

* 2016-03-04
------------------------------------------------------------------------
r53990 | headius | 2016-03-04 06:05:44 +0900 (Fri, 04 Mar 2016) | 2 lines

* test/ruby/test_io_m17n.rb (test_each_codepoint_need_more): Bump
  timeout up to 10s for slower platforms and impls.
------------------------------------------------------------------------
r53989 | nobu | 2016-03-03 17:31:12 +0900 (Thu, 03 Mar 2016) | 4 lines

parse.y: split nextc

* parse.y (parser_nextline, parser_cr): split less frequent paths
  from parser_nextc.
------------------------------------------------------------------------
r53988 | nobu | 2016-03-03 16:42:32 +0900 (Thu, 03 Mar 2016) | 3 lines

parse.y: cr_seen flag

* parse.y (parser_params): turn last_cr_line into cr_seen flag.
------------------------------------------------------------------------
r53987 | nobu | 2016-03-03 14:09:02 +0900 (Thu, 03 Mar 2016) | 5 lines

ostruct.rb: make internal methods private

* lib/ostruct.rb (modifiable?, new_ostruct_member!, table!):
  rename methods for internal use with suffixes and make private,
  [ruby-core:71069] [Bug #11587]
------------------------------------------------------------------------
r53986 | svn | 2016-03-03 12:08:53 +0900 (Thu, 03 Mar 2016) | 1 line

* 2016-03-03
------------------------------------------------------------------------
r53985 | nobu | 2016-03-03 12:08:52 +0900 (Thu, 03 Mar 2016) | 4 lines

test/unit: not return the cursor if verbose

* test/lib/test/unit.rb (update_status): do not return the cursor
  if verbose mode, not results and times to overwrite test names.
------------------------------------------------------------------------
r53984 | nobu | 2016-03-02 16:28:50 +0900 (Wed, 02 Mar 2016) | 4 lines

vm_eval.c: call method_missing by method entry

* vm_eval.c (method_missing): call by found method entry and get
  rid of searching the same method entry twice.
------------------------------------------------------------------------
r53983 | nobu | 2016-03-02 16:18:31 +0900 (Wed, 02 Mar 2016) | 4 lines

vm_eval.c: method_missing by method_missing

* vm_eval.c (vm_call0_body): calling method_missing method is
  method_missing().
------------------------------------------------------------------------
r53982 | nobu | 2016-03-02 16:03:22 +0900 (Wed, 02 Mar 2016) | 6 lines

test/unit: return the cursor

* test/lib/test/unit.rb (update_status): keep the cursor to the
  beginning of the line for each update, so that unexpected output
  like an error message will overwrite but not be concatenated to
  the status.
------------------------------------------------------------------------
r53981 | hsbt | 2016-03-02 15:19:18 +0900 (Wed, 02 Mar 2016) | 5 lines

* lib/xmlrpc.rb: Removed broken parser named XMLScanStreamParser.
  It's not works with current Ruby version.
  [fix GH-1271][ruby-core:59588][Bug #9369]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.
------------------------------------------------------------------------
r53980 | hsbt | 2016-03-02 15:12:51 +0900 (Wed, 02 Mar 2016) | 5 lines

* lib/xmlrpc.rb: Removed broken parser named XMLTreeParser.
  Required gem of its parser didn't compile on newer Ruby versions.
  [fix GH-1271][ruby-core:59590][Bug #9370]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.
------------------------------------------------------------------------
r53979 | svn | 2016-03-02 00:00:55 +0900 (Wed, 02 Mar 2016) | 1 line

* 2016-03-02
------------------------------------------------------------------------
r53978 | kazu | 2016-03-02 00:00:55 +0900 (Wed, 02 Mar 2016) | 1 line

Fix pull request number [ci skip]
------------------------------------------------------------------------
r53977 | nobu | 2016-03-01 23:43:34 +0900 (Tue, 01 Mar 2016) | 5 lines

vm_method.c: fix assertion

* vm_method.c (prepare_callable_method_entry): assert same
  condition only once for each case, not twice for module instance
  method.
------------------------------------------------------------------------
r53976 | svn | 2016-03-01 11:26:45 +0900 (Tue, 01 Mar 2016) | 1 line

* 2016-03-01
------------------------------------------------------------------------
r53975 | nobu | 2016-03-01 11:26:44 +0900 (Tue, 01 Mar 2016) | 4 lines

fileutils.rb: keyword arguments

* lib/fileutils.rb: use keyword arguments instead of option
  hashes.
------------------------------------------------------------------------
r53974 | nobu | 2016-02-29 21:22:17 +0900 (Mon, 29 Feb 2016) | 4 lines

fileutils.rb: LowMethods aliases

* lib/fileutils.rb (LowMethods): make alias methods instead of
  eval for each methods.
------------------------------------------------------------------------
r53973 | nobu | 2016-02-29 17:36:30 +0900 (Mon, 29 Feb 2016) | 4 lines

fileutils.rb: reduce private

* lib/fileutils.rb (Verbose, NoWrite, DryRun): make overridden
  methods private by each one calls.
------------------------------------------------------------------------
r53972 | nobu | 2016-02-29 17:36:29 +0900 (Mon, 29 Feb 2016) | 4 lines

fileutils.rb: reduce public

* lib/fileutils.rb (Verbose, NoWrite, DryRun): make extended
  methods public by each one calls.
------------------------------------------------------------------------
r53971 | nobu | 2016-02-29 17:36:28 +0900 (Mon, 29 Feb 2016) | 3 lines

fileutils.rb: unify method definition style

* lib/fileutils.rb: Unify to coding-style for method definition.
------------------------------------------------------------------------
r53970 | nobu | 2016-02-29 16:51:15 +0900 (Mon, 29 Feb 2016) | 5 lines

array.c: [DOC] remove trailing comma [ci skip]

* array.c (rb_ary_push_m): [DOC] Remove trailing comma from
  Array#push example, as other Array examples doesn't put trailing
  comma.  [Fix GH-1279]
------------------------------------------------------------------------
r53969 | nobu | 2016-02-29 16:31:56 +0900 (Mon, 29 Feb 2016) | 5 lines

mkconfig.rb: cross_compiling option

* common.mk, tool/mkconfig.rb: set cross_compiling option from
  Makefile, but not from rbconfig.rb, which is just going to be
  created by this command.
------------------------------------------------------------------------
r53968 | svn | 2016-02-29 14:54:25 +0900 (Mon, 29 Feb 2016) | 1 line

* 2016-02-29
------------------------------------------------------------------------
r53967 | nobu | 2016-02-29 14:54:24 +0900 (Mon, 29 Feb 2016) | 3 lines

ruby-style.el: add an instruction to load

[ci skip]
------------------------------------------------------------------------
r53966 | nobu | 2016-02-28 23:14:44 +0900 (Sun, 28 Feb 2016) | 3 lines

configure.in: fold summary

* configure.in: fold long lines in configuration summary
------------------------------------------------------------------------
r53965 | nobu | 2016-02-28 23:14:42 +0900 (Sun, 28 Feb 2016) | 4 lines

configure.in: summary

* configure.in: Add summary to end of configure output.
  [Fix GH-1277]
------------------------------------------------------------------------
r53964 | nobu | 2016-02-28 22:54:32 +0900 (Sun, 28 Feb 2016) | 4 lines

configure.in: no leading spaces

* configure.in (cflags, cppflags): remove unnecessary leading
  spaces.
------------------------------------------------------------------------
r53963 | svn | 2016-02-28 20:28:59 +0900 (Sun, 28 Feb 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53962 | seki | 2016-02-28 20:28:58 +0900 (Sun, 28 Feb 2016) | 4 lines

	* lib/drb/drb.rb (error_print): Add verbose failure messages and
	  avoid infamous DRb::DRbConnError. [Feature #12101]


------------------------------------------------------------------------
r53961 | nobu | 2016-02-28 13:41:38 +0900 (Sun, 28 Feb 2016) | 9 lines

NoMethodError#private_call?

* error.c (nometh_err_initialize): add private_call? parameter.
* error.c (nometh_err_private_call_p): add private_call? method,
  to tell if the exception raised in private form FCALL or VCALL.
  [Feature #12043]
* vm_eval.c (make_no_method_exception): append private_call?
  argument.
* vm_insnhelper.c (ci_missing_reason): copy FCALL flag.
------------------------------------------------------------------------
r53960 | nobu | 2016-02-28 10:39:30 +0900 (Sun, 28 Feb 2016) | 1 line

test_exception.rb: split test_name_error_info
------------------------------------------------------------------------
r53959 | svn | 2016-02-28 10:20:40 +0900 (Sun, 28 Feb 2016) | 1 line

* 2016-02-28
------------------------------------------------------------------------
r53958 | nobu | 2016-02-28 10:20:39 +0900 (Sun, 28 Feb 2016) | 21 lines

Clarify set intersection and union documentation

* array.c (rb_ary_and): clarify that set intersection returns the
  unique elements common to both arrays.

* array.c (rb_ary_or): clarify that union preserves the order from
  the given arrays.

- Most know what intersection means, but saying the operation
  excludes duplicates could be misleading ([1] & [1], duplicates
  excluded, might mean a result of []).
- Instead, saying intersection returns the unique elements common to both
  arrays is more concise and less ambiguous.
- The set union's documentation was incomplete in its describing
  preservation of order. Saying union preserves the order of the
  original array neglects the idea that the order of the elements
  in both arrays, as given, will be preserved.
- Instead, saying set union preserves the order from the given arrays (and
  adding an example) fully demonstrates the idea.

[Fix GH-1273] [ci skip]
------------------------------------------------------------------------
r53957 | duerst | 2016-02-27 17:06:17 +0900 (Sat, 27 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb, casefold.h: Reducing size of TitleCase
  table by eliminating duplicates.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53956 | nobu | 2016-02-27 14:10:44 +0900 (Sat, 27 Feb 2016) | 5 lines

test/unit: refine output in job_status=normal

* test/lib/test/unit.rb (Test::Unit::StatusLine#jobs_status): show
  status of only changed woker, not to show same lines repeatedly,
  in normal job_status mode.
------------------------------------------------------------------------
r53955 | nobu | 2016-02-27 13:16:44 +0900 (Sat, 27 Feb 2016) | 13 lines

test/unit: fix for the test

* test/lib/test/unit.rb (_run_parallel): make sure retrying
  message is a separate line.

* test/lib/test/unit.rb (_prepare_run): do not add Output if
  testing.

* test/lib/test/unit.rb (Skipping#failed): defer showing reports
  when showing skips, to be sorted.

* test/testunit/test_hideskip.rb (test_hideskip): fix assertion
  for output misordered by mixing output destinations.
------------------------------------------------------------------------
r53954 | nobu | 2016-02-27 11:01:57 +0900 (Sat, 27 Feb 2016) | 5 lines

test/unit: refine output in verbose mode

* test/lib/test/unit.rb (Test::Unit::StatusLine#_prepare_run): add
  StatusLine::Output even if job_status is not replace, to filter
  extra outputs and newlines.
------------------------------------------------------------------------
r53953 | nobu | 2016-02-27 10:56:44 +0900 (Sat, 27 Feb 2016) | 4 lines

test/unit: add --jobs-status=none

* test/lib/test/unit.rb (Test::Unit::StatusLine#setup_options):
  add :none to --jobs-status option.
------------------------------------------------------------------------
r53952 | svn | 2016-02-27 10:56:44 +0900 (Sat, 27 Feb 2016) | 1 line

* 2016-02-27
------------------------------------------------------------------------
r53951 | nobu | 2016-02-27 10:56:43 +0900 (Sat, 27 Feb 2016) | 4 lines

test/unit: no newlines to be chomped

* test/lib/test/unit.rb (Test::Unit::StatusLine::Output#print):
  matched part never contains a newline to be chomped.
------------------------------------------------------------------------
r53950 | nobu | 2016-02-26 16:18:26 +0900 (Fri, 26 Feb 2016) | 6 lines

README.md: fix linked file name [ci skip]

* README.md: fix linked file name, COPYING does not a suffix.
  [Fix GH-1265]

* README.ja.md: update a link too.
------------------------------------------------------------------------
r53949 | nobu | 2016-02-26 14:41:37 +0900 (Fri, 26 Feb 2016) | 5 lines

numeric.c: wrong type step should raise TypeError

* numeric.c (num_step_scan_args): comparison String with Numeric
  should raise TypeError. it is an invalid type, but not a
  mismatch the number of arguments.  [ruby-core:62430] [Bug #9810]
------------------------------------------------------------------------
r53948 | nobu | 2016-02-26 14:40:28 +0900 (Fri, 26 Feb 2016) | 5 lines

doc: editor local variables [ci skip]

* doc/extension.rdoc, doc/extension.ja.rdoc: add editor local
  variables, with commenting out by :enddoc: directives which are
  just ignored unless code object mode.  [Bug #12111]
------------------------------------------------------------------------
r53947 | hsbt | 2016-02-26 12:26:55 +0900 (Fri, 26 Feb 2016) | 3 lines

* doc/extension.ja.rdoc: removed rendering error caused by editor specific
  configuration on http://docs.ruby-lang.org/en/trunk/extension_rdoc.html .
  [Bug #12111][ruby-core:73990]
------------------------------------------------------------------------
r53946 | hsbt | 2016-02-26 11:25:40 +0900 (Fri, 26 Feb 2016) | 4 lines

* lib/xmlrpc.rb: Removed references to NQXML. It's obsoleted parser.
  [fix GH-1245][ruby-core:59593][Feature #9371]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.
------------------------------------------------------------------------
r53945 | hsbt | 2016-02-26 11:11:14 +0900 (Fri, 26 Feb 2016) | 2 lines

* lib/tmpdir.rb: Unify to coding-style for method definition.
  [fix GH-1252]
------------------------------------------------------------------------
r53944 | hsbt | 2016-02-26 11:03:03 +0900 (Fri, 26 Feb 2016) | 2 lines

* README.md: update markdown syntax for anchor tag.
  [fix GH-1265] Patch by @lukBarros
------------------------------------------------------------------------
r53943 | hsbt | 2016-02-26 10:57:58 +0900 (Fri, 26 Feb 2016) | 2 lines

* lib/irb.rb: avoid to needless truncation when using back_trace_limit option.
  [fix GH-1205][ruby-core:72773][Bug #11969]
------------------------------------------------------------------------
r53942 | svn | 2016-02-26 08:23:31 +0900 (Fri, 26 Feb 2016) | 1 line

* 2016-02-26
------------------------------------------------------------------------
r53941 | tenderlove | 2016-02-26 08:23:30 +0900 (Fri, 26 Feb 2016) | 84 lines

Reduce system calls by activating the `did_you_mean` gem.

Activating the gem puts the gem on the load path, where simply requiring
the file will search every gem that's installed until it can find a gem
that contains the `did_you_mean` file.

Calling RubyGems' `require` will search each installed gem until it can
find one that contains the file it should require.  This means that the
more gems you have installed, the longer it can take to require that
gem.

To see this in action, lets compare the number of `stat` calls for a
"bare require" vs the number of `stat` calls for a require that follows
a gem activation by using these two programs:

```
[aaron@TC rubygems (master)]$ cat req_dym.rb
begin
  require 'did_you_mean'
rescue LoadError
end
[aaron@TC rubygems (master)]$ cat gem_dym.rb
begin
  gem 'did_you_mean'
  require 'did_you_mean'
rescue Gem::LoadError, LoadError
end
```

The first program just requires the `did_you_mean` gem, where the second
one activates the gem, then requires it.  We can count the number of
`stat` calls using `dtrace`:

```
[aaron@TC rubygems (master)]$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean req_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
     283
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean gem_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
      13
```

The "bare require" version does over 10x the number of stat calls
compared to the "gem, then require" version.  Of course the number for
the first one depends on the number of gems you have installed that sort
before the `did_you_mean` gem.

Lets also look at trunk Ruby:

```
[aaron@TC rubygems (master)]$ ruby -v
ruby 2.4.0dev (2016-02-25 trunk 53940) [x86_64-darwin15]
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean req_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
    2325
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean gem_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
     685
```

This change will reduce the number of `stat` calls on trunk Ruby too,
but since this installation doesn't have the `did_you_mean` gem,
RubyGems is still reading every gem spec file so that it can raise a
`Gem::LoadError` exception with a nice error message.  If we can modify
RubyGems a little, it may be possible to drop the number of stat calls
even on a Ruby installation that doesn't have the `did_you_mean` gem.
------------------------------------------------------------------------
r53940 | nobu | 2016-02-25 21:36:25 +0900 (Thu, 25 Feb 2016) | 1 line

eval_error.c: constify
------------------------------------------------------------------------
r53939 | nobu | 2016-02-25 21:36:24 +0900 (Thu, 25 Feb 2016) | 6 lines

eval_error.c: remove warn_printf

* eval_error.c (warn_printf): remove.

* eval_error.c (error_pos_str): return error position string,
  split from error_pos.
------------------------------------------------------------------------
r53930 | duerst | 2016-02-25 19:04:59 +0900 (Thu, 25 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb: Adding possibility for debugging output
  for TitleCase table in casefold.h.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53928 | usa | 2016-02-25 18:54:11 +0900 (Thu, 25 Feb 2016) | 2 lines

* test/ruby/test_process.rb (test_execopts_open_chdir_m17n_path): it's originally for Windows.  should not ignore on the platform.

------------------------------------------------------------------------
r53919 | nobu | 2016-02-25 16:22:01 +0900 (Thu, 25 Feb 2016) | 4 lines

eval_error.c: error position format

* eval_error.c (error_print): use same error position format when
  no backtrace too.
------------------------------------------------------------------------
r53918 | svn | 2016-02-25 13:42:17 +0900 (Thu, 25 Feb 2016) | 1 line

* 2016-02-25
------------------------------------------------------------------------
r53917 | nobu | 2016-02-25 13:42:16 +0900 (Thu, 25 Feb 2016) | 6 lines

eval_error.c: colon in message

* eval_error.c (error_pos): include a clone after the position.

* eval_error.c (error_print, error_handle): do not print a colon
  if the error position is unavailable.
------------------------------------------------------------------------
r53916 | svn | 2016-02-24 22:32:02 +0900 (Wed, 24 Feb 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53915 | duerst | 2016-02-24 22:32:01 +0900 (Wed, 24 Feb 2016) | 7 lines

* include/ruby/oniguruma.h: Rearranging flag assignments and making
  space for titlecase indices; adding additional macros to add or
  extract titlecase index; adding comments for better documentation.
* enc/unicode.c: Moving some macros to include/ruby/oniguruma.h;
  activating use of titlecase indices.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53914 | akr | 2016-02-24 21:30:20 +0900 (Wed, 24 Feb 2016) | 3 lines

* random.c (limited_rand): Add a specialized path for the limit fits in 32 bit.


------------------------------------------------------------------------
r53913 | nobu | 2016-02-24 17:21:04 +0900 (Wed, 24 Feb 2016) | 9 lines

parse without $.

* io.c (rb_io_gets_internal): read one line from an IO without
  setting ARGF.lineno.

* parse.y (lex_io_gets): use rb_io_gets_internal not to affect
  $. global variable.

* ruby.c (load_file): no longer reset $.
------------------------------------------------------------------------
r53912 | nobu | 2016-02-24 11:42:40 +0900 (Wed, 24 Feb 2016) | 4 lines

parse.y: hide compile_option

* parse.y (parser_set_compile_option_flag): hide compile_option
  hash from ObjectSpace.
------------------------------------------------------------------------
r53911 | nobu | 2016-02-24 11:38:43 +0900 (Wed, 24 Feb 2016) | 4 lines

vm_method.c: for hidden object

* vm_method.c (rb_method_basic_definition_p): methods of hidden
  objects cannot be overridden, return TRUE.
------------------------------------------------------------------------
r53910 | nobu | 2016-02-24 11:20:45 +0900 (Wed, 24 Feb 2016) | 4 lines

numeric.c: micro optimizations

* numeric.c (flo_to_s, rb_fix2str): use rb_usascii_str_new instead
  of rb_usascii_str_new_cstr, when the length can be calculated.
------------------------------------------------------------------------
r53908 | svn | 2016-02-24 01:51:44 +0900 (Wed, 24 Feb 2016) | 1 line

* 2016-02-24
------------------------------------------------------------------------
r53907 | headius | 2016-02-24 01:51:43 +0900 (Wed, 24 Feb 2016) | 2 lines

* test/ruby/test_exception.rb: fix bad spawn argument (multiple
  args in single) in test_thread_signal_location.
------------------------------------------------------------------------
r53906 | duerst | 2016-02-23 21:53:10 +0900 (Tue, 23 Feb 2016) | 5 lines

* enc/unicode/case-folding.rb, casefold.h: Outputting actual titlecase
  data (new table, with indices from other tables).
* enc/unicode.c: Ignoring titlecase data indices for the moment.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53905 | nobu | 2016-02-23 16:59:17 +0900 (Tue, 23 Feb 2016) | 4 lines

iseq.h: remove trailing comma

* iseq.h (iseq_mark_ary_index): get rid of trailing comma and name
  the magic number for iseq_mark_ary_create.
------------------------------------------------------------------------
r53904 | duerst | 2016-02-23 15:21:55 +0900 (Tue, 23 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb, casefold.h: Reading casing data from
  SpecialCasing.txt.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53903 | headius | 2016-02-23 11:03:37 +0900 (Tue, 23 Feb 2016) | 1 line

Bump up timeout for slower-starting implementations/platforms.
------------------------------------------------------------------------
r53902 | headius | 2016-02-23 08:23:10 +0900 (Tue, 23 Feb 2016) | 2 lines

* test/ruby/test_math.rb: use 64 bits in test_override_bignum_to_f
  to ensure it's a bignum on all impls.
------------------------------------------------------------------------
r53901 | headius | 2016-02-23 08:22:56 +0900 (Tue, 23 Feb 2016) | 5 lines

* test/ruby/test_math.rb: override tests must always put to_f back


Conflicts:
	test/ruby/test_math.rb
------------------------------------------------------------------------
r53900 | svn | 2016-02-23 08:22:39 +0900 (Tue, 23 Feb 2016) | 1 line

* 2016-02-23
------------------------------------------------------------------------
r53899 | headius | 2016-02-23 08:22:39 +0900 (Tue, 23 Feb 2016) | 2 lines

* test/psych/test_emitter.rb: test_resizing_tags missing
  start_stream call, caused strict parsers like on JRuby to err.
------------------------------------------------------------------------
r53893 | nobu | 2016-02-22 23:54:31 +0900 (Mon, 22 Feb 2016) | 5 lines

ruby.c: remove unnecessary context

* ruby.c (process_options): remove unnecessary context.
  rb_parser_append_print and rb_parser_while_loop just append some
  nodes and do not depend on the context.
------------------------------------------------------------------------
r53892 | kazu | 2016-02-22 20:00:38 +0900 (Mon, 22 Feb 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r53891 | duerst | 2016-02-22 18:34:34 +0900 (Mon, 22 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb, casefold.h: Adding flag for title-case,
  not yet operational.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53890 | duerst | 2016-02-22 18:17:43 +0900 (Mon, 22 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb, casefold.h: Fixed bug that avoided inclusion
  of compatibility characters in uppper-/lower-case mappings.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53889 | svn | 2016-02-22 16:15:57 +0900 (Mon, 22 Feb 2016) | 1 line

* 2016-02-22
------------------------------------------------------------------------
r53888 | nobu | 2016-02-22 16:15:57 +0900 (Mon, 22 Feb 2016) | 4 lines

vm_core.h: CoreDataFromValue

* vm_core.h (CoreDataFromValue): split as an expression from
  GetCoreDataFromValue, which can be a statement only.
------------------------------------------------------------------------
r53887 | nobu | 2016-02-22 16:15:56 +0900 (Mon, 22 Feb 2016) | 4 lines

internal.h: shortcut macros

* internal.h (RRATIONAL_SET_{NUM,DEN}): shortcut macros for
  internal only.
------------------------------------------------------------------------
r53886 | nobu | 2016-02-21 19:42:40 +0900 (Sun, 21 Feb 2016) | 1 line

vm.c (vm_cref_new0): adjust indent [ci skip]
------------------------------------------------------------------------
r53885 | nobu | 2016-02-21 13:57:57 +0900 (Sun, 21 Feb 2016) | 4 lines

cgi/escape: Optimize CGI.unescape

* cgi/escape/escape.c: Optimize CGI.unescape performance by C ext
  for ASCII-compatible encodings.  [Fix GH-1250]
------------------------------------------------------------------------
r53884 | nobu | 2016-02-21 13:57:35 +0900 (Sun, 21 Feb 2016) | 4 lines

cgi/escape: Optimize CGI.unescapeHTML

* cgi/escape/escape.c: Optimize CGI.unescapeHTML performance by C
  ext for ASCII-compatible encodings.  [Fix GH-1242]
------------------------------------------------------------------------
r53883 | svn | 2016-02-21 13:52:05 +0900 (Sun, 21 Feb 2016) | 1 line

* 2016-02-21
------------------------------------------------------------------------
r53882 | nobu | 2016-02-21 13:52:04 +0900 (Sun, 21 Feb 2016) | 3 lines

NEWS: update [ci skip]

* NEWS: change of Symbol#match.  [Bug #11991]
------------------------------------------------------------------------
r53881 | nobu | 2016-02-20 18:36:08 +0900 (Sat, 20 Feb 2016) | 5 lines

test_dir_m17n.rb: fix ASCII-8BIT env

* test/ruby/test_dir_m17n.rb (test_glob_encoding): get rid of
  conversion when LC_ALL=C and filesystem encoding is ASCII-8BIT.
  [ruby-core:73868] [Bug #12081]
------------------------------------------------------------------------
r53880 | normal | 2016-02-20 15:39:14 +0900 (Sat, 20 Feb 2016) | 3 lines

doc/extension.rdoc: update paths for defs/ directory

These files were moved in r19844
------------------------------------------------------------------------
r53879 | nobu | 2016-02-20 14:44:52 +0900 (Sat, 20 Feb 2016) | 4 lines

Fix Module#module_eval rdoc [ci skip]

* vm_eval.c (rb_mod_module_eval): [DOC] Fix documentation
  signature for Module#module_eval.  [Fix GH-1258]
------------------------------------------------------------------------
r53878 | nobu | 2016-02-20 14:41:20 +0900 (Sat, 20 Feb 2016) | 4 lines

Update README.md

* README.md: a few grammatical changes to the main Ruby README.md.
  [Fix GH-1259]
------------------------------------------------------------------------
r53877 | nobu | 2016-02-20 13:04:59 +0900 (Sat, 20 Feb 2016) | 5 lines

dir.c: paths as UTF-8

* dir.c (push_pattern, push_glob): deal with read paths as UTF-8
  to stat later, on Windows as well as OS X.
  [ruby-core:73868] [Bug #12081]
------------------------------------------------------------------------
r53876 | svn | 2016-02-20 01:54:09 +0900 (Sat, 20 Feb 2016) | 1 line

* 2016-02-20
------------------------------------------------------------------------
r53875 | nobu | 2016-02-20 01:54:08 +0900 (Sat, 20 Feb 2016) | 4 lines

object.c: fix error message

* object.c (rb_mod_const_get): make error message at uninterned
  string consistent with symbols.  [ruby-dev:49498] [Bug #12089]
------------------------------------------------------------------------
r53874 | nobu | 2016-02-19 23:38:28 +0900 (Fri, 19 Feb 2016) | 4 lines

find.rb: raise with the name

* lib/find.rb (Find#find): raise with the given path name if it
  does not exist.  [ruby-dev:49497] [Bug #12087]
------------------------------------------------------------------------
r53873 | nobu | 2016-02-19 16:58:09 +0900 (Fri, 19 Feb 2016) | 1 line

test/ruby: suppress runtime warnings
------------------------------------------------------------------------
r53872 | nobu | 2016-02-19 16:48:02 +0900 (Fri, 19 Feb 2016) | 1 line

test/ruby: suppress parser warnings
------------------------------------------------------------------------
r53871 | nobu | 2016-02-19 16:45:58 +0900 (Fri, 19 Feb 2016) | 1 line

test: use assert_not_*
------------------------------------------------------------------------
r53870 | duerst | 2016-02-19 12:45:32 +0900 (Fri, 19 Feb 2016) | 3 lines

* enc/unicode.c: Activated use of case mapping data in CaseUnfold_11 array.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53869 | svn | 2016-02-19 11:09:07 +0900 (Fri, 19 Feb 2016) | 1 line

* 2016-02-19
------------------------------------------------------------------------
r53868 | nobu | 2016-02-19 11:09:06 +0900 (Fri, 19 Feb 2016) | 4 lines

extmk.rb: cygwin case

* ext/extmk.rb: add cygwin case, nothing excluded.
  [ruby-core:73806] [Bug#12071]
------------------------------------------------------------------------
r53867 | kazu | 2016-02-18 21:33:48 +0900 (Thu, 18 Feb 2016) | 1 line

fix output in EXAMPLES [ci skip]
------------------------------------------------------------------------
r53866 | nobu | 2016-02-18 21:06:20 +0900 (Thu, 18 Feb 2016) | 4 lines

string.c: Symbol#match

* string.c (sym_match_m): delegate to String#match but not
  String#=~.  [ruby-core:72864] [Bug #11991]
------------------------------------------------------------------------
r53865 | nobu | 2016-02-18 16:53:13 +0900 (Thu, 18 Feb 2016) | 4 lines

downloader.rb: defer warning

* tool/downloader.rb (Downloader.download): warn using http only
  when really downloading.
------------------------------------------------------------------------
r53864 | svn | 2016-02-18 14:29:19 +0900 (Thu, 18 Feb 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53863 | sorah | 2016-02-18 14:29:18 +0900 (Thu, 18 Feb 2016) | 6 lines

* re.c: Add MatchData#named_captures
  [Feature #11999] [ruby-core:72897]

* test/ruby/test_regexp.rb(test_match_data_named_captures): Test for above.

* NEWS: News about MatchData#named_captures.
------------------------------------------------------------------------
r53862 | nobu | 2016-02-18 00:16:37 +0900 (Thu, 18 Feb 2016) | 3 lines

test_dir.rb: Dir.empty? with directories

* test/ruby/test_dir.rb (test_empty): check with directories.
------------------------------------------------------------------------
r53861 | nobu | 2016-02-18 00:14:03 +0900 (Thu, 18 Feb 2016) | 3 lines

test_dir.rb: Dir.empty? with dot file

* test/ruby/test_dir.rb (test_empty): check with a dot file.
------------------------------------------------------------------------
r53860 | svn | 2016-02-18 00:00:11 +0900 (Thu, 18 Feb 2016) | 1 line

* 2016-02-18
------------------------------------------------------------------------
r53859 | nobu | 2016-02-18 00:00:10 +0900 (Thu, 18 Feb 2016) | 1 line

ChangeLog: remove duplicate entry [ci skip]
------------------------------------------------------------------------
r53858 | kazu | 2016-02-17 23:33:31 +0900 (Wed, 17 Feb 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r53857 | usa | 2016-02-17 23:21:57 +0900 (Wed, 17 Feb 2016) | 2 lines

* test/ruby/test_dir.rb (TestDir#test_empty?): fix a platform dependent test.

------------------------------------------------------------------------
r53856 | nobu | 2016-02-17 21:42:00 +0900 (Wed, 17 Feb 2016) | 5 lines

id.def: $~ and $_

* defs/id.def (predefined): add idLASTLINE and idBACKREF for $~
  and $_ respectively.
* parse.y: use idLASTLINE and idBACKREF instead of rb_intern.
------------------------------------------------------------------------
r53855 | nobu | 2016-02-17 20:24:09 +0900 (Wed, 17 Feb 2016) | 4 lines

string.c: fix rb_str_init

* string.c (rb_str_init): fix segfault and memory leak, consider
  wide char encoding terminator.
------------------------------------------------------------------------
r53854 | naruse | 2016-02-17 19:15:28 +0900 (Wed, 17 Feb 2016) | 1 line

Additional fix and tests for r53851
------------------------------------------------------------------------
r53853 | nobu | 2016-02-17 17:29:58 +0900 (Wed, 17 Feb 2016) | 4 lines

assertions.rb: fix assert_no_memory_leak

* test/lib/test/unit/assertions.rb (assert_no_memory_leak): fix
  path of memory_status.rb, as this method has been moved.
------------------------------------------------------------------------
r53852 | nobu | 2016-02-17 16:37:20 +0900 (Wed, 17 Feb 2016) | 1 line

remove unnecessary declaration so that rdoc works
------------------------------------------------------------------------
r53851 | naruse | 2016-02-17 16:24:13 +0900 (Wed, 17 Feb 2016) | 3 lines

fix rubyspec error from r53850

http://rubyci.s3.amazonaws.com/tk2-243-31075/ruby-trunk/log/20160217T061402Z.fail.html.gz
------------------------------------------------------------------------
r53850 | naruse | 2016-02-17 12:21:35 +0900 (Wed, 17 Feb 2016) | 2 lines

* string.c (rb_str_init): introduce String.new(capacity: size)
  [Feature #12024]
------------------------------------------------------------------------
r53849 | nobu | 2016-02-17 11:54:50 +0900 (Wed, 17 Feb 2016) | 4 lines

numeric.c: adjust types

* numeric.c (coerce_rescue, coerce_rescue_quiet): rescue functions
  should have errinfo too.
------------------------------------------------------------------------
r53848 | svn | 2016-02-17 11:38:09 +0900 (Wed, 17 Feb 2016) | 1 line

* 2016-02-17
------------------------------------------------------------------------
r53847 | nobu | 2016-02-17 11:38:09 +0900 (Wed, 17 Feb 2016) | 4 lines

numeric.c: adjust types

* numeric.c (coerce_body, coerce_rescue, coerce_rescue_quiet):
  adjust parameter types for rb_rescue.
------------------------------------------------------------------------
r53846 | kazu | 2016-02-16 21:25:54 +0900 (Tue, 16 Feb 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r53845 | kazu | 2016-02-16 21:25:53 +0900 (Tue, 16 Feb 2016) | 1 line

fix indent [ci skip]
------------------------------------------------------------------------
r53844 | kazu | 2016-02-16 21:25:51 +0900 (Tue, 16 Feb 2016) | 1 line

ChangeLog should be us-ascii [ci skip]
------------------------------------------------------------------------
r53843 | duerst | 2016-02-16 19:10:37 +0900 (Tue, 16 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb, casefold.h: Used only first element
  (rather than all) of target in CaseUnfold_11 array.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53842 | nobu | 2016-02-16 18:25:08 +0900 (Tue, 16 Feb 2016) | 4 lines

numeric.c: fix segfault

* numeric.c (compare_with_zero): fix variable name, rb_cmperr
  requires VALUEs but not an ID.
------------------------------------------------------------------------
r53841 | nobu | 2016-02-16 17:34:47 +0900 (Tue, 16 Feb 2016) | 4 lines

dir.c: Dir.empty?

* dir.c (rb_dir_s_empty_p): add Dir.empty? method, which tells the
  argument is the name of an empty directory.  [Feature #10121]
------------------------------------------------------------------------
r53840 | nobu | 2016-02-16 09:51:48 +0900 (Tue, 16 Feb 2016) | 6 lines

rbinstall.rb: drive letter in without_destdir

* tool/rbinstall.rb (without_destdir): just strip a drive letter
  which is prepended by with_destdir.
  pointed out by @DavidEGrayson.
  https://github.com/ruby/ruby/commit/0e5f9ae#commitcomment-16101763
------------------------------------------------------------------------
r53839 | naruse | 2016-02-16 04:42:59 +0900 (Tue, 16 Feb 2016) | 4 lines

* insns.def (opt_plus): simply use LONG2NUM() instead of wrongly
      complex overflow case.

* insns.def (opt_sub): ditto.
------------------------------------------------------------------------
r53838 | nobu | 2016-02-16 02:50:08 +0900 (Tue, 16 Feb 2016) | 6 lines

rbinstall.rb: drive letter in without_destdir

* tool/rbinstall.rb (without_destdir): compare with the destdir
  after stripping a drive letter, on dosish platforms.
  pointed out by @DavidEGrayson.
  https://github.com/ruby/ruby/commit/d0cf23b#commitcomment-16100407
------------------------------------------------------------------------
r53837 | svn | 2016-02-16 02:41:47 +0900 (Tue, 16 Feb 2016) | 1 line

* 2016-02-16
------------------------------------------------------------------------
r53836 | nobu | 2016-02-16 02:41:46 +0900 (Tue, 16 Feb 2016) | 5 lines

parse.y: short circuit by result

* parse.y (parse_ident): short circuit by result, as only
  tIDENTIFIER can be a local variable, but tFID and tCONSTANT not.
  fix up r53834.
------------------------------------------------------------------------
r53835 | nobu | 2016-02-15 15:44:36 +0900 (Mon, 15 Feb 2016) | 5 lines

parse.y: kwarg to method with same name variable

* parse.y (parse_ident): allow keyword arguments just after a
  method where the same name local variable is defined.
  [ruby-core:73816] [Bug#12073]
------------------------------------------------------------------------
r53834 | nobu | 2016-02-15 15:06:31 +0900 (Mon, 15 Feb 2016) | 5 lines

parse.y: simplify local ID condition

* parse.y (tokenize_ident, parse_ident): ident in tokenize_ident()
  can be a local id only when called from parse_ident(), but never
  from parse_gvar() and parse_atmark().
------------------------------------------------------------------------
r53833 | duerst | 2016-02-15 14:43:55 +0900 (Mon, 15 Feb 2016) | 3 lines

* enc/unicode/case-folding.rb: Added debugging option
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53832 | nobu | 2016-02-15 14:15:33 +0900 (Mon, 15 Feb 2016) | 5 lines

bignum.c: micro optimization

* bignum.c (rb_big_uminus, bigsub_int): use BIGNUM_NEGATE.

* internal.h (BIGNUM_NEGATE): simplify negation.
------------------------------------------------------------------------
r53831 | nobu | 2016-02-15 14:09:59 +0900 (Mon, 15 Feb 2016) | 3 lines

use particlar macros

* bignum.c: use particlar macros for positive/negative conditions.
------------------------------------------------------------------------
r53830 | nobu | 2016-02-15 13:23:15 +0900 (Mon, 15 Feb 2016) | 4 lines

win32/resolv.rb: invert the condition

* ext/win32/lib/win32/resolv.rb: invert the condition to return
  immediately in the future.
------------------------------------------------------------------------
r53829 | nobu | 2016-02-15 12:42:09 +0900 (Mon, 15 Feb 2016) | 4 lines

win32/resolv.rb: check pointer size

* ext/win32/lib/win32/resolv.rb: check pointer size first, NT if
  it is larger than 4 as Windows 9X are 32-bit mode only.
------------------------------------------------------------------------
r53828 | nobu | 2016-02-15 12:29:00 +0900 (Mon, 15 Feb 2016) | 4 lines

avoid ruby-mode.el bug

* ext/win32/lib/win32/{resolv,resolv9x}.rb: get rid of
  ruby-mode.el of Emacs 24.
------------------------------------------------------------------------
r53827 | svn | 2016-02-15 12:29:00 +0900 (Mon, 15 Feb 2016) | 1 line

* 2016-02-15
------------------------------------------------------------------------
r53826 | nobu | 2016-02-15 12:28:59 +0900 (Mon, 15 Feb 2016) | 4 lines

split win32/resolv9x.rb

* ext/win32/lib/win32/resolv9x.rb: split code for Windows 9x from
  resolv.rb.  now it is rarely used.
------------------------------------------------------------------------
r53823 | nobu | 2016-02-14 17:52:38 +0900 (Sun, 14 Feb 2016) | 4 lines

test_cgi_util.rb: test_cgi_unescapeHTML_invalid

* test/cgi/test_cgi_util.rb (test_cgi_unescapeHTML_invalid): test
  for invalid escaped HTML, borrowed from rubyspec.
------------------------------------------------------------------------
r53822 | nobu | 2016-02-14 17:37:05 +0900 (Sun, 14 Feb 2016) | 4 lines

test_exception.rb: fix commit miss

* test/ruby/test_exception.rb: remove duplicate method.  fix
  commit miss at r53819.
------------------------------------------------------------------------
r53821 | nobu | 2016-02-14 17:32:15 +0900 (Sun, 14 Feb 2016) | 5 lines

mkmf.rb: Do not modify caller strings

* lib/mkmf.rb (with_{cpp,c,ld}flags): copy caller strings not to
  be modified, in append_{cpp,c,ld}flags respectively.
  [Fix GH-1246]
------------------------------------------------------------------------
r53820 | svn | 2016-02-14 16:19:23 +0900 (Sun, 14 Feb 2016) | 1 line

* 2016-02-14
------------------------------------------------------------------------
r53819 | nobu | 2016-02-14 16:19:23 +0900 (Sun, 14 Feb 2016) | 4 lines

not overwrite cause

* eval.c (setup_exception): set the cause only if it is explicitly
  given or not set yet.  [Bug #12068]
------------------------------------------------------------------------
r53818 | akr | 2016-02-13 21:45:59 +0900 (Sat, 13 Feb 2016) | 2 lines

* hash.c (rb_hash_invert): [DOC] more examples.

------------------------------------------------------------------------
r53817 | nobu | 2016-02-13 17:31:12 +0900 (Sat, 13 Feb 2016) | 4 lines

CIDR in no_proxy

* lib/uri/generic.rb (URI::Generic#find_proxy): support CIDR in
  no_proxy.  [ruby-core:73769] [Feature#12062]
------------------------------------------------------------------------
r53816 | nobu | 2016-02-13 17:12:21 +0900 (Sat, 13 Feb 2016) | 14 lines

no_proxy with whitespaces and leading dots

* lib/uri/generic.rb (find_proxy): exclude white-spaces and allow
  for a leading dot in the domain name in no_proxy.
  [ruby-core:54542] [Feature #8317]

The previous implementation wouldn't allow for white-spaces nor a leading dot
in the domain name. The latter is described in the wget documentation as a valid case.

By being more strict on the characters, which are counted to a domainname,
we allow for white-spaces.
Also, a possible leading dot will be handled gracefully.

[Fix GH-285]
------------------------------------------------------------------------
r53815 | nobu | 2016-02-13 16:52:25 +0900 (Sat, 13 Feb 2016) | 1 line

test/uri/test_generic.rb: split test_find_proxy
------------------------------------------------------------------------
r53814 | svn | 2016-02-13 11:00:55 +0900 (Sat, 13 Feb 2016) | 1 line

* 2016-02-13
------------------------------------------------------------------------
r53813 | nobu | 2016-02-13 11:00:54 +0900 (Sat, 13 Feb 2016) | 4 lines

domainname no_proxy assertions

* test/uri/test_generic.rb (test_find_proxy): assertions for
  no_proxy of domainname.
------------------------------------------------------------------------
r53812 | nobu | 2016-02-12 13:24:10 +0900 (Fri, 12 Feb 2016) | 4 lines

drbtest.rb: make command an array

* test/drb/drbtest.rb (DRbService): make @@ruby an array to be
  consistent with r35424.
------------------------------------------------------------------------
r53811 | nobu | 2016-02-12 12:21:17 +0900 (Fri, 12 Feb 2016) | 5 lines

error.c: fix doc [ci skip]

* error.c (name_err_initialize, nometh_err_initialize): [DOC] fix
  argument positions.  optional parameters except for the message
  are placed at the last.
------------------------------------------------------------------------
r53810 | nobu | 2016-02-12 11:50:09 +0900 (Fri, 12 Feb 2016) | 4 lines

net/ftp.rb: NullSocket#closed?

* net/ftp.rb: add NullSocket#closed? to fix closing not opened
  connection.  [Fix GH-1232]
------------------------------------------------------------------------
r53809 | svn | 2016-02-12 11:17:59 +0900 (Fri, 12 Feb 2016) | 1 line

* 2016-02-12
------------------------------------------------------------------------
r53808 | nobu | 2016-02-12 11:17:58 +0900 (Fri, 12 Feb 2016) | 4 lines

Update re.c [ci skip]

* re.c (rb_reg_initialize_m): [DOC] fix missing right bracket.
  [Fix GH-1243]
------------------------------------------------------------------------
r53807 | nobu | 2016-02-11 14:58:16 +0900 (Thu, 11 Feb 2016) | 5 lines

configure.in: fix universal binary

* configure.in (RUBY_CHECK_SIZEOF, RUBY_DEFINT): fix for types
  which are conditionally available depending on architectures
  when universal binary, e.g., __int128.
------------------------------------------------------------------------
r53806 | nobu | 2016-02-11 14:32:22 +0900 (Thu, 11 Feb 2016) | 4 lines

configure.in: use quadrigraphs

* configure.in (RUBY_DEFINT): use quadrigraphs instead of bare
  hash signs not to comment out closing parenthesis.
------------------------------------------------------------------------
r53805 | naruse | 2016-02-11 06:29:50 +0900 (Thu, 11 Feb 2016) | 1 line

* configure.in (RUBY_DEFINT): use Parameter Expansion.
------------------------------------------------------------------------
r53804 | naruse | 2016-02-11 06:29:48 +0900 (Thu, 11 Feb 2016) | 1 line

fix r53801: the argument should remove UNSIGNED
------------------------------------------------------------------------
r53803 | svn | 2016-02-11 05:57:49 +0900 (Thu, 11 Feb 2016) | 1 line

* 2016-02-11
------------------------------------------------------------------------
r53802 | naruse | 2016-02-11 05:57:49 +0900 (Thu, 11 Feb 2016) | 4 lines

* configure.in (int128_t): don't check HAVE_XXX (for example
  HAVE___INT128) because RUBY_CHECK_SIZEOF() don't define it for
  config.h and use of $ac_cv_sizeof___int128 alternates the check.
  (and don't need to define because users shouldn't know that)
------------------------------------------------------------------------
r53801 | nobu | 2016-02-10 16:06:12 +0900 (Wed, 10 Feb 2016) | 4 lines

configure.in: remove unnecessary qualifier

* configure.in (RUBY_DEFINT): remove unnecessary unsigned
  qualifier from preprocessing symbols.
------------------------------------------------------------------------
r53800 | nobu | 2016-02-10 15:28:55 +0900 (Wed, 10 Feb 2016) | 5 lines

ARFLAGS needs a space

* configure.in (ARFLAGS): needs a trailing space to separate from
  the target library name, whereas VC linker flag must not
  separate from its argument.
------------------------------------------------------------------------
r53799 | nobu | 2016-02-10 13:16:53 +0900 (Wed, 10 Feb 2016) | 4 lines

configure.in: unique names

* configure.in (RUBY_CHECK_SIZEOF): make variable names unique
  with rbcv_sizeof_ prefix.
------------------------------------------------------------------------
r53798 | nobu | 2016-02-10 12:03:57 +0900 (Wed, 10 Feb 2016) | 4 lines

check ar D flag

* configure.in (ARFLAGS): check if deterministic mode flag is
  effective, which is on by default on Ubuntu.
------------------------------------------------------------------------
r53797 | svn | 2016-02-10 03:43:46 +0900 (Wed, 10 Feb 2016) | 1 line

* 2016-02-10
------------------------------------------------------------------------
r53796 | naruse | 2016-02-10 03:43:45 +0900 (Wed, 10 Feb 2016) | 1 line

Add example for Method#parameters from [ruby-core:19759]
------------------------------------------------------------------------
r53795 | nobu | 2016-02-09 19:18:50 +0900 (Tue, 09 Feb 2016) | 4 lines

ruby.c: fixup r53791

* ruby.c (DEFAULT_FEATURES): debug features are no longer set
  since r53791.
------------------------------------------------------------------------
r53794 | kazu | 2016-02-09 17:55:18 +0900 (Tue, 09 Feb 2016) | 1 line

* ruby.c (dump_option): fix a typo.
------------------------------------------------------------------------
r53793 | nobu | 2016-02-09 17:32:20 +0900 (Tue, 09 Feb 2016) | 4 lines

ruby.c: available list from enum

* ruby.c (feature_option, debug_option, dump_option): build
  available list in warning messages from enum lists.
------------------------------------------------------------------------
r53792 | nobu | 2016-02-09 17:24:37 +0900 (Tue, 09 Feb 2016) | 3 lines

ruby.c: EACH_DUMPS

* ruby.c (EACH_DUMPS): define the list of dumping feature names.
------------------------------------------------------------------------
r53791 | nobu | 2016-02-09 16:42:21 +0900 (Tue, 09 Feb 2016) | 4 lines

ruby.c: set feature bits only

* ruby.c (DEFAULT_FEATURES): set feature bits only, excluding
  debug features.
------------------------------------------------------------------------
r53790 | sonots | 2016-02-09 16:41:51 +0900 (Tue, 09 Feb 2016) | 2 lines

* lib/logger.rb: Remove block from Logger.add as it's not needed
  patch provided by Daniel Lobato Garci [fix GH-1240] [Bug #12054]
------------------------------------------------------------------------
r53789 | nobu | 2016-02-09 16:36:27 +0900 (Tue, 09 Feb 2016) | 4 lines

ruby.c: EACH_DEBUG_FEATURES

* ruby.c (EACH_DEBUG_FEATURES): define the list of debug feature
  names.
------------------------------------------------------------------------
r53788 | nobu | 2016-02-09 15:57:09 +0900 (Tue, 09 Feb 2016) | 3 lines

mkrunnable.rb: symlink on Windows [ci skip]

* tool/mkrunnable.rb: File.symlink is supported on Windows now.
------------------------------------------------------------------------
r53787 | nobu | 2016-02-09 15:50:53 +0900 (Tue, 09 Feb 2016) | 4 lines

mkrunnable.rb: clean link before symlink [ci skip]

* tool/mkrunnable.rb (clean_link): clean link before symlink not
  to make a symlink in the linked directory.
------------------------------------------------------------------------
r53786 | nobu | 2016-02-09 14:47:12 +0900 (Tue, 09 Feb 2016) | 4 lines

rename ADD_FEATURE

* ruby.c (ADD_FEATURE_NAME): rename ADD_FEATURE, as it does not
  add a feature, but just append a name to the message string.
------------------------------------------------------------------------
r53785 | zzak | 2016-02-09 14:33:35 +0900 (Tue, 09 Feb 2016) | 3 lines

* ext/zlib/zlib.c: Document mtime header behavior with patch by @schneems
  Fixes [GH-1129]: https://github.com/ruby/ruby/pull/1129

------------------------------------------------------------------------
r53784 | zzak | 2016-02-09 13:54:39 +0900 (Tue, 09 Feb 2016) | 3 lines

* re.c: Remove deprecated kcode argument from Regexp.new and compile
  patch provided by Dylan Pulliam [Bug #11495]

------------------------------------------------------------------------
r53783 | nobu | 2016-02-09 11:09:24 +0900 (Tue, 09 Feb 2016) | 3 lines

.gdbinit: improve rb_imemo [ci skip]

* .gdbinit (rp_imemo): support imemo_ment and imemo_iseq.
------------------------------------------------------------------------
r53782 | svn | 2016-02-09 10:51:38 +0900 (Tue, 09 Feb 2016) | 1 line

* 2016-02-09
------------------------------------------------------------------------
r53781 | nobu | 2016-02-09 10:51:38 +0900 (Tue, 09 Feb 2016) | 3 lines

Support 1.8

Merged https://github.com/rubygems/rubygems/commit/72b3701
------------------------------------------------------------------------
r53780 | svn | 2016-02-08 21:26:36 +0900 (Mon, 08 Feb 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53779 | duerst | 2016-02-08 21:26:35 +0900 (Mon, 08 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb, enc/unicode/casefold.h: Flags for
  upper/lower conversion added (titlecase and SpecialCasing still missing)
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53778 | duerst | 2016-02-08 20:44:12 +0900 (Mon, 08 Feb 2016) | 4 lines

* string.c, enc/unicode.c: Disassociating ONIGENC_CASE_FOLD flag from
  ONIGENC_CASE_DOWNCASE.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53777 | nobu | 2016-02-08 14:09:49 +0900 (Mon, 08 Feb 2016) | 5 lines

test_gem_remote_fetcher.rb: terminate watcher

* test/rubygems/test_gem_remote_fetcher.rb (stop_servers):
  terminate timeout watcher thread to fix thread leak.  re-apply
  r53439.
------------------------------------------------------------------------
r53776 | nobu | 2016-02-08 14:01:00 +0900 (Mon, 08 Feb 2016) | 4 lines

unicode.c: magic numbers

* enc/unicode.c (I_WITH_DOT_ABOVE, DOTLESS_i, DOT_ABOVE): name
  magic numbers.
------------------------------------------------------------------------
r53775 | duerst | 2016-02-08 13:00:31 +0900 (Mon, 08 Feb 2016) | 7 lines

* enc/unicode.c: Shortened macros for enc/unicode/casefold.h to
  single-letter; use flags in casefold.h for logic.
* enc/unicode/case-folding.rb: Added flag for case folding.
  Changed parameter passing.
* enc/unicode/casefold.h: New flags added.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53774 | nobu | 2016-02-08 12:44:48 +0900 (Mon, 08 Feb 2016) | 4 lines

string.c: remove magic number

* string.c (rb_str_dump): share same string literal instead of a
  magic number.
------------------------------------------------------------------------
r53773 | nobu | 2016-02-08 12:41:16 +0900 (Mon, 08 Feb 2016) | 4 lines

string.c: use encoding index

* string.c (rb_external_str_with_enc, rb_str_concat, rb_str_dump):
  use encoding index as shortcut without rb_encoding.
------------------------------------------------------------------------
r53772 | nobu | 2016-02-08 10:30:22 +0900 (Mon, 08 Feb 2016) | 4 lines

ruby.c: err ambiguous feature name  [ci skip]

* ruby.c (feature_option): raise a runtime error if ambiguous
  feature name is given, in the future.  [Bug #12050]
------------------------------------------------------------------------
r53771 | duerst | 2016-02-08 09:44:10 +0900 (Mon, 08 Feb 2016) | 4 lines

* common.mk: Removed enc/unicode/casefold.h from automatic build because
  some CI systems don't have gperf. Creation of enc/unicode/casefold.h
  is now possible with make unicode-up. This is intended as a temporary measure.

------------------------------------------------------------------------
r53770 | svn | 2016-02-08 04:40:06 +0900 (Mon, 08 Feb 2016) | 1 line

* 2016-02-08
------------------------------------------------------------------------
r53769 | nagachika | 2016-02-08 04:40:05 +0900 (Mon, 08 Feb 2016) | 1 line

* ChangeLog: revive an entry for r53762 accidentally removed at r53764.
------------------------------------------------------------------------
r53768 | svn | 2016-02-07 22:10:21 +0900 (Sun, 07 Feb 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53767 | duerst | 2016-02-07 22:10:20 +0900 (Sun, 07 Feb 2016) | 7 lines

* common.mk: Added two more precondition files for enc/unicode/casefold.h
* enc/unicode.c: Added shortening macros for enc/unicode/casefold.h
* enc/unicode/case-folding.rb: Fixed file encoding for CaseFolding.txt
  to ASCII-8BIT (should fix some ci errors). Clarified usage. Created
  class MapItem. Partially implemented class CaseMapping.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53766 | nobu | 2016-02-07 19:21:27 +0900 (Sun, 07 Feb 2016) | 3 lines

ruby.c: EACH_FEATURES

* ruby.c (EACH_FEATURES): define the list of feature names.
------------------------------------------------------------------------
r53765 | duerst | 2016-02-07 14:12:44 +0900 (Sun, 07 Feb 2016) | 3 lines

* enc/unicode/case-folding.rb: Fixing parameter passing.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53764 | duerst | 2016-02-07 11:44:14 +0900 (Sun, 07 Feb 2016) | 4 lines

* enc/unicode/case-folding.rb: New classes CaseMapping/CaseMappingDummy
  to pass as parameters; not yet implemented or used.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53763 | nobu | 2016-02-07 11:40:52 +0900 (Sun, 07 Feb 2016) | 4 lines

ruby.c: show feature names

* ruby.c (feature_option): show possible feature names when
  unknown argument is given.
------------------------------------------------------------------------
r53762 | duerst | 2016-02-07 11:16:12 +0900 (Sun, 07 Feb 2016) | 4 lines

* common.mk: using new option in recipe for enc/unicode/casefold.h
* enc/unicode/case-folding.rb: Correctly specify argument to new option.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53761 | duerst | 2016-02-07 10:43:39 +0900 (Sun, 07 Feb 2016) | 6 lines

(this commit message applies to the previous commit)
* common.mk: explicit recipe for enc/unicode/casefold.h
* enc/unicode/case-folding.rb: Adding -m option to prepare for using
  multiple data files.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53760 | svn | 2016-02-07 10:39:27 +0900 (Sun, 07 Feb 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53759 | duerst | 2016-02-07 10:39:26 +0900 (Sun, 07 Feb 2016) | 1 line


------------------------------------------------------------------------
r53758 | svn | 2016-02-07 02:56:47 +0900 (Sun, 07 Feb 2016) | 1 line

* 2016-02-07
------------------------------------------------------------------------
r53757 | naruse | 2016-02-07 02:56:47 +0900 (Sun, 07 Feb 2016) | 5 lines

Revert "check __int64_t and __int128_t"

This reverts commit r53750.
Those types seems to be for C++, and breaks old GCC.
http://rubyci.s3.amazonaws.com/c64b/ruby-trunk/log/20160206T130202Z.diff.html.gz
------------------------------------------------------------------------
r53756 | naruse | 2016-02-06 23:45:49 +0900 (Sat, 06 Feb 2016) | 1 line

Fix r53748; the datafile includes non ASCII
------------------------------------------------------------------------
r53755 | nobu | 2016-02-06 23:23:26 +0900 (Sat, 06 Feb 2016) | 3 lines

fix types order

* configure.in: types without _t have prior than types with _t.
------------------------------------------------------------------------
r53754 | nobu | 2016-02-06 22:31:07 +0900 (Sat, 06 Feb 2016) | 4 lines

ASCII-incompatible escape

* lib/cgi/util.rb (escapeHTML, unescapeHTML): consider
  ASCII-incompatible encodings.  [Fix GH-1239]
------------------------------------------------------------------------
r53753 | nobu | 2016-02-06 21:02:09 +0900 (Sat, 06 Feb 2016) | 3 lines

lex.c.blt: update

* lex.c.blt: follows r52429, not removing casts to int.
------------------------------------------------------------------------
r53752 | nobu | 2016-02-06 20:51:40 +0900 (Sat, 06 Feb 2016) | 5 lines

get rid of ruby-mode.el bugs

* lib/optparse.rb: get rid of confusing ruby-mode.el of Emacs 24,
  - if-end expression inside an expression
  - a comma just followed by a bar
------------------------------------------------------------------------
r53751 | svn | 2016-02-06 20:44:34 +0900 (Sat, 06 Feb 2016) | 1 line

* 2016-02-06
------------------------------------------------------------------------
r53750 | nobu | 2016-02-06 20:44:33 +0900 (Sat, 06 Feb 2016) | 4 lines

check __int64_t and __int128_t

* configure.in: check __int64_t and __int128_t for RUBY_DEFINT on
  OS X.
------------------------------------------------------------------------
r53749 | duerst | 2016-02-06 15:18:38 +0900 (Sat, 06 Feb 2016) | 8 lines

* test/ruby/enc/test_regex_casefold.rb: Added data-based testing for
  String#downcase :fold.
* enc/unicode.c: Fixed a range error (lowest non-ASCII character affected
  by case operations is U+00B5, MICRO SIGN)
* test/ruby/enc/test_case_mapping.rb: Explicit test for case folding of
  MICRO SIGN to Greek mu.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53748 | duerst | 2016-02-06 14:51:33 +0900 (Sat, 06 Feb 2016) | 8 lines

* test/ruby/enc/test_regex_casefold.rb: Tests for three case folding
  primitives (mbc_case_fold, get_case_fold_codes_by_str,
  apply_all_case_fold) in the various encodings. Currently only known
  good encodings are tested to avoid test failures. For bug hunting,
  start by adding more encodings with
      generate_test_casefold encoding
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53747 | duerst | 2016-02-06 14:37:29 +0900 (Sat, 06 Feb 2016) | 5 lines

* enc/unicode.c, test/ruby/enc/test_case_mapping.rb: Implemented :fold
  option for String#downcase by using case folding data from
  regular expression engine, and added a few simple tests.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53746 | duerst | 2016-02-05 20:09:07 +0900 (Fri, 05 Feb 2016) | 3 lines

* test/ruby/enc/test_case_mapping.rb: added tests for :ascii option.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53745 | nobu | 2016-02-05 16:45:39 +0900 (Fri, 05 Feb 2016) | 3 lines

configure.in: fix doc [ci skip]

* configure.in (RUBY_CHECK_SIGNEDNESS): [DOC] fix function name.
------------------------------------------------------------------------
r53744 | naruse | 2016-02-05 15:52:41 +0900 (Fri, 05 Feb 2016) | 44 lines

improve r53741

* Remove branching by a==0 case

Before r53741:
% perf stat ./miniruby -e'a=100;i=0;while i<0xfffffff;i+=1;a=(a*557+2)%100000;end'

 Performance counter stats for './miniruby -vea=100;i=0;while
i<0xfffffff;i+=1;a=(a*557+2)%100000;end':

      16412.994492 task-clock (msec)         #    0.999 CPUs utilized
               195 context-switches          #    0.012 K/sec
                 2 cpu-migrations            #    0.000 K/sec
               876 page-faults               #    0.053 K/sec
       48488588328 cycles                    #    2.954 GHz
       18464835712 stalled-cycles-frontend   #   38.08% frontend cycles
idle
   <not supported> stalled-cycles-backend
       85665428518 instructions              #    1.77  insns per cycle
                                             #    0.22  stalled cycles
                                             #    per insn
       10207419707 branches                  #  621.911 M/sec
           6334713 branch-misses             #    0.06% of all branches

      16.426858699 seconds time elapsed

After this:
% perf stat ./miniruby -ve'a=100;i=0;while i<0xfffffff;i+=1;a=(a*557+2)%100000;end'

 Performance counter stats for './miniruby -vea=100;i=0;while i<0xfffffff;i+=1;a=(a*557+2)%100000;end':

      13363.540634 task-clock (msec)         #    0.999 CPUs utilized
               137 context-switches          #    0.010 K/sec
                 2 cpu-migrations            #    0.000 K/sec
               874 page-faults               #    0.065 K/sec
       39477429278 cycles                    #    2.954 GHz
       14615402375 stalled-cycles-frontend   #   37.02% frontend cycles idle
   <not supported> stalled-cycles-backend
       83514678452 instructions              #    2.12  insns per cycle
                                             #    0.18  stalled cycles per insn
        9401528135 branches                  #  703.521 M/sec
            432567 branch-misses             #    0.00% of all branches

      13.371484310 seconds time elapsed
------------------------------------------------------------------------
r53743 | nobu | 2016-02-05 13:45:10 +0900 (Fri, 05 Feb 2016) | 6 lines

incompatible encoding workaround

* test/lib/minitest/unit.rb (puke): workaround incompatible
  encoding error messages.

* test/lib/test/unit/assertions.rb (AllFailures.message): ditto.
------------------------------------------------------------------------
r53742 | svn | 2016-02-05 13:31:28 +0900 (Fri, 05 Feb 2016) | 1 line

* 2016-02-05
------------------------------------------------------------------------
r53741 | naruse | 2016-02-05 13:31:27 +0900 (Fri, 05 Feb 2016) | 8 lines

* insns.def (opt_mult): Use int128_t for overflow detection.

* bignum.c (rb_uint128t2big): added for opt_mult.

* bignum.c (rb_uint128t2big): added for rb_uint128t2big..

* configure.in: define int128_t, uint128_t and related MACROs.
  Initially introduced by r41379 but reverted by r50749.
------------------------------------------------------------------------
r53740 | duerst | 2016-02-04 21:05:23 +0900 (Thu, 04 Feb 2016) | 3 lines

* enc/unicode.c: Activated :ascii flag for ASCII-only case conversion
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53739 | nobu | 2016-02-04 17:38:06 +0900 (Thu, 04 Feb 2016) | 6 lines

fstring without copy

* re.c (reg_set_source): make source string frozen without
  copying.
* re.c (rb_reg_initialize_m): refactor initialization with
  encoding.
------------------------------------------------------------------------
r53738 | nobu | 2016-02-04 15:46:28 +0900 (Thu, 04 Feb 2016) | 4 lines

revert re.c in r53736

* re.c (rb_reg_initialize): must copy the source string content,
  it is not a static literal.
------------------------------------------------------------------------
r53737 | nobu | 2016-02-04 15:44:55 +0900 (Thu, 04 Feb 2016) | 3 lines

return shared string

* re.c (rb_reg_source): return shared string without copying.
------------------------------------------------------------------------
r53736 | nobu | 2016-02-04 15:35:34 +0900 (Thu, 04 Feb 2016) | 5 lines

fstring_enc_new

* string.c (rb_fstring_enc_new, rb_fstring_enc_cstr): functions to
  make fstring with encoding.
* re.c (rb_reg_initialize): make fstring without copying.
------------------------------------------------------------------------
r53735 | nobu | 2016-02-04 15:34:10 +0900 (Thu, 04 Feb 2016) | 4 lines

end of UNICODE_FILES

* common.mk (UNICODE_FILES): append empty END-OF-LIST to put
  backslashes uniformly.
------------------------------------------------------------------------
r53734 | duerst | 2016-02-04 14:42:35 +0900 (Thu, 04 Feb 2016) | 3 lines

* common.mk: Added Unicode data file SpecialCasing.txt to be additionally
  downloaded (with Kimihito Matsui)

------------------------------------------------------------------------
r53733 | nobu | 2016-02-04 14:10:36 +0900 (Thu, 04 Feb 2016) | 5 lines

mask upper nibble

* ext/cgi/escape/escape.c (optimized_escape): move c and use it
  instead of cstr[i].  mask upper nibble for the platforms where
  CHAR_BIT > 8.  [Fix GH-1238]
------------------------------------------------------------------------
r53732 | nobu | 2016-02-04 12:40:41 +0900 (Thu, 04 Feb 2016) | 7 lines

initialize dest to 0

* ext/cgi/escape/escape.c (optimized_escape_html): initialize dest
  to 0 and tell the result to be modified, instead of a separate
  flag.

* ext/cgi/escape/escape.c (optimized_escape): ditto.
------------------------------------------------------------------------
r53731 | nobu | 2016-02-04 12:39:12 +0900 (Thu, 04 Feb 2016) | 4 lines

cgi/escape: Optimize CGI.escape

* cgi/escape/escape.c: Optimize CGI.escape performance by C ext
  for ASCII-compatible encodings.  [Fix GH-1238]
------------------------------------------------------------------------
r53730 | nobu | 2016-02-04 12:16:50 +0900 (Thu, 04 Feb 2016) | 4 lines

encoding.h: rb_enc_asciicompat_inline

* include/ruby/encoding.h (rb_enc_asciicompat): turn into an
  inline function to get rid of evalucating the argument twice.
------------------------------------------------------------------------
r53729 | svn | 2016-02-04 11:54:03 +0900 (Thu, 04 Feb 2016) | 1 line

* 2016-02-04
------------------------------------------------------------------------
r53728 | duerst | 2016-02-04 11:54:02 +0900 (Thu, 04 Feb 2016) | 3 lines

* common.mk: Introduce two variables (UNICODE_DATA_DIR and
  UNICODE_SRC_DATA_DIR) to eliminate repetitions.

------------------------------------------------------------------------
r53727 | naruse | 2016-02-03 19:08:49 +0900 (Wed, 03 Feb 2016) | 1 line

Remove debug print introduced in r52386
------------------------------------------------------------------------
r53726 | nobu | 2016-02-03 16:37:19 +0900 (Wed, 03 Feb 2016) | 4 lines

test_exception.rb: NameError at FCALL

* test/ruby/test_exception.rb (test_name_error_info): add
  assertions for FCALL.
------------------------------------------------------------------------
r53725 | nobu | 2016-02-03 16:21:48 +0900 (Wed, 03 Feb 2016) | 4 lines

vm_eval.c: argument names

* vm_eval.c (make_no_method_exception): enumerate argument
  meanings instead of a magic number.
------------------------------------------------------------------------
r53724 | naruse | 2016-02-03 13:52:13 +0900 (Wed, 03 Feb 2016) | 2 lines

* string.c (str_new_frozen): if the given string is embeddedable
  but not embedded, embed a new copied string. [Bug #11946]
------------------------------------------------------------------------
r53723 | nobu | 2016-02-03 08:25:40 +0900 (Wed, 03 Feb 2016) | 4 lines

Fix typo on OpenSSL::PKey doc [ci skip]

* ext/openssl/ossl_pkey.c (Init_ossl_pkey): [DOC] Fix typo
  "encrypted" to "decrypted".  [Fix GH-1235]
------------------------------------------------------------------------
r53722 | nobu | 2016-02-03 08:21:34 +0900 (Wed, 03 Feb 2016) | 5 lines

Fix Ripper.lex error in dedenting squiggly heredoc

* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): Fix
  Ripper.lex error in dedenting squiggly heredoc.  heredoc tree is
  also an array of Elem in the outer tree.  [Fix GH-1234]
------------------------------------------------------------------------
r53721 | svn | 2016-02-03 02:38:01 +0900 (Wed, 03 Feb 2016) | 1 line

* 2016-02-03
------------------------------------------------------------------------
r53720 | naruse | 2016-02-03 02:38:00 +0900 (Wed, 03 Feb 2016) | 3 lines

* re.c (rb_reg_prepare_enc): use already compiled US-ASCII regexp
  if given string is ASCII only.
  121.2s to 113.9s on my x86_64-freebsd10.2 Intel Core i5 661
------------------------------------------------------------------------
r53719 | kazu | 2016-02-02 22:01:09 +0900 (Tue, 02 Feb 2016) | 1 line

follow r53691
------------------------------------------------------------------------
r53718 | naruse | 2016-02-02 20:02:10 +0900 (Tue, 02 Feb 2016) | 4 lines

Skip SHA from test_digest_constants for LibreSSL 2.3

The first one of ruby/openssl#40
https://github.com/ruby/openssl/issues/40#issuecomment-159839338
------------------------------------------------------------------------
r53717 | nobu | 2016-02-02 16:08:13 +0900 (Tue, 02 Feb 2016) | 4 lines

downloader.rb: https setter

* tool/downloader.rb (Downloader.https): define class variable
  setter for 1.8, class_variable_set was private.
------------------------------------------------------------------------
r53716 | nobu | 2016-02-02 14:43:44 +0900 (Tue, 02 Feb 2016) | 4 lines

win32.c: reuse fullpath buffer

* win32/win32.c (open_dir_handle): reuse the fullpath buffer
  instead of allocating another buffer for copy.
------------------------------------------------------------------------
r53715 | naruse | 2016-02-02 13:39:44 +0900 (Tue, 02 Feb 2016) | 13 lines

* re.c: Introduce RREGEXP_PTR.
  patch by dbussink.
  partially merge https://github.com/ruby/ruby/pull/497

* include/ruby/ruby.h: ditto.

* gc.c: ditto.

* ext/strscan/strscan.c: ditto.

* parse.y: ditto.

* string.c: ditto.
------------------------------------------------------------------------
r53714 | nobu | 2016-02-02 13:39:38 +0900 (Tue, 02 Feb 2016) | 4 lines

enc: workdir timestamps

* enc/depend: make timestamps for each work directory, instead of
  making for each compilation and link.
------------------------------------------------------------------------
r53713 | nobu | 2016-02-02 12:53:01 +0900 (Tue, 02 Feb 2016) | 3 lines

ChangeLog: reword

* ChangeLog: reword "affect" as it is a verb.
------------------------------------------------------------------------
r53712 | hsbt | 2016-02-02 09:11:34 +0900 (Tue, 02 Feb 2016) | 3 lines

* lib/rubygems/specification.rb: `coding` is affect only first line except
  shebang.
* lib/rubygems/package.rb, lib/rubygems/package/*: ditto.
------------------------------------------------------------------------
r53711 | svn | 2016-02-02 00:06:18 +0900 (Tue, 02 Feb 2016) | 1 line

* 2016-02-02
------------------------------------------------------------------------
r53710 | nobu | 2016-02-02 00:06:17 +0900 (Tue, 02 Feb 2016) | 5 lines

win32.c: w32_wopendir

* win32/win32.c (w32_wopendir): remove filename parameter, and
  check the drive letter in wpath instead.  rename from
  opendir_internal.
------------------------------------------------------------------------
r53709 | svn | 2016-02-01 21:43:30 +0900 (Mon, 01 Feb 2016) | 1 line

* properties.
------------------------------------------------------------------------
r53708 | svn | 2016-02-01 21:43:30 +0900 (Mon, 01 Feb 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53707 | hsbt | 2016-02-01 21:43:26 +0900 (Mon, 01 Feb 2016) | 5 lines

* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.5.2.
  It supports to enable frozen string literal and add `--norc` option for
  disable to `.gemrc` configuration.
  See 2.5.2 release notes for other fixes and enhancements.
  https://github.com/rubygems/rubygems/blob/a8aa3bac723f045c52471c7b9328310a048561e0/History.txt#L3
------------------------------------------------------------------------
r53706 | nobu | 2016-02-01 21:08:08 +0900 (Mon, 01 Feb 2016) | 4 lines

win32.c: volume_prefix_len

* win32/win32.c (rb_w32_read_reparse_point): name the prefix
  length to be dropped.
------------------------------------------------------------------------
r53705 | nobu | 2016-02-01 17:14:03 +0900 (Mon, 01 Feb 2016) | 5 lines

win32.c: suffix should be alnum

* win32/win32.c (fileattr_to_unixmode): built-in executable
  suffixes are alpha-numeric only, no needs to scan whole path,
  especially path separators.
------------------------------------------------------------------------
r53704 | svn | 2016-02-01 15:25:22 +0900 (Mon, 01 Feb 2016) | 1 line

* 2016-02-01
------------------------------------------------------------------------
r53703 | nobu | 2016-02-01 15:25:21 +0900 (Mon, 01 Feb 2016) | 4 lines

win32.c: move counting length

* win32/win32.c (opendir_internal): defer counting the length just
  before the loop where it is used.
------------------------------------------------------------------------
r53702 | nobu | 2016-01-31 18:43:22 +0900 (Sun, 31 Jan 2016) | 4 lines

r53688 test

* test/ruby/test_file_exhaustive.rb (test_realpath_mount_point):
  test for r53688.
------------------------------------------------------------------------
r53701 | nobu | 2016-01-31 12:34:21 +0900 (Sun, 31 Jan 2016) | 4 lines

additional math operations

* test/drb/ut_large.rb (multiply, avg, median): add additional
  math operations to DRbLarge.  [Fix GH-1086]
------------------------------------------------------------------------
r53700 | nobu | 2016-01-31 12:20:22 +0900 (Sun, 31 Jan 2016) | 4 lines

test for File#lstat.

* test/ruby/test_file_exhaustive.rb (test_lstat): Add lacking test
  for File#lstat.  [Fix GH-1231]
------------------------------------------------------------------------
r53699 | nobu | 2016-01-31 12:16:40 +0900 (Sun, 31 Jan 2016) | 6 lines

standard_library.rdoc: fix typo [ci skip]

* doc/standard_library.rdoc: fix typo  [Fix GH-1230]
  Spelling mistakes -
  outputing > outputting
  publich > publish
------------------------------------------------------------------------
r53698 | nobu | 2016-01-31 12:11:14 +0900 (Sun, 31 Jan 2016) | 7 lines

io.c: rb_io_open_generic

* io.c (rb_io_open_generic): split from rb_io_open without
  argument conversions.

* io.c (rb_io_s_binread): get rid of unnecessary object creation
  and conversion.
------------------------------------------------------------------------
r53697 | svn | 2016-01-31 11:58:34 +0900 (Sun, 31 Jan 2016) | 1 line

* 2016-01-31
------------------------------------------------------------------------
r53696 | nobu | 2016-01-31 11:58:33 +0900 (Sun, 31 Jan 2016) | 4 lines

io.c: constify

* io.c (rb_file_open_generic, pipe_open, pipe_open_s): constify
  convconfig parameter.
------------------------------------------------------------------------
r53695 | nobu | 2016-01-30 15:19:13 +0900 (Sat, 30 Jan 2016) | 5 lines

vm_eval.c: fix hook call

* vm_eval.c (rb_check_funcall_with_hook): also should call the
  given hook before returning Qundef when overridden respond_to?
  method returned false.  [ruby-core:73556] [Bug #12030]
------------------------------------------------------------------------
r53694 | nobu | 2016-01-30 10:49:05 +0900 (Sat, 30 Jan 2016) | 4 lines

common.mk: update-bundled_gems

* common.mk (update-bundled_gems): to update version numbers in
  gems/bundled_gems file.
------------------------------------------------------------------------
r53693 | nobu | 2016-01-30 10:08:20 +0900 (Sat, 30 Jan 2016) | 1 line

update bundled gems
------------------------------------------------------------------------
r53692 | svn | 2016-01-30 00:21:53 +0900 (Sat, 30 Jan 2016) | 1 line

* 2016-01-30
------------------------------------------------------------------------
r53691 | naruse | 2016-01-30 00:21:52 +0900 (Sat, 30 Jan 2016) | 1 line

suppress warning: assigned but unused variable
------------------------------------------------------------------------
r53690 | nobu | 2016-01-29 18:32:57 +0900 (Fri, 29 Jan 2016) | 4 lines

r53689 test

* test/ruby/test_file_exhaustive.rb (test_readlink_junction): test
  for r53689.
------------------------------------------------------------------------
r53689 | nobu | 2016-01-29 17:41:10 +0900 (Fri, 29 Jan 2016) | 6 lines

win32/file.c: drop garbage

* win32/file.c (rb_readlink): drop garbage after the substitute
  name, as rb_w32_read_reparse_point returns the expected buffer
  size but "\??\" prefix is dropped from the result.
* win32/win32.c (w32_readlink): ditto, including NUL-terminator.
------------------------------------------------------------------------
r53688 | usa | 2016-01-29 17:13:42 +0900 (Fri, 29 Jan 2016) | 10 lines

* win32/win32.c (fileattr_to_unixmode, rb_w32_reparse_symlink_p): volume
  mount point should be treated as directory, not symlink.
  [ruby-core:72483] [Bug #11874]

* win32/win32.c (rb_w32_read_reparse_point): check the reparse point is
  a volume mount point or not.

* win32/file.c (rb_readlink): follow above change (but this pass won't
  be used).

------------------------------------------------------------------------
r53687 | kazu | 2016-01-29 17:01:01 +0900 (Fri, 29 Jan 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r53686 | nobu | 2016-01-29 16:18:10 +0900 (Fri, 29 Jan 2016) | 4 lines

Rename parameter name

* enum.c (enum_take_while, enum_drop_while): rename block
  parameter to obj, since they are generic objects.  [Fix GH-1226]
------------------------------------------------------------------------
r53685 | nobu | 2016-01-29 14:16:29 +0900 (Fri, 29 Jan 2016) | 4 lines

erb.rb: fronzen-string-literal in comment [Fix GH-1229]

* lib/erb.rb (ERB::Compiler#detect_magic_comment): allow
  fronzen-string-literal in comment as well as encoding.
------------------------------------------------------------------------
r53684 | nobu | 2016-01-29 14:14:31 +0900 (Fri, 29 Jan 2016) | 5 lines

erb.rb: duplicated magic comments [Fix GH-1229]

* lib/erb.rb (ERB#def_method): insert def line just before the
  first non-comment and non-empty line, not to leave duplicated
  and stale magic comments.
------------------------------------------------------------------------
r53683 | nobu | 2016-01-29 12:18:05 +0900 (Fri, 29 Jan 2016) | 6 lines

test_erb.rb: improve assertions

* test/erb/test_erb.rb: improve failure messages with
  assert_respond_to and assert_not_respond_to.

* test/erb/test_erb.rb: use assert_raise instead of assert(false).
------------------------------------------------------------------------
r53682 | nobu | 2016-01-29 11:14:36 +0900 (Fri, 29 Jan 2016) | 5 lines

erb.rb: frozen-string-literal safe

* lib/erb.rb (ERB#set_eoutvar): explicitly make mutable string as
  a buffer to make ERB work with --enable-frozen-string-literal.
  [ruby-core:73561] [Bug #12031]
------------------------------------------------------------------------
r53681 | nobu | 2016-01-29 11:13:38 +0900 (Fri, 29 Jan 2016) | 5 lines

test_erb.rb: escape

* test/erb/test_erb.rb (test_token_extension): escape % in
  dedented heredoc for editors which do not support this syntax
  yet.
------------------------------------------------------------------------
r53680 | svn | 2016-01-29 10:46:03 +0900 (Fri, 29 Jan 2016) | 1 line

* 2016-01-29
------------------------------------------------------------------------
r53679 | hsbt | 2016-01-29 10:46:02 +0900 (Fri, 29 Jan 2016) | 3 lines

* lib/net/http/header.rb: Warn nil variable on HTTP Header.
  It caused to NoMethodError. [fix GH-952][fix GH-641] Patch by @teosz
* test/net/http/test_httpheader.rb: Added test for nil HTTP Header.
------------------------------------------------------------------------
r53678 | svn | 2016-01-28 17:32:45 +0900 (Thu, 28 Jan 2016) | 1 line

* 2016-01-28
------------------------------------------------------------------------
r53677 | nobu | 2016-01-28 17:32:44 +0900 (Thu, 28 Jan 2016) | 4 lines

socket.c: unlimited size hostname

* ext/socket/socket.c (sock_gethostname): support unlimited size
  hostname.
------------------------------------------------------------------------
r53676 | nobu | 2016-01-27 23:57:23 +0900 (Wed, 27 Jan 2016) | 3 lines

depend: add capacity.o

* ext/-test-/string/depend (capacity.o): add dependencies.
------------------------------------------------------------------------
r53675 | svn | 2016-01-27 21:04:48 +0900 (Wed, 27 Jan 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53674 | hsbt | 2016-01-27 21:04:47 +0900 (Wed, 27 Jan 2016) | 1 line

* test/-ext-/string/test_capacity.rb: Added missing library.
------------------------------------------------------------------------
r53673 | usa | 2016-01-27 21:00:07 +0900 (Wed, 27 Jan 2016) | 4 lines

* test/ruby/test_file.rb (TestFile#test_realpath_encoding): rescue Errno::EACCES
  and skip the testcase because it'll be raised on Windows always unless the
  runner doesn't have the administrator privilege.

------------------------------------------------------------------------
r53672 | svn | 2016-01-27 20:37:03 +0900 (Wed, 27 Jan 2016) | 1 line

* properties.
------------------------------------------------------------------------
r53671 | naruse | 2016-01-27 20:37:02 +0900 (Wed, 27 Jan 2016) | 1 line

Add tests about String's internal capacity
------------------------------------------------------------------------
r53670 | duerst | 2016-01-27 18:54:38 +0900 (Wed, 27 Jan 2016) | 2 lines

* enc/unicode.c: Fixed bit mask in macro OnigCodePointCount

------------------------------------------------------------------------
r53669 | duerst | 2016-01-27 17:55:40 +0900 (Wed, 27 Jan 2016) | 4 lines

* enc/unicode.c: Protect code point count by macro, in order to
  be able to use the remaining bits for flags.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53668 | nobu | 2016-01-27 16:35:34 +0900 (Wed, 27 Jan 2016) | 5 lines

Fix doc with default value with GH-523

* lib/tempfile.rb (Tempfile#initialize): [DOC] the first parameter
  `basename` is optional and defaulted to an empty string since
  [GH-523].  [Fix GH-1225]
------------------------------------------------------------------------
r53667 | nobu | 2016-01-27 16:30:42 +0900 (Wed, 27 Jan 2016) | 3 lines

hash.c: exception examples

* hash.c (rb_hash_dig): [DOC] add examples of exceptions.
------------------------------------------------------------------------
r53666 | nobu | 2016-01-27 16:26:53 +0900 (Wed, 27 Jan 2016) | 5 lines

Fix a Ruby-Doc comment for Array#dig

* array.c (rb_ary_dig): [DOC] fix the exception class to be raised
  when intermediate object does not have dig method.  TypeError
  will be raised now.  [Fix GH-1224]
------------------------------------------------------------------------
r53665 | nobu | 2016-01-27 13:11:53 +0900 (Wed, 27 Jan 2016) | 6 lines

test_require.rb: fix temporary library directory

* test/rubygems/test_require.rb (test_dash_i_beats_gems): create
  temporary library directory under the temporary directory
  created by Gem::TestCase#setup, not to leave garbages in the
  default temporary directory.
------------------------------------------------------------------------
r53664 | svn | 2016-01-27 02:19:37 +0900 (Wed, 27 Jan 2016) | 1 line

* 2016-01-27
------------------------------------------------------------------------
r53663 | naruse | 2016-01-27 02:19:36 +0900 (Wed, 27 Jan 2016) | 1 line

increase timeout for Solaris 10 SPARC
------------------------------------------------------------------------
r53661 | kazu | 2016-01-26 19:39:50 +0900 (Tue, 26 Jan 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r53660 | nobu | 2016-01-26 19:37:12 +0900 (Tue, 26 Jan 2016) | 4 lines

array.c: reword [ci skip]

* array.c (permute0, rpermute0): [DOC] Substitute indexes ->
  indices in documentation for consistency.  [Fix GH-1222]
------------------------------------------------------------------------
r53659 | normal | 2016-01-26 15:23:47 +0900 (Tue, 26 Jan 2016) | 16 lines

fstring early for internal iseq

All of the strings created here eventually get converted to
fstrings when they are frozen into the iseq.  Prepare the
fstring early so we may reduce a one or two objects.

This is a very minor change, mainly for the '<main>' dedupe.

* compile.c (caller_location): use rb_fstring_cstr for "<compiled>"
  (it is converted to fstring anyways inside rb_iseq_new_with_opt)
* iseq.c (iseqw_s_compile): ditto
* iseq.c (rb_iseq_new_main): use rb_fstring_cstr for "<main>"
* vm.c (Init_VM): ditto, share with with above
* iseq.c (iseqw_s_compile_file): rb_fstring before rb_io_t->pathv
  share "<main>" with above
* vm.c (rb_binding_add_dynavars): fstring "<temp>" immediately
------------------------------------------------------------------------
r53658 | nobu | 2016-01-26 15:14:59 +0900 (Tue, 26 Jan 2016) | 7 lines

compile.c: fix tailcall optimization

* compile.c (iseq_peephole_optimize): don't apply tailcall
  optimization to send/invokesuper instructions with blockiseq.
  This is a follow-up to the changes in r51903; blockiseq is now
  the third operand of send/invokesuper instructions.
  [ruby-core:73413] [Bug #12018]
------------------------------------------------------------------------
r53657 | normal | 2016-01-26 14:33:28 +0900 (Tue, 26 Jan 2016) | 7 lines

Signal.list deduplicates keys

This allows us to reuse string objects used in symbols as well
as any string representations of signal names in source code.

* signal.c (sig_list): use fstring for hash key
* test/ruby/test_signal.rb (test_signal_list_dedupe_keys): added
------------------------------------------------------------------------
r53656 | nobu | 2016-01-26 13:09:31 +0900 (Tue, 26 Jan 2016) | 4 lines

signal.c: reserved signals

* signal.c (rb_f_kill): should immediately deliver reserved
  signals SIGILL and SIGFPE, ont only SIGSEGV and SIGBUS.
------------------------------------------------------------------------
r53655 | svn | 2016-01-26 07:58:26 +0900 (Tue, 26 Jan 2016) | 1 line

* 2016-01-26
------------------------------------------------------------------------
r53654 | nobu | 2016-01-26 07:58:25 +0900 (Tue, 26 Jan 2016) | 4 lines

Macro typo

* gc.c (RVALUE_PAGE_WB_UNPROTECTED): fix a typo of argument name.
  [Fix GH-1221]
------------------------------------------------------------------------
r53653 | normal | 2016-01-25 17:34:00 +0900 (Mon, 25 Jan 2016) | 8 lines

fix build with VM_CHECK_MODE > 0

* ruby_assert.h (RUBY_ASSERT_WHEN): fix reference to macro name
* vm_core.h: include ruby_assert.h before using
  [ruby-core:73371]

This does not fix the test failure documented in [ruby-core:73371],
that is for later.
------------------------------------------------------------------------
r53652 | nobu | 2016-01-25 16:49:26 +0900 (Mon, 25 Jan 2016) | 3 lines

common.mk: dependency of ripper.c

* common.mk (ext/ripper/ripper.c): explicit parse.y for nmake.
------------------------------------------------------------------------
r53651 | nobu | 2016-01-25 16:45:54 +0900 (Mon, 25 Jan 2016) | 1 line

revert r53618 partially
------------------------------------------------------------------------
r53650 | nobu | 2016-01-25 15:56:26 +0900 (Mon, 25 Jan 2016) | 5 lines

symbol.c: more informative error message

* symbol.c (sym_check_asciionly): more informative error message
  with the encoding name and the inspected content.
  [ruby-core:73398] [Feature #12016]
------------------------------------------------------------------------
r53649 | hsbt | 2016-01-25 09:39:26 +0900 (Mon, 25 Jan 2016) | 2 lines

* test/ruby/test_string.rb: added testcase for next!, succ and succ!
  [fix GH-1213] Patch by @K0mAtoru
------------------------------------------------------------------------
r53648 | hsbt | 2016-01-25 09:33:17 +0900 (Mon, 25 Jan 2016) | 2 lines

* lib/webrick/httpservlet/filehandler.rb: fix documentation for namespace.
  [fix GH-1219][ci skip] Patch by @leafac
------------------------------------------------------------------------
r53647 | svn | 2016-01-25 00:00:58 +0900 (Mon, 25 Jan 2016) | 1 line

* 2016-01-25
------------------------------------------------------------------------
r53646 | nobu | 2016-01-25 00:00:57 +0900 (Mon, 25 Jan 2016) | 4 lines

test_class.rb: fix encoding

* test/ruby/test_class.rb (test_namescope_error_message): fix
  encoding to UTF-8.
------------------------------------------------------------------------
r53645 | nobu | 2016-01-24 23:59:16 +0900 (Sun, 24 Jan 2016) | 4 lines

test_class.rb: test_namescope_error_message

* test/ruby/test_class.rb (test_namescope_error_message): test for
  r53644.
------------------------------------------------------------------------
r53644 | normal | 2016-01-24 19:36:16 +0900 (Sun, 24 Jan 2016) | 10 lines

vm_insnhelper.c (vm_check_if_namespace): tiny size reduction

Take advantage of "%+" modifier in the format string instead of
explicitly calling rb_inspect to reduce object size.

On x86 32-bit:

           text    data     bss     dec     hex filename
before: 2949572   12448   30680 2992700  2daa3c miniruby
after:  2949464   12448   30680 2992592  2da9d0 miniruby
------------------------------------------------------------------------
r53643 | duerst | 2016-01-24 18:13:30 +0900 (Sun, 24 Jan 2016) | 3 lines

* common.mk: Simplifying Unicode data file download logic to make
  it more reliable (including additional fix not in r53633) [Bug #12007]

------------------------------------------------------------------------
r53642 | nobu | 2016-01-24 16:55:05 +0900 (Sun, 24 Jan 2016) | 5 lines

wait readable/writable

* ext/io/wait/wait.c (io_wait_readwrite): [EXPERIMENTAL] allow to
  wait for multiple modes, readable and writable, at once.  the
  arguments may change in the future.  [Feature #12013]
------------------------------------------------------------------------
r53641 | svn | 2016-01-24 14:30:55 +0900 (Sun, 24 Jan 2016) | 1 line

* 2016-01-24
------------------------------------------------------------------------
r53640 | nobu | 2016-01-24 14:30:54 +0900 (Sun, 24 Jan 2016) | 4 lines

test_io_wait.rb: wait_readable

* test/io/wait/test_io_wait.rb: add tests for IO#wait_readable,
  same as IO#wait.
------------------------------------------------------------------------
r53639 | nobu | 2016-01-23 22:31:51 +0900 (Sat, 23 Jan 2016) | 4 lines

Add test for Array#keep_if

* test/ruby/test_array.rb (test_keep_if): Add test for
  Array#keep_if separate from Array#select!  [Fix GH-1218]
------------------------------------------------------------------------
r53638 | nobu | 2016-01-23 22:27:13 +0900 (Sat, 23 Jan 2016) | 4 lines

appveyor.yml: simplify

* appveyor.yml (install, build_script): simplify by using same opt
  dir for libressl and zlib.
------------------------------------------------------------------------
r53637 | hsbt | 2016-01-23 20:55:32 +0900 (Sat, 23 Jan 2016) | 2 lines

* common.mk: revert r53633. It broke rubyci and travis.
  https://travis-ci.org/ruby/ruby/builds/104259623
------------------------------------------------------------------------
r53636 | shugo | 2016-01-23 20:19:22 +0900 (Sat, 23 Jan 2016) | 1 line

fix typo.
------------------------------------------------------------------------
r53635 | shugo | 2016-01-23 20:16:09 +0900 (Sat, 23 Jan 2016) | 5 lines

* range.c (range_eqq): revert r11113 because rb_call_super() is
  called in range_include() and thus r11113 doesn't work when the
  receiver Range object consists of non linear objects such as Date
  objects.
  [ruby-core:72908] [Bug #12003]
------------------------------------------------------------------------
r53634 | duerst | 2016-01-23 18:38:50 +0900 (Sat, 23 Jan 2016) | 7 lines

ChangeLog: Fixing wrong time on previous commit, and adding
previous commit message to svn [ci skip]

The message on the previous commit should have read:
common.mk: Simplifying Unicode data file download logic to make
it more reliable [Bug #12007]

------------------------------------------------------------------------
r53633 | duerst | 2016-01-23 18:32:44 +0900 (Sat, 23 Jan 2016) | 1 line


------------------------------------------------------------------------
r53632 | nobu | 2016-01-23 17:18:17 +0900 (Sat, 23 Jan 2016) | 4 lines

appveyor.yml: exclude unavailable extensions

* appveyor.yml (build_script): exclude unavailable extensions,
  gdb, gdbm, readline, and tk/tkutil.
------------------------------------------------------------------------
r53631 | duerst | 2016-01-23 16:30:32 +0900 (Sat, 23 Jan 2016) | 2 lines

* tool/downloader.rb: Fixed a logical error, improved documentation

------------------------------------------------------------------------
r53630 | kazu | 2016-01-23 14:19:42 +0900 (Sat, 23 Jan 2016) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r53629 | nobu | 2016-01-23 11:43:34 +0900 (Sat, 23 Jan 2016) | 4 lines

Use SVG Travis badge over PNG

* README.md: Use SVG Travis badge over PNG for better quality and
  devise support.  [Fix GH-1214] [Fix GH-1216]
------------------------------------------------------------------------
r53628 | nobu | 2016-01-23 11:30:07 +0900 (Sat, 23 Jan 2016) | 4 lines

Update documentation of CSV header converter

* lib/csv.rb: Update documentation of CSV header converter for
  r45498, [GH-575].  [Fix GH-1215]
------------------------------------------------------------------------
r53627 | nobu | 2016-01-23 11:15:56 +0900 (Sat, 23 Jan 2016) | 4 lines

configure.bat: put a space

* win32/configure.bat: put a space after replaced string to get
  rid of something weird sometimes.
------------------------------------------------------------------------
r53626 | shugo | 2016-01-23 00:49:49 +0900 (Sat, 23 Jan 2016) | 2 lines

* win32/configure.bat: set svn:eol-style to CRLF.

------------------------------------------------------------------------
r53625 | svn | 2016-01-23 00:13:17 +0900 (Sat, 23 Jan 2016) | 1 line

* 2016-01-23
------------------------------------------------------------------------
r53624 | svn | 2016-01-23 00:13:17 +0900 (Sat, 23 Jan 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53623 | nobu | 2016-01-23 00:13:16 +0900 (Sat, 23 Jan 2016) | 4 lines

configure.bat: fix strange goto

* win32/configure.bat: get rid of wrong goto destination by
  putting something before LF.
------------------------------------------------------------------------
r53622 | svn | 2016-01-22 23:40:48 +0900 (Fri, 22 Jan 2016) | 1 line

* properties.
------------------------------------------------------------------------
r53621 | nobu | 2016-01-22 23:40:47 +0900 (Fri, 22 Jan 2016) | 3 lines

configure.bat: set eol-style

* win32/configure.bat: should be CRLF eol-style.
------------------------------------------------------------------------
r53620 | svn | 2016-01-22 23:28:33 +0900 (Fri, 22 Jan 2016) | 1 line

* properties.
------------------------------------------------------------------------
r53619 | nobu | 2016-01-22 23:28:31 +0900 (Fri, 22 Jan 2016) | 4 lines

configure.bat: --with-libdir

* win32/configure.bat: add --with-libdir option for basename of
  libdir.  on Windows it must be placed under exec_prefix always.
------------------------------------------------------------------------
r53618 | nobu | 2016-01-22 21:30:31 +0900 (Fri, 22 Jan 2016) | 5 lines

common.mk: source dependency for nmake

* common.mk (ext/rbconfig/sizeof/sizes.c): separate the dependency
  with VPATH and the command, get rid of weird VPATH behavior of
  nmake.
------------------------------------------------------------------------
r53617 | nobu | 2016-01-22 20:22:27 +0900 (Fri, 22 Jan 2016) | 4 lines

common.mk: probes.dmyh for nmake

* common.mk (probes.dmyh): separate the dependency and the
  command, get rid of weird VPATH behavior of nmake.
------------------------------------------------------------------------
r53616 | nobu | 2016-01-22 17:37:36 +0900 (Fri, 22 Jan 2016) | 3 lines

vm_core.h: use RUBY_ASSERT

* vm_core.h (VM_ASSERT): use RUBY_ASSERT instead of rb_bug.
------------------------------------------------------------------------
r53615 | nobu | 2016-01-22 17:33:55 +0900 (Fri, 22 Jan 2016) | 4 lines

RUBY_ASSERT

* error.c (rb_assert_failure): assertion with stack dump.
* ruby_assert.h (RUBY_ASSERT): new header for the assertion.
------------------------------------------------------------------------
r53614 | naruse | 2016-01-22 16:02:37 +0900 (Fri, 22 Jan 2016) | 1 line

Add badges
------------------------------------------------------------------------
r53613 | naruse | 2016-01-22 15:26:57 +0900 (Fri, 22 Jan 2016) | 1 line

remove to allow trunk
------------------------------------------------------------------------
r53612 | naruse | 2016-01-22 15:09:19 +0900 (Fri, 22 Jan 2016) | 1 line

Add appveyor.yml
------------------------------------------------------------------------
r53611 | svn | 2016-01-22 01:09:10 +0900 (Fri, 22 Jan 2016) | 1 line

* 2016-01-22
------------------------------------------------------------------------
r53610 | naruse | 2016-01-22 01:09:09 +0900 (Fri, 22 Jan 2016) | 4 lines

* regparse.c (fetch_name_with_level): allow non word characters
  at the first character.  [Feature #11949]

* regparse.c (fetch_name): ditto.
------------------------------------------------------------------------
r53609 | naruse | 2016-01-21 17:36:01 +0900 (Thu, 21 Jan 2016) | 3 lines

* marshal.c (r_object0): honor Marshal.load post proc
  value for TYPE_LINK.  by Hiroshi Nakamura <nahi@ruby-lang.org>
  https://github.com/ruby/ruby/pull/1204 fix GH-1204
------------------------------------------------------------------------
r53607 | naruse | 2016-01-21 16:40:17 +0900 (Thu, 21 Jan 2016) | 1 line

* Makefile.in (update-rubyspec): fix r53208 like r53451.
------------------------------------------------------------------------
r53606 | nobu | 2016-01-21 15:58:03 +0900 (Thu, 21 Jan 2016) | 4 lines

common.mk: update-config_files is back

* common.mk (update-config_files): move back from Makefile.in,
  needs to be here for .travis.yml.
------------------------------------------------------------------------
r53605 | svn | 2016-01-21 15:23:19 +0900 (Thu, 21 Jan 2016) | 1 line

* 2016-01-21
------------------------------------------------------------------------
r53604 | nobu | 2016-01-21 15:23:18 +0900 (Thu, 21 Jan 2016) | 4 lines

test_io_m17n.rb: BOM with non-UTF

* test/ruby/test_io_m17n.rb (test_bom_non_utf): assert BOM with
  non-UTF encoding in encoding option, for r53084.
------------------------------------------------------------------------
r53603 | usa | 2016-01-20 21:09:39 +0900 (Wed, 20 Jan 2016) | 2 lines

* ChangeLog: typo.

------------------------------------------------------------------------
r53602 | usa | 2016-01-20 21:00:14 +0900 (Wed, 20 Jan 2016) | 3 lines

* common.mk, Makefile.in: update-config.files is only for Unix
  platforms.

------------------------------------------------------------------------
r53601 | nobu | 2016-01-20 17:17:57 +0900 (Wed, 20 Jan 2016) | 4 lines

vcs.rb: git worktree

* tool/vcs.rb (VCS.detect, VCS::GIT): support working directory
  created by `git worktree`.
------------------------------------------------------------------------
r53600 | nobu | 2016-01-20 17:16:39 +0900 (Wed, 20 Jan 2016) | 1 line

ChangeLog: fix commit log of r53599
------------------------------------------------------------------------
r53599 | nobu | 2016-01-20 17:14:24 +0900 (Wed, 20 Jan 2016) | 1 line

extlibs.rb: add --cache option
------------------------------------------------------------------------
r53596 | svn | 2016-01-20 03:42:37 +0900 (Wed, 20 Jan 2016) | 1 line

* 2016-01-20
------------------------------------------------------------------------
r53595 | headius | 2016-01-20 03:42:36 +0900 (Wed, 20 Jan 2016) | 3 lines

file.c: fix documentation

* file.c: mode is optional, defaults to 0666.
------------------------------------------------------------------------
r53594 | nobu | 2016-01-19 20:04:52 +0900 (Tue, 19 Jan 2016) | 4 lines

configure.in: suppress warnings

* configure.in (warnflags): suppress warnings caused by macro
  expansion with clang (and maybe -save-temps option).
------------------------------------------------------------------------
r53593 | nobu | 2016-01-19 19:39:42 +0900 (Tue, 19 Jan 2016) | 1 line

ripper: clean timestamp
------------------------------------------------------------------------
r53592 | nobu | 2016-01-19 18:50:27 +0900 (Tue, 19 Jan 2016) | 4 lines

configure.in: suppress warnings

* configure.in (warnflags): suppress warnings caused by macro
  expansion with clang.
------------------------------------------------------------------------
r53591 | nobu | 2016-01-19 17:36:02 +0900 (Tue, 19 Jan 2016) | 3 lines

io.c: suppress warning

* io.c (rb_update_max_fd): get rid of unused-value warning.
------------------------------------------------------------------------
r53590 | duerst | 2016-01-19 17:04:21 +0900 (Tue, 19 Jan 2016) | 3 lines

* common.mk: Added Unicode data file CaseFolding.txt to be additionally
  downloaded (with Kimihito Matsui)

------------------------------------------------------------------------
r53589 | nobu | 2016-01-19 14:41:11 +0900 (Tue, 19 Jan 2016) | 4 lines

make-snapshot: remove Unicode data

* make-snapshot: remove Unicode data files, which are not
  necessary once all source have been generated.
------------------------------------------------------------------------
r53588 | nobu | 2016-01-19 14:05:47 +0900 (Tue, 19 Jan 2016) | 7 lines

make-snapshot: download first

* common.mk (update-download): split to download only, excluding
  VCS.

* make-snapshot: download config, Unicode data, gem, and external
  library files first.
------------------------------------------------------------------------
r53587 | nobu | 2016-01-19 11:55:34 +0900 (Tue, 19 Jan 2016) | 1 line

TestISeq.rb: exclude time consuming GC test
------------------------------------------------------------------------
r53586 | naruse | 2016-01-19 11:52:37 +0900 (Tue, 19 Jan 2016) | 3 lines

increase timeout for ARMv7

http://rubyci.s3.amazonaws.com/scw-9d6766/ruby-trunk/log/20160113T091704Z.diff.html.gz
------------------------------------------------------------------------
r53585 | nobu | 2016-01-19 11:39:07 +0900 (Tue, 19 Jan 2016) | 4 lines

common.mk: fix dependency

* common.mk (.unicode-tables.time): should not depend on files
  which are not downloaded yet, but just the timestamp for them.
------------------------------------------------------------------------
r53584 | nobu | 2016-01-19 11:30:17 +0900 (Tue, 19 Jan 2016) | 3 lines

common.mk: update-remote

* common.mk (update-remote): update by downloading remote files.
------------------------------------------------------------------------
r53583 | sho-h | 2016-01-19 11:03:50 +0900 (Tue, 19 Jan 2016) | 3 lines

* lib/shell.rb (Shell.debug_output_exclusive_unlock): remove
  because Mutex#exclusive_unlock was already deleted. [fix GH-1185]

------------------------------------------------------------------------
r53582 | sho-h | 2016-01-19 09:54:54 +0900 (Tue, 19 Jan 2016) | 2 lines

* error.c: [DOC] fix Exception#backtrace_locations indent. [ci skip]

------------------------------------------------------------------------
r53581 | svn | 2016-01-19 09:39:12 +0900 (Tue, 19 Jan 2016) | 1 line

* 2016-01-19
------------------------------------------------------------------------
r53580 | hsbt | 2016-01-19 09:39:12 +0900 (Tue, 19 Jan 2016) | 2 lines

* vm_method.c: fix grammar in respond_to? warning.
  [fix GH-1047]
------------------------------------------------------------------------
r53578 | nobu | 2016-01-18 22:49:51 +0900 (Mon, 18 Jan 2016) | 4 lines

ruby-additional.el: ruby-decode-unicode

* misc/ruby-additional.el (ruby-decode-unicode): new function to
  convert escaped Unicode to raw string.
------------------------------------------------------------------------
r53577 | nobu | 2016-01-18 21:48:41 +0900 (Mon, 18 Jan 2016) | 4 lines

unicode_norm_gen.tmpl: Remove indicator

* template/unicode_norm_gen.tmpl: Remove indicator for
  "frozen_string_literal: true", as r52526.
------------------------------------------------------------------------
r53576 | nobu | 2016-01-18 20:50:06 +0900 (Mon, 18 Jan 2016) | 1 line

parse.y: show operations on BITSTACK
------------------------------------------------------------------------
r53575 | nobu | 2016-01-18 19:25:01 +0900 (Mon, 18 Jan 2016) | 4 lines

common.mk: UPDATE_LIBRARIES to yes

* common.mk (UPDATE_LIBRARIES): try to update unicode files by
  default.
------------------------------------------------------------------------
r53574 | nobu | 2016-01-18 19:21:03 +0900 (Mon, 18 Jan 2016) | 6 lines

common.mk: get rid of repeating same names

* common.mk (download-unicode-data): strip directory paths from
  the target names, to get rid of repeating same file names.

* tool/downloader.rb: add -p option for prefix.
------------------------------------------------------------------------
r53573 | nobu | 2016-01-18 14:37:48 +0900 (Mon, 18 Jan 2016) | 5 lines

parse.y: escaped newline in dedenting heredoc

* parse.y (parser_here_document): an escaped newline is not an
  actual newline, and the rest part should not be dedented.
  [ruby-core:72855] [Bug #11989]
------------------------------------------------------------------------
r53572 | hsbt | 2016-01-18 12:05:20 +0900 (Mon, 18 Jan 2016) | 2 lines

* test/ruby/test_string.rb: Added extra testcase for test_rstrip_bang
  and test_lstrip_bang. [fix GH-1178] Patch by @Matrixbirds
------------------------------------------------------------------------
r53571 | hsbt | 2016-01-18 11:48:24 +0900 (Mon, 18 Jan 2016) | 1 line

* string.c: fix a typo. [fix GH-1202][ci skip] Patch by @sunboshan
------------------------------------------------------------------------
r53570 | nobu | 2016-01-18 01:14:44 +0900 (Mon, 18 Jan 2016) | 4 lines

test_syntax.rb: try all

* test/ruby/test_syntax.rb (assert_dedented_heredoc): try all
  terminators regardless failures.
------------------------------------------------------------------------
r53569 | svn | 2016-01-18 01:11:58 +0900 (Mon, 18 Jan 2016) | 1 line

* 2016-01-18
------------------------------------------------------------------------
r53568 | nobu | 2016-01-18 01:11:57 +0900 (Mon, 18 Jan 2016) | 4 lines

remove extra dot

* test/lib/test/unit/assertions.rb (all_assertions): remove tail
  dot as it is added in message again.
------------------------------------------------------------------------
r53566 | naruse | 2016-01-17 21:20:15 +0900 (Sun, 17 Jan 2016) | 13 lines

* configure.in: improve ICC (Intel C Compiler) support.

* configure.in (CXX): The name of icc's c++ compiler is `icpc`.

* configure.in (warnings): Add `-diag-disable=2259` to suppress
  noisy warnings: "non-pointer conversion from "..." to "..." may
  lose significant bits".

* configure.in (optflags): Add `-fp-model precise` like -fno-fast-math.

* lib/mkmf.rb: icc supports -Werror=division-by-zero
  and -Werror=deprecated-declarations, but doesn't support
  -Wdivision-by-zero and -Wdeprecated-declarations.
------------------------------------------------------------------------
r53565 | duerst | 2016-01-17 20:40:46 +0900 (Sun, 17 Jan 2016) | 6 lines

* string.c: Any kind of option is now taking the new code path for
  upcase/downcase/capitalize/swapcase. :lithuanian can be used for
  testing if no specific option is desired.
* test/ruby/enc/test_case_mapping.rb: Adjusted to above.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53564 | duerst | 2016-01-17 20:10:45 +0900 (Sun, 17 Jan 2016) | 4 lines

* enc/unicode.c: Fixed a logical error and some comments.
* test/ruby/enc/test_case_mapping.rb: Made tests more general.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53563 | nobu | 2016-01-17 18:03:11 +0900 (Sun, 17 Jan 2016) | 1 line

get rid of non-ascii chars
------------------------------------------------------------------------
r53562 | duerst | 2016-01-17 17:42:16 +0900 (Sun, 17 Jan 2016) | 7 lines

* enc/unicode.c: Removed artificial expansion for Turkic,
  added hand-coded support for Turkic, fixed logic for swapcase.
* string.c: Made use of new case mapping code possible from upcase,
  capitalize, and swapcase (with :lithuanian as a guard).
* test/ruby/enc/test_case_mapping.rb: Adjusted for above.
  (with Kimihito Matsui)

------------------------------------------------------------------------
r53561 | nobu | 2016-01-17 15:31:36 +0900 (Sun, 17 Jan 2016) | 5 lines

option.c: single byte boolean

* ext/socket/option.c (sockopt_bool): relax boolean size to be one
  too not only sizeof(int).  Winsock getsockopt() returns a single
  byte as a boolean socket option.  [ruby-core:72730] [Bug #11958]
------------------------------------------------------------------------
r53560 | nobu | 2016-01-17 14:43:40 +0900 (Sun, 17 Jan 2016) | 5 lines

Add a test case for ENV#select_bang,keep_if

* test/ruby/test_env.rb: [Fix GH-1201]
  * Extract test code for ENV#keep_if from ENV#select_bang
  * Add a test case for ENV#select_bang,keep_if
------------------------------------------------------------------------
r53559 | nobu | 2016-01-17 14:43:04 +0900 (Sun, 17 Jan 2016) | 5 lines

Add a test case for ENV#reject_bang,delete_if

* test/ruby/test_env.rb: [Fix GH-1201]
  * Extract test code for ENV#delete_if from ENV#reject_bang
  * Add a test case for ENV#reject_bang,delete_if
------------------------------------------------------------------------
r53558 | svn | 2016-01-17 14:41:02 +0900 (Sun, 17 Jan 2016) | 1 line

* 2016-01-17
------------------------------------------------------------------------
r53557 | nobu | 2016-01-17 14:41:01 +0900 (Sun, 17 Jan 2016) | 6 lines

option.c: make error messages consistent

* ext/socket/option.c (check_size): extract a macro to check
  binary data size, with a consistent message.
* ext/socket/option.c (sockopt_byte): fix error message,
  sizeof(int) differs from sizeof(unsigned char) in general.
------------------------------------------------------------------------
r53556 | kazu | 2016-01-16 23:53:06 +0900 (Sat, 16 Jan 2016) | 1 line

fix typos [ci skip]
------------------------------------------------------------------------
r53555 | nobu | 2016-01-16 21:16:59 +0900 (Sat, 16 Jan 2016) | 5 lines

parse.y: should not deent concatenated string

* parse.y (xstring): reset heredoc indent after dedenting,
  so that following string literal would not be dedented.
  [ruby-core:72857] [Bug #11990]
------------------------------------------------------------------------
r53554 | duerst | 2016-01-16 17:24:58 +0900 (Sat, 16 Jan 2016) | 5 lines

* enc/unicode.c: Artificial mapping to test buffer expansion code.
* string.c: Fixed buffer expansion logic.
* test/ruby/enc/test_case_mapping.rb: Tests for above.
(with Kimihito Matsui)

------------------------------------------------------------------------
r53553 | hsbt | 2016-01-16 16:51:24 +0900 (Sat, 16 Jan 2016) | 2 lines

* ext/openssl/lib/openssl/pkey.rb: Added 2048 bit DH parameter.
* test/openssl/test_pkey_dh.rb: ditto.
------------------------------------------------------------------------
r53552 | hsbt | 2016-01-16 10:51:58 +0900 (Sat, 16 Jan 2016) | 2 lines

* enc/unicode.c: fix implicit conversion error with clang. fixup r53548.
* string.c: ditto.
------------------------------------------------------------------------
r53551 | hsbt | 2016-01-16 10:37:47 +0900 (Sat, 16 Jan 2016) | 6 lines

* common.mk: test-sample was changed to test-basic.
  [Feature #11982][ruby-core:72823]
* basictest/runner.rb: ditto. rename from tool/rubytest.rb.
* basictest/test.rb: ditto. rename from sample/test.rb.
* defs/gmake.mk: picked from r53540
* sample/test.rb: backword compatibility for chkbuild.
------------------------------------------------------------------------
r53550 | svn | 2016-01-16 10:24:05 +0900 (Sat, 16 Jan 2016) | 1 line

* 2016-01-16
------------------------------------------------------------------------
r53549 | svn | 2016-01-16 10:24:04 +0900 (Sat, 16 Jan 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53548 | duerst | 2016-01-16 10:24:03 +0900 (Sat, 16 Jan 2016) | 5 lines

* string.c, enc/unicode.c: New code path as a preparation for Unicode-wide
  case mapping. The code path is currently guarded by the :lithuanian
  option to avoid accidental problems in daily use.
* test/ruby/enc/test_case_mapping.rb: Test for above.
* string.c: function 'check_case_options': fixed logical errors
------------------------------------------------------------------------
r53547 | nobu | 2016-01-15 22:16:53 +0900 (Fri, 15 Jan 2016) | 3 lines

.gdbinit: dump_node [ci skip]

* .gdbinit (dump_node): dump NODE list in gdb.
------------------------------------------------------------------------
r53546 | nobu | 2016-01-15 22:15:39 +0900 (Fri, 15 Jan 2016) | 4 lines

disable unaligned word access

* include/ruby/defines.h, st.c: disable unaligned word access with
  gcc 6 or later.  [Bug #11831]
------------------------------------------------------------------------
r53545 | nobu | 2016-01-15 22:12:17 +0900 (Fri, 15 Jan 2016) | 4 lines

disable unaligned word access

* regint.h: disable unaligned word access with gcc 6 or later.
  [Bug #11831]
------------------------------------------------------------------------
r53544 | nobu | 2016-01-15 22:08:45 +0900 (Fri, 15 Jan 2016) | 5 lines

Revert r53539 and r53540

* basictest/test.rb: revert r53539 because it depends on r53537.

* gmake.mk: ditto, revert r53540.
------------------------------------------------------------------------
r53543 | ngoto | 2016-01-15 20:25:29 +0900 (Fri, 15 Jan 2016) | 6 lines

* regint.h (PLATFORM_UNALIGNED_WORD_ACCESS): The value of
  UNALIGNED_WORD_ACCESS should be used to determine whether
  unaligned word access is allowed or not. After this commit,
  ./configure CPPFLAGS="-DUNALIGNED_WORD_ACCESS=0" disables
  unaligned word access even on platforms that support the feature.

------------------------------------------------------------------------
r53542 | naruse | 2016-01-15 20:05:51 +0900 (Fri, 15 Jan 2016) | 4 lines

Revert "* common.mk: test-sample was changed to test-basic."

This reverts r53537.
Fix chkbuild first.
------------------------------------------------------------------------
r53541 | nobu | 2016-01-15 16:12:46 +0900 (Fri, 15 Jan 2016) | 5 lines

parse.y: should not deent concatenated string

* parse.y (string1): reset heredoc indent fore each string leteral
  so that concatenated string would not be dedented.
  [ruby-core:72857] [Bug #11990]
------------------------------------------------------------------------
r53540 | nobu | 2016-01-15 13:39:35 +0900 (Fri, 15 Jan 2016) | 4 lines

gmake.mk: update order

* defs/gmake.mk (yes-test-basic): update the target name and the
  order of tests.  [Feature #11982]
------------------------------------------------------------------------
r53539 | nobu | 2016-01-15 13:33:43 +0900 (Fri, 15 Jan 2016) | 4 lines

basictest/test.rb: update message

* basictest/test.rb (test_check): update the file name in
  messages, as r53537.  [Feature #11982]
------------------------------------------------------------------------
r53538 | svn | 2016-01-15 09:25:47 +0900 (Fri, 15 Jan 2016) | 1 line

* 2016-01-15
------------------------------------------------------------------------
r53537 | hsbt | 2016-01-15 09:25:46 +0900 (Fri, 15 Jan 2016) | 4 lines

* common.mk: test-sample was changed to test-basic.
  [Feature #11982][ruby-core:72823]
* basictest/runner.rb: ditto. rename from tool/rubytest.rb.
* basictest/test.rb: ditto. rename from sample/test.rb.
------------------------------------------------------------------------
r53535 | naruse | 2016-01-14 20:20:24 +0900 (Thu, 14 Jan 2016) | 3 lines

* lib/uri/generic.rb (URI::Generic#to_s): change encoding to
  UTF-8 as Ruby 2.2/ by Koichi ITO <koic.ito@gmail.com>
  https://github.com/ruby/ruby/pull/1188 fix GH-1188
------------------------------------------------------------------------
r53534 | nobu | 2016-01-14 17:36:49 +0900 (Thu, 14 Jan 2016) | 4 lines

variable.c: matched backrefs only

* variable.c (rb_f_global_variables): add matched back references
  only, as well as defiend? operator.
------------------------------------------------------------------------
r53533 | nobu | 2016-01-14 16:12:42 +0900 (Thu, 14 Jan 2016) | 3 lines

sprintf.c: exact number

* sprintf.c (rb_str_format): format exact number more exactly.
------------------------------------------------------------------------
r53532 | nobu | 2016-01-14 16:10:48 +0900 (Thu, 14 Jan 2016) | 4 lines

test_sprintf.rb: simplify

* test/ruby/test_sprintf.rb (test_rational): enumerate formatted
  flags and simplify.
------------------------------------------------------------------------
r53531 | hsbt | 2016-01-14 15:09:19 +0900 (Thu, 14 Jan 2016) | 3 lines

* Remove 512-bit DH group. It's affected by LogJam Attack.
  https://weakdh.org/
  [fix GH-1196][Bug #11968][ruby-core:72766]
------------------------------------------------------------------------
r53530 | nobu | 2016-01-14 11:45:03 +0900 (Thu, 14 Jan 2016) | 4 lines

variable.c: $1..$9 in global_variables

* variable.c (rb_f_global_variables): add $1..$9 only if $~ is
  set.  fix the condition removed at r14014.
------------------------------------------------------------------------
r53529 | svn | 2016-01-14 11:15:01 +0900 (Thu, 14 Jan 2016) | 1 line

* 2016-01-14
------------------------------------------------------------------------
r53528 | nobu | 2016-01-14 11:15:00 +0900 (Thu, 14 Jan 2016) | 4 lines

hash.c: trivial optimization

* hash.c (rb_hash_initialize_copy): trivial optimization, copy
  HASH_PROC_DEFAULT bit directly.
------------------------------------------------------------------------
r53527 | hsbt | 2016-01-13 17:22:18 +0900 (Wed, 13 Jan 2016) | 1 line

* .travis.yml: removed commented-out code.
------------------------------------------------------------------------
r53526 | hsbt | 2016-01-13 17:15:39 +0900 (Wed, 13 Jan 2016) | 1 line

* .travis.yml: removed osx code. follow up with r53517
------------------------------------------------------------------------
r53525 | nobu | 2016-01-13 17:05:07 +0900 (Wed, 13 Jan 2016) | 4 lines

vm_eval.c: fstring format

* vm_eval.c (make_no_method_exception): make format string
  fstring.
------------------------------------------------------------------------
r53524 | nobu | 2016-01-13 16:56:51 +0900 (Wed, 13 Jan 2016) | 4 lines

iseq.c: mark parent iseq

* iseq.c (rb_iseq_mark): mark parent iseq to prevent dynamically
  generated iseq by eval from GC.  [ruby-core:72620] [Bug #11928]
------------------------------------------------------------------------
r53523 | naruse | 2016-01-13 13:02:31 +0900 (Wed, 13 Jan 2016) | 1 line

fix previous commit
------------------------------------------------------------------------
r53522 | naruse | 2016-01-13 12:22:36 +0900 (Wed, 13 Jan 2016) | 1 line

make CI output simpler
------------------------------------------------------------------------
r53521 | naruse | 2016-01-13 12:03:45 +0900 (Wed, 13 Jan 2016) | 4 lines

don't replace job status, it consume log length count

"The log length has exceeded the limit of 4 Megabytes (this usually
means that test suite is raising the same exception over and over)."
------------------------------------------------------------------------
r53520 | nobu | 2016-01-13 11:24:07 +0900 (Wed, 13 Jan 2016) | 5 lines

test_thread.rb: wait for the thread to sleep

* test/ruby/test_thread.rb (test_thread_name): wait for the status
  of the subject thread to fix, so that the status does not change
  between two inspect methods.
------------------------------------------------------------------------
r53519 | naruse | 2016-01-13 11:04:18 +0900 (Wed, 13 Jan 2016) | 1 line

try sudo:false on travis
------------------------------------------------------------------------
r53518 | normal | 2016-01-13 04:26:07 +0900 (Wed, 13 Jan 2016) | 22 lines

resolve class name earlier and more consistently

This further avoids class name resolution issues which came
about due to relying on hash table ordering before r53376.

Pre-caching the class name when it is never used raises memory
use, but the overall gain from moving away from st still gives
us a small gain.  Reverting r53376 and this patch and testing with
"valgrind -v ./ruby -rrdoc -eexit" on x86 (32-bit) shows:

before:
    in use at exit: 1,662,239 bytes in 25,286 blocks
  total heap usage: 49,514 allocs, 24,228 frees, 6,005,561 bytes allocated

after, with this change:
    in use at exit: 1,646,529 bytes in 24,572 blocks
  total heap usage: 48,891 allocs, 24,319 frees, 6,003,921 bytes allocated

* class.c (Init_class_hierarchy): resolve name for rb_cObject ASAP
* object.c (rb_mod_const_set): move name resolution to rb_const_set
* variable.c (rb_const_set): do class resolution here
  [ruby-core:72807] [Bug #11977]
------------------------------------------------------------------------
r53517 | naruse | 2016-01-13 02:10:27 +0900 (Wed, 13 Jan 2016) | 1 line

drop osx and clang because they are often fails and slow
------------------------------------------------------------------------
r53516 | nobu | 2016-01-13 00:37:42 +0900 (Wed, 13 Jan 2016) | 3 lines

Fix typo [ci skip]

* man/ruby.1: fix double word typo.  [Fix GH-1194]
------------------------------------------------------------------------
r53515 | svn | 2016-01-13 00:17:20 +0900 (Wed, 13 Jan 2016) | 1 line

* 2016-01-13
------------------------------------------------------------------------
r53514 | nobu | 2016-01-13 00:17:19 +0900 (Wed, 13 Jan 2016) | 5 lines

iseq.c: mark parents of wrapped iseq

* iseq.c (iseqw_mark): as wrapped iseq is isolated from the call
  stack, it needs to take care of its parent and ancestors, so
  that they do not become orphans.  [ruby-core:72620] [Bug #11928]
------------------------------------------------------------------------
r53513 | eregon | 2016-01-12 21:05:41 +0900 (Tue, 12 Jan 2016) | 1 line

* common.mk: update URL and name for the Ruby spec suite.
------------------------------------------------------------------------
r53512 | sorah | 2016-01-12 20:23:05 +0900 (Tue, 12 Jan 2016) | 1 line

correction to proper word
------------------------------------------------------------------------
r53511 | sorah | 2016-01-12 20:19:25 +0900 (Tue, 12 Jan 2016) | 13 lines

* lib/forwardable.rb: Convert given accessors to String.

  r53381 changed to accept only Symbol or String for accessors, but
  there are several rubygems that pass classes (e.g. Array,
  Hash, ...) as accessors. Prior r53381, it was accepted because Class#to_s
  returns its class name. After r53381 given accessors are checked
  with define_method, but it accepts only Symbol or String, otherwise
  raises TypeError.

      def_delegator Foo, :some_method

  This change is to revert unwanted incompatibility. But this behavior
  may change in the future.
------------------------------------------------------------------------
r53510 | duerst | 2016-01-12 18:42:07 +0900 (Tue, 12 Jan 2016) | 1 line

string.c: made a variable name more grammatically correct
------------------------------------------------------------------------
r53509 | duerst | 2016-01-12 18:35:00 +0900 (Tue, 12 Jan 2016) | 1 line

string.c: minor grammar fix [ci skip]
------------------------------------------------------------------------
r53507 | naruse | 2016-01-12 16:44:18 +0900 (Tue, 12 Jan 2016) | 1 line

fix test to follow r53503
------------------------------------------------------------------------
r53506 | svn | 2016-01-12 16:09:35 +0900 (Tue, 12 Jan 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53505 | duerst | 2016-01-12 16:09:35 +0900 (Tue, 12 Jan 2016) | 3 lines

test/ruby/enc/test_casing_options.rb: Tests for option
parsing/checking for upcase/downcase/capitalize/swapcase
(see r53503; with Kimihito Matsui)
------------------------------------------------------------------------
r53504 | svn | 2016-01-12 16:03:32 +0900 (Tue, 12 Jan 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53503 | duerst | 2016-01-12 16:03:31 +0900 (Tue, 12 Jan 2016) | 2 lines

string.c: Added option parsing/checking for upcase/downcase/
capitalize/swapcase (with Kimihito Matsui
------------------------------------------------------------------------
r53501 | svn | 2016-01-12 10:51:02 +0900 (Tue, 12 Jan 2016) | 1 line

* 2016-01-12
------------------------------------------------------------------------
r53500 | nobu | 2016-01-12 10:51:01 +0900 (Tue, 12 Jan 2016) | 3 lines

escape brackets

* configure.in: escape char class brackets in regexp.
------------------------------------------------------------------------
r53499 | duerst | 2016-01-11 21:28:55 +0900 (Mon, 11 Jan 2016) | 2 lines

include/ruby/oniguruma.h: Added flags needed for upcase/downcase
Unicode addition (with Kimihito Matsui)
------------------------------------------------------------------------
r53498 | nobu | 2016-01-11 09:50:51 +0900 (Mon, 11 Jan 2016) | 4 lines

configure.in: check API version

* configure.in: check if the API version number is consistent with
  the program version number.
------------------------------------------------------------------------
r53497 | svn | 2016-01-11 09:01:12 +0900 (Mon, 11 Jan 2016) | 1 line

* 2016-01-11
------------------------------------------------------------------------
r53496 | nobu | 2016-01-11 09:01:12 +0900 (Mon, 11 Jan 2016) | 4 lines

io.h: remove old macros

* include/ruby/io.h (RB_IO_BUFFER_INIT, RB_IO_FPTR_NEW): remove
  old macros only for internal use and obsolete since 2.2.
------------------------------------------------------------------------
r53495 | nobu | 2016-01-10 20:57:51 +0900 (Sun, 10 Jan 2016) | 5 lines

compile.c: fix lhs splat in massign

* compile.c (compile_massign_lhs): when index ends with splat,
  append rhs value to it like POSTARG, since VM_CALL_ARGS_SPLAT
  splats the last argument only.  [ruby-core:72777] [Bug #11970]
------------------------------------------------------------------------
r53494 | nobu | 2016-01-10 18:43:47 +0900 (Sun, 10 Jan 2016) | 4 lines

ext/-test-: reduce feature names

* ext/-test-/**/extconf.rb: bring up extension libraries which
  have same name as the parent directory to reduce feature names.
------------------------------------------------------------------------
r53493 | nobu | 2016-01-10 15:45:36 +0900 (Sun, 10 Jan 2016) | 6 lines

missing.h: remove explicit_bzero_by_memset_s

* include/ruby/missing.h (explicit_bzero_by_memset_s): remove
  inline implementation by memset_s, which needs a macro before
  including headers and can cause problems in extension libraries
  by the order of the macro and headers.
------------------------------------------------------------------------
r53492 | normal | 2016-01-10 13:44:08 +0900 (Sun, 10 Jan 2016) | 10 lines

io.c: remove obsolete rb_deferr global variable

This was made obsolete by r4190 back in July 2003.  Furthermore,
this existed less than 3 months as it was only introduced in
r3782.

So with absolutely no references to rb_deferr, I doubt any vim
plugin would care anymore.

ChangeLog: fixup indent of my previous commit, oops :X
------------------------------------------------------------------------
r53491 | normal | 2016-01-10 13:43:41 +0900 (Sun, 10 Jan 2016) | 3 lines

ChangeLog: fixup indent for r53488

Oops :x
------------------------------------------------------------------------
r53490 | nobu | 2016-01-10 11:07:00 +0900 (Sun, 10 Jan 2016) | 3 lines

insns.def: description [ci skip]

* insns.def: [DOC] add missing English description.
------------------------------------------------------------------------
r53489 | svn | 2016-01-10 09:35:44 +0900 (Sun, 10 Jan 2016) | 1 line

* 2016-01-10
------------------------------------------------------------------------
r53488 | normal | 2016-01-10 09:35:43 +0900 (Sun, 10 Jan 2016) | 22 lines

stdlib: avoid extra calls to eliminate "\n" from Base64

We may use the '0' (zero) to avoid adding the line feed.
Furthermore, the '*' (asterisk) modifier is not needed for
a single-element arrays.

* ext/psych/lib/psych/visitors/yaml_tree.rb (visit_String):
  eliminate chomp
* lib/net/http.rb (connect): eliminate delete
* lib/net/http/header.rb (basic_encode): ditto
* lib/net/imap.rb (authenticate): eliminate gsub
  (self.encode_utf7): shorten delete arg
* lib/net/smtp.rb (base64_encode): eliminate gsub
* lib/open-uri.rb (OpenURI.open_http): eliminate delete
* lib/rss/rss.rb: ditto
* lib/securerandom.rb (base64): ditto
  (urlsafe_base64): eliminate delete!
* lib/webrick/httpauth/digestauth.rb (split_param_value):
  eliminate chop
* lib/webrick/httpproxy.rb (do_CONNECT): eliminate delete
  (setup_upstream_proxy_authentication): ditto
  [ruby-core:72666] [Feature #11938]
------------------------------------------------------------------------
r53487 | nobu | 2016-01-09 23:19:38 +0900 (Sat, 09 Jan 2016) | 4 lines

test_hash.rb: add test

* test/ruby/test_hash.rb (test_try_convert): Add test for
  Hash.try_convert.  [Fix GH-1190]
------------------------------------------------------------------------
r53486 | nobu | 2016-01-09 23:15:49 +0900 (Sat, 09 Jan 2016) | 4 lines

openssl: fix examples [ci skip]

* ext/openssl/ossl.c: Add missing variables to documentation
  examples.  [Fix GH-1189]
------------------------------------------------------------------------
r53485 | nobu | 2016-01-09 18:26:23 +0900 (Sat, 09 Jan 2016) | 4 lines

symbol.h: unexpected safe call

* symbol.h (is_attrset_id): ASET is an attrset ID.  fix
  unexpected safe call instead of an ordinary ASET.
------------------------------------------------------------------------
r53484 | nobu | 2016-01-09 17:49:56 +0900 (Sat, 09 Jan 2016) | 5 lines

nmake VPATH

* ext/rbconfig/sizeof/depend (sizes.c): add nmake VPATH prefix.
  reapply r53482 with '#' as separator not to be removed in
  make-snapshot.
------------------------------------------------------------------------
r53483 | naruse | 2016-01-09 16:24:56 +0900 (Sat, 09 Jan 2016) | 4 lines

Revert r53482 "nmake VPATH"

it breaks `make dist`.
http://rubyci.s3.amazonaws.com/tk2-243-31075/ruby-trunk/log/20160109T034902Z.fail.html.gz
------------------------------------------------------------------------
r53482 | nobu | 2016-01-09 12:33:20 +0900 (Sat, 09 Jan 2016) | 3 lines

nmake VPATH

* ext/rbconfig/sizeof/depend (sizes.c): add nmake VPATH prefix.
------------------------------------------------------------------------
r53481 | nobu | 2016-01-09 12:32:43 +0900 (Sat, 09 Jan 2016) | 6 lines

probes.h including dummy header

* Makefile.in, win32/Makefile.sub (probes.h): include dummy header
  instead of copying.

* common.mk (probes.dmyh): add nmake VPATH prefix.
------------------------------------------------------------------------
r53480 | nobu | 2016-01-09 11:46:31 +0900 (Sat, 09 Jan 2016) | 4 lines

fix rc files conflict in parallel build

* cygwin/GNUmakefile.in (%.rc): generate .rc files separately to
  get rid of conflict in parallel build.
------------------------------------------------------------------------
r53479 | nobu | 2016-01-09 11:15:45 +0900 (Sat, 09 Jan 2016) | 3 lines

vcs.rb: srcdir accessor

* tool/vcs.rb (VCS#srcdir): add accessor for VCS::GIT.
------------------------------------------------------------------------
r53478 | nobu | 2016-01-09 11:03:22 +0900 (Sat, 09 Jan 2016) | 4 lines

use stringized macros

* version.h (RUBY_COPYRIGHT): use stringized macros,
  RUBY_BIRTH_YEAR_STR and RUBY_RELEASE_YEAR_STR.
------------------------------------------------------------------------
r53477 | nobu | 2016-01-09 10:44:56 +0900 (Sat, 09 Jan 2016) | 5 lines

RUBY_PROGRAM_VERSION from RUBY_VERSION

* configure.in, win32/setup.mak: extract RUBY_PROGRAM_VERSION from
  RUBY_VERSION in version.h instead of RUBY_API_VERSION numbers in
  include/ruby/version.h, and cut it into version numbers.
------------------------------------------------------------------------
r53476 | nobu | 2016-01-09 10:02:17 +0900 (Sat, 09 Jan 2016) | 4 lines

extract version from version.h

* tool/mkconfig.rb: extract version numbers from version.h but not
  from API version in include/ruby/version.h.
------------------------------------------------------------------------
r53475 | nobu | 2016-01-09 09:23:04 +0900 (Sat, 09 Jan 2016) | 4 lines

RUBY_RELEASE_DATE in verconf.mk

* win32/setup.mak (verconf.mk): extract RUBY_RELEASE_DATE without
  quotation marks.
------------------------------------------------------------------------
r53474 | nobu | 2016-01-09 09:20:46 +0900 (Sat, 09 Jan 2016) | 4 lines

fix library teeny

* configure.in, win32/Makefile.sub: fix teeny of library version
  to 0.
------------------------------------------------------------------------
r53473 | nobu | 2016-01-09 09:20:11 +0900 (Sat, 09 Jan 2016) | 4 lines

configure.in: RUBY_PROGRAM_VERSION

* configure.in: use $(RUBY_PROGRAM_VERSION) instead of the triplet
  macros.
------------------------------------------------------------------------
r53472 | nobu | 2016-01-09 09:19:16 +0900 (Sat, 09 Jan 2016) | 5 lines

revert r53459, r53427, r53314

Revert "* tool/make-snapshot: fix for the changes of version.h in r53314."
Revert "* version.h (RUBY_BUILD_VERSION_STR_3): Workaround for old version of"
Revert "program version from API version"
------------------------------------------------------------------------
r53471 | ko1 | 2016-01-09 07:15:40 +0900 (Sat, 09 Jan 2016) | 5 lines

* gc.c: rename PAGE_* to HEAP_PAGE_* because PAGE_SIZE is used
  in Mac OS X.

* test/ruby/test_gc.rb: catch up this fix.

------------------------------------------------------------------------
r53470 | ko1 | 2016-01-09 05:46:36 +0900 (Sat, 09 Jan 2016) | 2 lines

* gc.c: PAGE_BITMAP_PLANES (the number of bitmap) is 4, not 3.

------------------------------------------------------------------------
r53469 | svn | 2016-01-09 05:45:03 +0900 (Sat, 09 Jan 2016) | 1 line

* 2016-01-09
------------------------------------------------------------------------
r53468 | ko1 | 2016-01-09 05:45:02 +0900 (Sat, 09 Jan 2016) | 6 lines

* gc.c: rename constant names HEAP_* to PAGE_*.

  Keys of GC::INTERNAL_CONSTANTS are also renamed.

* test/ruby/test_gc.rb: catch up this fix.

------------------------------------------------------------------------
r53467 | knu | 2016-01-08 22:34:52 +0900 (Fri, 08 Jan 2016) | 1 line

* doc/regexp.rdoc: [DOC] Elaborate on the \G anchor. [ci skip]
------------------------------------------------------------------------
r53466 | ko1 | 2016-01-08 19:56:27 +0900 (Fri, 08 Jan 2016) | 3 lines

* gc.c: remove heap_page::body. Instead of this field,
  heap_page::start field works well.

------------------------------------------------------------------------
r53465 | nobu | 2016-01-08 19:52:24 +0900 (Fri, 08 Jan 2016) | 4 lines

iseq.c: volatile only on gcc4.8

* iseq.c (rb_iseq_compile_with_option): no volatile on gcc other
  than 4.8.
------------------------------------------------------------------------
r53464 | ko1 | 2016-01-08 19:34:14 +0900 (Fri, 08 Jan 2016) | 6 lines

* gc.c: rename rb_heap_t::page_length to rb_heap_t::total_pages.

  `page_length' is not clear (we may understand with length of
  a page).


------------------------------------------------------------------------
r53463 | nobu | 2016-01-08 17:24:01 +0900 (Fri, 08 Jan 2016) | 4 lines

test_tempfile.rb: use assert_file

* test/test_tempfile.rb (test_create_with{,out}_block): use
  assert_file for descriptive failure messages.
------------------------------------------------------------------------
r53462 | svn | 2016-01-08 17:23:59 +0900 (Fri, 08 Jan 2016) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53461 | ko1 | 2016-01-08 17:23:58 +0900 (Fri, 08 Jan 2016) | 9 lines

* gc.c: remove heap_page::heap. This field is only used to recognize
  whether a page is in a tomb or not. Instead of this field,
  heap_page::flags::in_tomb (1 bit field) is added.

  Also type of heap_page::(total|free|final)_slots are changed from
  int to short. 2B is enough for them.



------------------------------------------------------------------------
r53460 | nobu | 2016-01-08 16:47:49 +0900 (Fri, 08 Jan 2016) | 5 lines

iseq.c: make local variables volatile

* iseq.c (rb_iseq_compile_with_option): prepare arguments outside
  EXEC_TAG, and make local variables volatile not to be clobbered
  by longjmp.
------------------------------------------------------------------------
r53459 | shugo | 2016-01-08 12:35:06 +0900 (Fri, 08 Jan 2016) | 1 line

* tool/make-snapshot: fix for the changes of version.h in r53314.
------------------------------------------------------------------------
r53458 | shugo | 2016-01-08 09:38:40 +0900 (Fri, 08 Jan 2016) | 2 lines

* iseq.c (rb_iseq_compile_with_option): move variable initialization
  code to avoid maybe-uninitialized warnings by gcc 4.8.
------------------------------------------------------------------------
r53457 | svn | 2016-01-08 00:07:27 +0900 (Fri, 08 Jan 2016) | 1 line

* 2016-01-08
------------------------------------------------------------------------
r53456 | shugo | 2016-01-08 00:07:25 +0900 (Fri, 08 Jan 2016) | 1 line

* enum.c (enum_min, enum_max): do the same optimization as r53454.
------------------------------------------------------------------------
r53455 | mrkn | 2016-01-07 22:35:32 +0900 (Thu, 07 Jan 2016) | 3 lines

* ruby.h: undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
  and HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P on C++.
  [ruby-core:72736] [Bug #11962]
------------------------------------------------------------------------
r53454 | shugo | 2016-01-07 22:06:23 +0900 (Thu, 07 Jan 2016) | 2 lines

* enum.c (enum_minmax): optimize object comparison in
  Enumerable#minmax.
------------------------------------------------------------------------
r53453 | usa | 2016-01-07 21:28:32 +0900 (Thu, 07 Jan 2016) | 5 lines

* ext/ripper/depend: Just like BSDmake, nmake also recognize the rule of
  ".eventids2.check" as inference one.  but nmake is not cheated by macro.
  this fixes build failure introduced at r53448. see also the commit log of
  r53452.

------------------------------------------------------------------------
r53452 | naruse | 2016-01-07 16:11:33 +0900 (Thu, 07 Jan 2016) | 5 lines

fix r53448

avoid mkmf.rb's suffix rule scanner (lib/mkmf.rb:2085), it detects
suffix rule from depend file and adds .SUFFIXES.
It breaks bsdmake to generate check file named ".eventids2.check".
------------------------------------------------------------------------
r53451 | naruse | 2016-01-07 15:51:09 +0900 (Thu, 07 Jan 2016) | 1 line

Additional fix of r53450
------------------------------------------------------------------------
r53450 | nobu | 2016-01-07 15:37:44 +0900 (Thu, 07 Jan 2016) | 6 lines

mkmf.rb: fix for ODE make

* lib/mkmf.rb (create_makefile): get rid of placing @ at the
  beginning of replacement, which is the loop expansion mechanism
  from the OSF Development Environment (ODE) make.  fix failures
  with bmake by r53448.
------------------------------------------------------------------------
r53449 | nobu | 2016-01-07 14:49:31 +0900 (Thu, 07 Jan 2016) | 6 lines

thread.c: interrupt queue on uninitialized thread

* thread.c (rb_thread_pending_interrupt_p): no pending interrupt
  before initialization.
* thread.c (thread_raise_m, rb_thread_kill): uninitialized thread
  cannot interrupt.  [ruby-core:72732] [Bug #11959]
------------------------------------------------------------------------
r53448 | nobu | 2016-01-07 12:06:58 +0900 (Thu, 07 Jan 2016) | 5 lines

mkmf.rb: library installation messages

* lib/mkmf.rb (configuration, dummy_makefile, create_makefile):
  show library installation messages only when any files need to
  be updated.
------------------------------------------------------------------------
r53447 | svn | 2016-01-07 11:34:34 +0900 (Thu, 07 Jan 2016) | 1 line

* 2016-01-07
------------------------------------------------------------------------
r53446 | nobu | 2016-01-07 11:34:33 +0900 (Thu, 07 Jan 2016) | 7 lines

version.c: no exit in ruby_show_copyright

* include/ruby/backward.h (ruby_show_copyright_to_die): for source
  code backward compatibility.
* ruby.c (process_options): return Qtrue to exit the process
  successfully.
* version.c (ruby_show_copyright): no longer exit.
------------------------------------------------------------------------
r53445 | svn | 2016-01-06 17:23:11 +0900 (Wed, 06 Jan 2016) | 1 line

* 2016-01-06
------------------------------------------------------------------------
r53444 | nobu | 2016-01-06 17:23:10 +0900 (Wed, 06 Jan 2016) | 4 lines

optparse.rb: into kwdarg

* lib/optparse.rb (OptionParser#order!): add `into` optional
  keyword argument to store the results.  [Feature #11191]
------------------------------------------------------------------------
r53443 | nobu | 2016-01-05 23:07:58 +0900 (Tue, 05 Jan 2016) | 1 line

id.h.tmpl: no optparse here
------------------------------------------------------------------------
r53442 | hsbt | 2016-01-05 21:44:56 +0900 (Tue, 05 Jan 2016) | 1 line

* ChangeLog: fix wrong class name.
------------------------------------------------------------------------
r53441 | hsbt | 2016-01-05 21:44:55 +0900 (Tue, 05 Jan 2016) | 2 lines

* test/ruby/test_string.rb(test_chr): added test for String#chr
  [fix GH-1179]
------------------------------------------------------------------------
r53440 | hsbt | 2016-01-05 21:32:43 +0900 (Tue, 05 Jan 2016) | 2 lines

* test/ruby/test_numeric.rb (test_nonzero_p): added test for String#nonzero?
  [fix GH-1187]
------------------------------------------------------------------------
r53439 | nobu | 2016-01-05 15:09:17 +0900 (Tue, 05 Jan 2016) | 10 lines

leakchecker.rb: remove temporary measure

* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#watcher):
  make watcher thread restartable.

* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#terminate):
  new method to terminate watcher thread.

* test/lib/leakchecker.rb (LeakChecker#find_threads): revert
  r46941.
------------------------------------------------------------------------
r53438 | nobu | 2016-01-05 11:47:38 +0900 (Tue, 05 Jan 2016) | 4 lines

Clarify object references example

* doc/marshal.rdoc: Clarify object references example, that the
  reference is same object.  [Fix GH-1156]
------------------------------------------------------------------------
r53437 | nobu | 2016-01-05 09:48:04 +0900 (Tue, 05 Jan 2016) | 5 lines

enc/Makefile.in: get rid of nmake bug

* enc/Makefile.in (ECHO1): expand NULLCMD by configured value to
  get rid of a bug of nmake, that it can expand bare single name
  variable but cannot in substition.
------------------------------------------------------------------------
r53436 | svn | 2016-01-05 05:45:15 +0900 (Tue, 05 Jan 2016) | 1 line

* 2016-01-05
------------------------------------------------------------------------
r53435 | normal | 2016-01-05 05:45:14 +0900 (Tue, 05 Jan 2016) | 8 lines

stringio: binmode sets encoding to ASCII-8BIT

This should match the behavior of IO#binmode as far
as treating content as ASCII-8BIT (binary).

* ext/stringio/stringio.c (strio_binmode): implement to set encoding
* test/stringio/test_stringio.rb (test_binmode): new test
  [ruby-core:72699] [Bug #11945]
------------------------------------------------------------------------
r53434 | naruse | 2016-01-04 16:59:55 +0900 (Mon, 04 Jan 2016) | 1 line

Revert r53431 "temporally revert r53411 to debug"
------------------------------------------------------------------------
r53433 | nobu | 2016-01-04 16:47:44 +0900 (Mon, 04 Jan 2016) | 4 lines

test_ostruct.rb: sort method names

* test/ostruct/test_ostruct.rb (test_accessor_defines_method):
  should not depend on the order of methods.
------------------------------------------------------------------------
r53432 | nobu | 2016-01-04 16:27:02 +0900 (Mon, 04 Jan 2016) | 4 lines

common.mk: double quotes

* common.mk (ext/socket/constdefs.c): use double quotes to get rid
  of escape by caret in nmake.
------------------------------------------------------------------------
r53431 | naruse | 2016-01-04 16:23:25 +0900 (Mon, 04 Jan 2016) | 3 lines

temporally revert r53411 to debug

http://rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20151225T162507Z.diff.html.gz
------------------------------------------------------------------------
r53430 | nobu | 2016-01-04 16:16:09 +0900 (Mon, 04 Jan 2016) | 5 lines

common.mk: generate socket constdefs

* common.mk (ext/socket/constdefs.c): generate platform
  indenpendent constant definitions beforehand under the source
  tree at updating the working copy.
------------------------------------------------------------------------
r53429 | sho-h | 2016-01-04 16:08:05 +0900 (Mon, 04 Jan 2016) | 3 lines

variable.c (rb_mod_deprecate_constant): [DOC] added
documentation for Module#deprecate_constant. [ci skip]

------------------------------------------------------------------------
r53428 | sho-h | 2016-01-04 15:38:26 +0900 (Mon, 04 Jan 2016) | 2 lines

thread_sync.c: [DOC] remove SizedQueue#close argument. [ci skip]

------------------------------------------------------------------------
r53427 | ngoto | 2016-01-04 12:12:44 +0900 (Mon, 04 Jan 2016) | 3 lines

* version.h (RUBY_BUILD_VERSION_STR_3): Workaround for old version of
  Fujitsu C Compiler (fcc) on Solaris. [Bug #11944] [ruby-dev:49468]

------------------------------------------------------------------------
r53426 | nobu | 2016-01-04 10:50:06 +0900 (Mon, 04 Jan 2016) | 1 line

ChangeLog: remove unnecessary preposition [ci skip]
------------------------------------------------------------------------
r53425 | nobu | 2016-01-04 10:46:36 +0900 (Mon, 04 Jan 2016) | 1 line

ChangeLog: remove stale log [ci skip]
------------------------------------------------------------------------
r53424 | hsbt | 2016-01-04 10:14:45 +0900 (Mon, 04 Jan 2016) | 2 lines

* test/coverage/test_coverage.rb: ignored test when enabled to coverage.
  It lead to crash with `make test-all`.
------------------------------------------------------------------------
r53423 | yui-knk | 2016-01-04 08:14:43 +0900 (Mon, 04 Jan 2016) | 7 lines

Move a comment to the appropriate position.

The position of `/* fall through */` was moved by r52931.

* insns.def (opt_case_dispatch): Move a comment to the
  appropriate position.
  [ci skip]
------------------------------------------------------------------------
r53422 | nobu | 2016-01-04 00:24:10 +0900 (Mon, 04 Jan 2016) | 4 lines

contributing.rdoc: update [ci skip]

* doc/contributing.rdoc: mention some make targets, check, up, and
  love.
------------------------------------------------------------------------
r53421 | svn | 2016-01-04 00:03:50 +0900 (Mon, 04 Jan 2016) | 1 line

* 2016-01-04
------------------------------------------------------------------------
r53420 | nobu | 2016-01-04 00:03:49 +0900 (Mon, 04 Jan 2016) | 3 lines

common.mk: up in help

* common.mk (help): mention `up` target briefly.
------------------------------------------------------------------------
r53419 | nobu | 2016-01-03 23:55:25 +0900 (Sun, 03 Jan 2016) | 5 lines

Fix defined? expressions

* lib/rubygems/security.rb (DIGEST_ALGORITHM, KEY_ALGORITHM):
  should check same name as the used constants.
  [ruby-core:72674] [Bug #11940]
------------------------------------------------------------------------
r53418 | nobu | 2016-01-03 23:19:09 +0900 (Sun, 03 Jan 2016) | 4 lines

Makefile.in: drop dependency

* Makefile.in (aclocal.m4): drop the dependency of aclocal.m4 for
  broken autotools installations.
------------------------------------------------------------------------
r53417 | nobu | 2016-01-03 19:22:12 +0900 (Sun, 03 Jan 2016) | 4 lines

aclocal.m4: add

* aclocal.m4: add fallback file for non-aclocal environments.
  [ruby-core:72683] [Bug #11942]
------------------------------------------------------------------------
r53416 | yui-knk | 2016-01-03 13:59:54 +0900 (Sun, 03 Jan 2016) | 8 lines

Use `rb_method_visibility_t` instead of `int` in `rb_print_undef`

* eval_error.c (rb_print_undef): Use `rb_method_visibility_t`
  instead of `int`.
* eval_intern.h (rb_print_undef): ditto
* proc.c (mnew_internal): ditto
* vm_method.c (rb_export_method): ditto
  [Misc #11649] [ruby-core:71311] [fix GH-1078]
------------------------------------------------------------------------
r53415 | svn | 2016-01-03 12:12:21 +0900 (Sun, 03 Jan 2016) | 1 line

* 2016-01-03
------------------------------------------------------------------------
r53414 | nobu | 2016-01-03 12:12:20 +0900 (Sun, 03 Jan 2016) | 4 lines

acinclude.m4: rename

* acinclude.m4: rename aclocal.m4, which should be generated by
  aclocal.  [ruby-core:72675] [Bug #11941]
------------------------------------------------------------------------
r53413 | normal | 2016-01-02 21:08:34 +0900 (Sat, 02 Jan 2016) | 11 lines

thread_sync.c: remove unnecessary casts for queue_sleep

"Qfalse" and "(VALUE)0" are equivalent, and do not matter
for an ignored argument, either.

Additionally, there's no reason to cast the pointer to
rb_thread_sleep_deadly when we already have a queue_sleep
wrapper.

* thread_sync.c (queue_do_pop): avoid cast with Qfalse
  (rb_szqueue_push): ditto, use queue_sleep wrapper
------------------------------------------------------------------------
r53412 | seki | 2016-01-02 16:19:58 +0900 (Sat, 02 Jan 2016) | 1 line

Allow ERB subclass to add token easily. [Feature #11936]
------------------------------------------------------------------------
r53411 | nobu | 2016-01-02 14:44:41 +0900 (Sat, 02 Jan 2016) | 4 lines

parse.y: use nd_tag

* parse.y (regexp): set_yylval_num sets u1, should use nd_tag
  instead of nd_state.  [ruby-core:72638] [Bug #11932]
------------------------------------------------------------------------
r53410 | naruse | 2016-01-02 13:39:56 +0900 (Sat, 02 Jan 2016) | 3 lines

Revert r53409 "parse.y: yylval.num should be u3"

It introduces SEGV
------------------------------------------------------------------------
r53409 | nobu | 2016-01-02 11:11:09 +0900 (Sat, 02 Jan 2016) | 4 lines

parse.y: yylval.num should be u3

* parse.y (set_yylval_num): should be used as nd_state, set to u3.
  [ruby-core:72638] [Bug #11932]
------------------------------------------------------------------------
r53408 | svn | 2016-01-02 08:47:24 +0900 (Sat, 02 Jan 2016) | 1 line

* 2016-01-02
------------------------------------------------------------------------
r53407 | marcandre | 2016-01-02 02:27:38 +0900 (Sat, 02 Jan 2016) | 2 lines

* lib/ostruct.rb: Fix case of frozen object with initializer.
  Bug revealed by RubySpec [ruby-core:72639]
------------------------------------------------------------------------
r53406 | kazu | 2016-01-01 22:02:56 +0900 (Fri, 01 Jan 2016) | 1 line

* NEWS: mention about CSV's liberal_parsing option.
------------------------------------------------------------------------
r53405 | hsbt | 2016-01-01 21:39:29 +0900 (Fri, 01 Jan 2016) | 1 line

* ChangeLog: added missing reference for GitHub
------------------------------------------------------------------------
r53404 | hsbt | 2016-01-01 19:39:16 +0900 (Fri, 01 Jan 2016) | 1 line

* doc/NEWS-2.3.0: fix double words typo.
------------------------------------------------------------------------
r53403 | nobu | 2016-01-01 15:28:58 +0900 (Fri, 01 Jan 2016) | 4 lines

compile.c: adjust call_info count

* compile.c (remove_unreachable_chunk): decrease count of
  call_info in removed instructions.  fix up r53402.
------------------------------------------------------------------------
r53402 | nobu | 2016-01-01 12:05:55 +0900 (Fri, 01 Jan 2016) | 4 lines

compile.c: remove unreferred label

* compile.c (remove_unreachable_chunk): remove unreferred label
  to optimize away unreachable chunk.
------------------------------------------------------------------------
r53401 | jeg2 | 2016-01-01 11:44:48 +0900 (Fri, 01 Jan 2016) | 1 line

Adding a liberal_parsing option to CSV.  Patch by Braden Anderson.
------------------------------------------------------------------------
r53400 | nobu | 2016-01-01 10:27:30 +0900 (Fri, 01 Jan 2016) | 5 lines

mkconfig.rb: SDKROOT

* tool/mkconfig.rb (RbConfig): prefix SDKROOT to oldincludedir
  not includedir, the latter is outside the ruby installation.
  [ruby-core:72496] [Bug #11881]
------------------------------------------------------------------------
r53399 | nobu | 2016-01-01 08:53:04 +0900 (Fri, 01 Jan 2016) | 5 lines

Add test for Enumerator::Lazy#take

* test/ruby/test_lazy_enumerator.rb (test_take_bad_arg): Add test
  code in case of Enumerator::Lazy#take called with negative number.
  [ruby-dev:49467] [Bug #11933]
------------------------------------------------------------------------
r53398 | nobu | 2016-01-01 05:06:22 +0900 (Fri, 01 Jan 2016) | 5 lines

parse.y: single-quote indented heredoc

* parse.y (parser_here_document): update indent for each line in
  indented here document with single-quotes.
  [ruby-core:72479] [Bug #11871]
------------------------------------------------------------------------
r53397 | svn | 2016-01-01 03:26:59 +0900 (Fri, 01 Jan 2016) | 1 line

* 2016-01-01
------------------------------------------------------------------------
r53396 | nobu | 2016-01-01 03:26:46 +0900 (Fri, 01 Jan 2016) | 5 lines

ostruct.rb: deferred accessors

* lib/ostruct.rb (freeze): define deferred accessors before
  freezing to get rid of an error when just reading frozen
  OpenStruct.
------------------------------------------------------------------------
r53395 | marcandre | 2015-12-31 14:37:21 +0900 (Thu, 31 Dec 2015) | 2 lines

* lib/ostruct.rb: Fix new_ostruct_member to correctly avoid redefinition
  [#11901]
------------------------------------------------------------------------
r53394 | nobu | 2015-12-31 10:49:27 +0900 (Thu, 31 Dec 2015) | 4 lines

test_module.rb: sort constants

* test/ruby/test_module.rb (test_classpath): since r53376, all
  results of Module#constants should be sorted to compare.
------------------------------------------------------------------------
r53393 | nobu | 2015-12-31 10:38:28 +0900 (Thu, 31 Dec 2015) | 4 lines

ruby-additional.el: escape control code

* misc/ruby-additional.el (ruby-encode-unicode): escape control
  code except for LF.
------------------------------------------------------------------------
r53392 | nobu | 2015-12-31 09:39:03 +0900 (Thu, 31 Dec 2015) | 4 lines

ruby-additional.el: encode non-ASCII code only

* misc/ruby-additional.el (ruby-encode-unicode): encode non-ASCII
  code only, excluding ASCII control code, e.g. \t, \n, etc.
------------------------------------------------------------------------
r53391 | naruse | 2015-12-31 04:06:55 +0900 (Thu, 31 Dec 2015) | 1 line

skip if locale is not UTF-8
------------------------------------------------------------------------
r53390 | naruse | 2015-12-31 02:47:43 +0900 (Thu, 31 Dec 2015) | 5 lines

* test/ruby/test_module.rb (test_classpath): r53376 may change
  the order of m.constants.
  `make TESTS='-v ruby/test_class.rb ruby/test_module.rb' test-all`
  may fail after that.
  http://rubyci.s3.amazonaws.com/tk2-243-31075/ruby-trunk/log/20151230T164202Z.log.html.gz
------------------------------------------------------------------------
r53389 | svn | 2015-12-31 02:20:50 +0900 (Thu, 31 Dec 2015) | 1 line

* 2015-12-31
------------------------------------------------------------------------
r53388 | eregon | 2015-12-31 02:20:28 +0900 (Thu, 31 Dec 2015) | 1 line

* common.mk (help): Fix typo.
------------------------------------------------------------------------
r53387 | hsbt | 2015-12-30 20:53:15 +0900 (Wed, 30 Dec 2015) | 2 lines

* lib/net/http/responses.rb: Added new response class for 451 status code.
* lib/net/http.rb: documentation for HTTPUnavailableForLegalReasons
------------------------------------------------------------------------
r53386 | hsbt | 2015-12-30 20:45:52 +0900 (Wed, 30 Dec 2015) | 3 lines

* lib/webrick/httpstatus.rb: Added HTTP 451 Status Code.
  [fix GH-1167] Patch by @MuhammetDilmac
  https://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00
------------------------------------------------------------------------
r53385 | hsbt | 2015-12-30 20:26:09 +0900 (Wed, 30 Dec 2015) | 2 lines

* doc/syntax/calling_methods.rdoc: fix old operator for safe navigation
  operator. [ci skip][fix GH-1182] Patch by @dougo
------------------------------------------------------------------------
r53384 | nobu | 2015-12-30 16:43:25 +0900 (Wed, 30 Dec 2015) | 4 lines

Add test for String#ord

* test/ruby/test_string.rb (test_ord): Add test for String#ord.
  [Fix GH-1181]
------------------------------------------------------------------------
r53383 | nobu | 2015-12-30 11:28:59 +0900 (Wed, 30 Dec 2015) | 6 lines

forwardable.rb: adjust backtrace by tail call

* lib/forwardable.rb (def_instance_delegator): adjust backtrace of
  method body by tail call optimization.  adjusting the delegated
  target is still done by deleting backtrace.
* lib/forwardable.rb (def_single_delegator): ditto.
------------------------------------------------------------------------
r53382 | nobu | 2015-12-30 11:26:15 +0900 (Wed, 30 Dec 2015) | 3 lines

fix commit miss

* test/test_forwardable.rb: add tests for r53381.
------------------------------------------------------------------------
r53381 | nobu | 2015-12-30 11:18:44 +0900 (Wed, 30 Dec 2015) | 71 lines

Forwardable: Fix delegating to 'args' and 'block'

* lib/forwardable.rb (def_instance_delegator) fix delegating to
  'args' and 'block', clashing with local variables in generated
  methods.  [ruby-core:72579] [Bug #11916]

* lib/forwardable.rb (def_single_delegator): ditto.

If you have a class that uses Forwardable to delegate a method to
another object, and the method that returns the delegate object is
called `args` or `block`, then Forwardable will fail to work.

Here's a simple example:

    class ModelCreator
      extend Forwardable

      attr_reader :args

      def_delegator :args, :model_name

      def initialize(args)
        @args = args
      end
    end

    ModelCreator.new.model_name

If you run the last line above, then you'll get:

    NoMethodError: undefined method `model_name' for []:Array

This error occurs because `def_delegator` -- as it is written in Ruby --
uses metaprogramming to add methods to the class that will then delegate
to the delegate object. So it's as if we had written:

    class ModelCreator
      extend Forwardable

      attr_reader :args

      def model_name(*args, &block)
        args.model_name(*args, &block)
      end

      def initialize(args)
        @args = args
      end
    end

As you can see, `def_delegator` will not only forward the method call
onto the delegate object, it will also forward any arguments provided as
well. It is here that the bug arises: it splats all of the arguments
into a variable which is called `args`, and because of how variable
scope works in Ruby, it then attempts to call `model_name` on *this*
variable and *not* our delegate object method.

The fix is to call the delegate object method manually using `__send__`.
(This assumes, of course, that the given receiver is, in fact, the name
of a method and not the name of an instance variable, which is also a
possibility.) We use `__send__` because the delegate object method could
be private.

So, that looks like this:

    def model_name(*args, &block)
      __send__(:args).model_name(*args, &block)
    end

Because `def_delegators` and `delegate` use `def_delegator` internally,
they also get this fix as well.
------------------------------------------------------------------------
r53380 | nobu | 2015-12-30 09:58:58 +0900 (Wed, 30 Dec 2015) | 5 lines

object.c: fix prepend cmp

* object.c (rb_class_inherited_p): search the corresponding
  ancestor to prepended module from prepending class itself.
  [ruby-core:72493] [Bug #11878]
------------------------------------------------------------------------
r53379 | nobu | 2015-12-30 09:20:03 +0900 (Wed, 30 Dec 2015) | 5 lines

test_io.rb: test for rb_io_modestr_fmode

* test/stringio/test_io.rb (test_flag): add assertion for error when
  text and binary mode are mixed.
  [ruby-dev:49465] [Feature #11921]
------------------------------------------------------------------------
r53378 | nobu | 2015-12-30 08:44:01 +0900 (Wed, 30 Dec 2015) | 4 lines

test_stringio.rb: test_initialize

* test/stringio/test_stringio.rb (test_initialize): add test for
  StringIO#initialize.  [ruby-core:72585] [Feature #11920]
------------------------------------------------------------------------
r53377 | normal | 2015-12-30 05:21:17 +0900 (Wed, 30 Dec 2015) | 4 lines

ChangeLog: add entry for r53376

Oops :x
[ruby-core:72112] [Feature #11614]
------------------------------------------------------------------------
r53376 | normal | 2015-12-30 05:19:14 +0900 (Wed, 30 Dec 2015) | 40 lines

use id_table for constant tables

valgrind 3.9.0 on x86-64 reports a minor reduction in memory usage
when loading only RubyGems and RDoc by running: ruby -rrdoc -eexit

before: HEAP SUMMARY:
    in use at exit: 2,913,448 bytes in 27,394 blocks
  total heap usage: 48,362 allocs, 20,968 frees, 9,034,621 bytes alloc

after: HEAP SUMMARY:
    in use at exit: 2,880,056 bytes in 26,712 blocks
  total heap usage: 47,791 allocs, 21,079 frees, 9,046,507 bytes alloc

* class.c (struct clone_const_arg): adjust for id_table
  (clone_const): ditto
  (clone_const_i): ditto
  (rb_mod_init_copy): ditto
  (rb_singleton_class_clone_and_attach): ditto
  (rb_include_class_new): ditto
  (include_modules_at): ditto
* constant.h (rb_free_const_table): ditto
* gc.c (free_const_entry_i): ditto
  (rb_free_const_table): ditto
  (obj_memsize_of): ditto
  (mark_const_entry_i): ditto
  (mark_const_tbl): ditto
* internal.h (struct rb_classext_struct): ditto
* object.c (rb_mod_const_set): resolve class name on assignment
* variable.c (const_update): replace with const_tbl_update
  (const_tbl_update): new function
  (fc_i): adjust for id_table
  (find_class_path): ditto
  (autoload_const_set): st_update => const_tbl_update
  (rb_const_remove): adjust for id_table
  (sv_i): ditto
  (rb_local_constants_i): ditto
  (rb_local_constants): ditto
  (rb_mod_const_at): ditto
  (rb_mod_const_set): ditto
  (rb_const_lookup): ditto
------------------------------------------------------------------------
r53375 | nagachika | 2015-12-30 04:26:52 +0900 (Wed, 30 Dec 2015) | 2 lines

* thread_pthread.c (rb_thread_create_timer_thread): destroy attr even
  if pthread_create() failed.
------------------------------------------------------------------------
r53374 | svn | 2015-12-30 03:20:33 +0900 (Wed, 30 Dec 2015) | 1 line

* 2015-12-30
------------------------------------------------------------------------
r53373 | normal | 2015-12-30 03:20:27 +0900 (Wed, 30 Dec 2015) | 36 lines

thread_pthread.c (rb_thread_create_timer_thread): fix race

This fixes an occasional [ASYNC BUG] failure in
bootstraptest/test_fork.rb '[ruby-dev:37934]'
which tests fork/pthread_create failure by setting
RLIMIT_NPROC to 1 and triggering EAGAIN on pthread_create
when attempting to recreate the timer thread.

The problem timeline is as follows:

thread 1                           thread 2
---------------------------------------------------------------
rb_thread_create_timer_thread
setup_communication_pipe
                                   rb_thread_wakeup_timer_thread_low
pthread_create fails               pipe looks valid, write!
CLOSE_INVALIDATE (x4)              EBADF -> ASYNC BUG

The checks in rb_thread_wakeup_timer_thread_low only tried to
guarantee proper ordering with native_stop_timer_thread, not
rb_thread_create_timer_thread :x

Now, this should allow rb_thread_create_timer_thread to
synchronize properly with rb_thread_wakeup_timer_thread_low by
delaying the validation marking of the timer_thread_pipe until
we are certain the timer thread is alive.

In this version, rb_thread_wakeup_timer_thread_low becomes a
noop.  Threading is still completely broken with NPROC==1, but
there's not much we can do about it beside warn the user.
We no longer spew a scary [ASYNC BUG] message or dump core
on them.

* thread_pthread.c (setup_communication_pipe): delay setting owner
  (rb_thread_create_timer_thread): until thread creation succeeds
  [ruby-core:72590] [Bug #11922]
------------------------------------------------------------------------
r53372 | nobu | 2015-12-29 21:23:04 +0900 (Tue, 29 Dec 2015) | 4 lines

ruby.c: overriding warning options

* ruby.c (proc_options): successive -W option overrides previous
  warning options.
------------------------------------------------------------------------
r53371 | nagachika | 2015-12-29 21:17:21 +0900 (Tue, 29 Dec 2015) | 1 line

* ChangeLog: remove duplicated entries at r53366.
------------------------------------------------------------------------
r53370 | nobu | 2015-12-29 19:39:53 +0900 (Tue, 29 Dec 2015) | 4 lines

ruby.c: parse -W option

* ruby.c (proc_options): parse and skip '-W' option and its
  argument even if ignored.
------------------------------------------------------------------------
r53369 | nobu | 2015-12-29 19:12:48 +0900 (Tue, 29 Dec 2015) | 4 lines

ruby.c: command line option over RUBYOPT env

* ruby.c (proc_options): -W command line option should be able to
  override -w in RUBYOPT environment variable.
------------------------------------------------------------------------
r53368 | nobu | 2015-12-29 17:54:18 +0900 (Tue, 29 Dec 2015) | 4 lines

eval.c: warn block for using

* eval.c (ignored_block): warn if a block is given to `using`,
  which is probably for `Module.new`.
------------------------------------------------------------------------
r53367 | nobu | 2015-12-29 17:36:22 +0900 (Tue, 29 Dec 2015) | 4 lines

compile.c: adjust label reference

* compile.c (new_adjust_body): labels referred by adjuststack
  shoud not be optimized away.
------------------------------------------------------------------------
r53366 | nobu | 2015-12-29 12:48:36 +0900 (Tue, 29 Dec 2015) | 5 lines

ostruct.rb: respond_to?

* lib/ostruct.rb (OpenStruct): make respond_to? working on
  just-allocated objects for workaround of Psych.
  [ruby-core:72501] [Bug #11884]
------------------------------------------------------------------------
r53365 | mrkn | 2015-12-29 10:37:20 +0900 (Tue, 29 Dec 2015) | 5 lines

* test/mkmf/test_have_func.rb (test_have_func):
  Add assertion to examine the existence of HAVE_RUBY_INIT.

* test/mkmf/test_have_func.rb (test_not_have_func):
  Add assertion to examine the absence of HAVE_RUBY_INIT.
------------------------------------------------------------------------
r53364 | normal | 2015-12-29 06:52:15 +0900 (Tue, 29 Dec 2015) | 4 lines

thread_sync.c: static classes

We do not want to waste space by exposing globals to other
objects.
------------------------------------------------------------------------
r53363 | normal | 2015-12-29 05:31:10 +0900 (Tue, 29 Dec 2015) | 5 lines

Resolv::IPv6.create: avoid modifying frozen string literal

* lib/resolv.rb (Resolv::IPv6.create): avoid modifying frozen
* test/resolv/test_dns.rb (test_ipv6_create): test for above
  [Bug #11910] [ruby-core:72559]
------------------------------------------------------------------------
r53362 | a_matsuda | 2015-12-29 00:10:25 +0900 (Tue, 29 Dec 2015) | 1 line

:warning: key "accelerator" is duplicated and overwritten in Tk samples
------------------------------------------------------------------------
r53361 | a_matsuda | 2015-12-29 00:10:19 +0900 (Tue, 29 Dec 2015) | 1 line

Missing require
------------------------------------------------------------------------
r53360 | a_matsuda | 2015-12-29 00:10:10 +0900 (Tue, 29 Dec 2015) | 1 line

parsedate is no more available since 1.9
------------------------------------------------------------------------
r53359 | svn | 2015-12-29 00:10:08 +0900 (Tue, 29 Dec 2015) | 1 line

* 2015-12-29
------------------------------------------------------------------------
r53358 | a_matsuda | 2015-12-29 00:09:59 +0900 (Tue, 29 Dec 2015) | 4 lines

Convert euc-jp resource file in Tk sample to utf-8

The sample program assumes the file to be encoded in utf-8
https://github.com/ruby/ruby/blob/02531898987693bd28879c78b3cb660006891186/ext/tk/sample/tkoptdb.rb#L15-L17
------------------------------------------------------------------------
r53357 | a_matsuda | 2015-12-29 00:09:51 +0900 (Tue, 29 Dec 2015) | 1 line

Documentation typo
------------------------------------------------------------------------
r53356 | kazu | 2015-12-28 16:04:01 +0900 (Mon, 28 Dec 2015) | 1 line

fix a typo [ci skip]
------------------------------------------------------------------------
r53355 | nobu | 2015-12-28 15:42:18 +0900 (Mon, 28 Dec 2015) | 4 lines

iseq.c: suppress warnings

* iseq.c (rb_iseq_compile_with_option): suppress "clobbered"
  warnings by old gcc.
------------------------------------------------------------------------
r53354 | nobu | 2015-12-28 14:56:00 +0900 (Mon, 28 Dec 2015) | 4 lines

Add test for String#rstrip!

* test/ruby/test_string.rb (TestString#test_rstrip_bang): Add test
  for String#rstrip!.  [Fix GH-1176]
------------------------------------------------------------------------
r53353 | svn | 2015-12-28 09:19:11 +0900 (Mon, 28 Dec 2015) | 1 line

* 2015-12-28
------------------------------------------------------------------------
r53352 | nobu | 2015-12-28 09:18:55 +0900 (Mon, 28 Dec 2015) | 4 lines

Add test for String#lstrip!

* test/ruby/test_string.rb (TestString#test_lstrip_bang): Add test
  for String#lstrip!.  [Fix GH-1176]
------------------------------------------------------------------------
r53351 | svn | 2015-12-27 23:34:16 +0900 (Sun, 27 Dec 2015) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53350 | suke | 2015-12-27 23:34:11 +0900 (Sun, 27 Dec 2015) | 3 lines

* ext/win32ole/win32ole.c (ole_variant2val): refactoring.


------------------------------------------------------------------------
r53349 | usa | 2015-12-27 21:24:03 +0900 (Sun, 27 Dec 2015) | 3 lines

* test/ruby/test_process.rb (TestProcess#test_execopts_open_chdir_m17n_path):
  test for r53346, r53347 and r53348.

------------------------------------------------------------------------
r53348 | usa | 2015-12-27 21:15:20 +0900 (Sun, 27 Dec 2015) | 3 lines

* process.c (rb_execarg_parent_start1): need to convert the encoding to
  ospath's one.

------------------------------------------------------------------------
r53347 | usa | 2015-12-27 21:03:45 +0900 (Sun, 27 Dec 2015) | 2 lines

* process.c (rb_execarg_addopt): need to convert to ospath.

------------------------------------------------------------------------
r53346 | usa | 2015-12-27 20:54:59 +0900 (Sun, 27 Dec 2015) | 3 lines

* process.c: use rb_w32_uchdir() instead of plain chdir() on Windows.
  reported by naruse via twitter.

------------------------------------------------------------------------
r53345 | hsbt | 2015-12-27 20:00:36 +0900 (Sun, 27 Dec 2015) | 1 line

* enc/x_emoji.h: fix dead-link.
------------------------------------------------------------------------
r53344 | hsbt | 2015-12-27 19:55:59 +0900 (Sun, 27 Dec 2015) | 1 line

* doc/NEWS-2.3.0: fix a typo.
------------------------------------------------------------------------
r53343 | a_matsuda | 2015-12-27 18:59:31 +0900 (Sun, 27 Dec 2015) | 3 lines

Method name typo in a Tk sample

* ext/tk/sample/tkextlib/treectrl/help.rb: kength => length
------------------------------------------------------------------------
r53342 | a_matsuda | 2015-12-27 18:59:20 +0900 (Sun, 27 Dec 2015) | 3 lines

ivar name typo in a Tk sample

* ext/tk/sample/tkextlib/treectrl/outlook-newgroup.rb: @Messge => @Message
------------------------------------------------------------------------
r53341 | a_matsuda | 2015-12-27 18:59:13 +0900 (Sun, 27 Dec 2015) | 3 lines

Method name typo in a Tk sample

* ext/tk/sample/tktextio.rb: trancate => truncate
------------------------------------------------------------------------
r53340 | a_matsuda | 2015-12-27 18:58:58 +0900 (Sun, 27 Dec 2015) | 3 lines

ivar name typo in a Tk sample

* ext/tk/sample/tktextio.rb: @opne => @open
------------------------------------------------------------------------
r53339 | a_matsuda | 2015-12-27 18:58:48 +0900 (Sun, 27 Dec 2015) | 4 lines

Typo in Tk samples

* ext/tk/sample/demos-en/goldberg.rb: miliseconds => milliseconds
* ext/tk/sample/demos-jp/goldberg.rb: miliseconds => milliseconds
------------------------------------------------------------------------
r53338 | a_matsuda | 2015-12-27 18:58:22 +0900 (Sun, 27 Dec 2015) | 4 lines

Method name typo in Tk samples

* ext/tk/sample/demos-en/ctext.rb: seleect_adjust => select_adjust
* ext/tk/sample/demos-jp/ctext.rb: seleect_adjust => select_adjust
------------------------------------------------------------------------
r53337 | a_matsuda | 2015-12-27 18:58:14 +0900 (Sun, 27 Dec 2015) | 3 lines

Typo in a Tk sample

* ext/tk/sample/tkextlib/bwidget/tree.rb: allways => always
------------------------------------------------------------------------
r53336 | a_matsuda | 2015-12-27 18:58:08 +0900 (Sun, 27 Dec 2015) | 3 lines

Typo in a Tk sample

* ext/tk/sample/demos-jp/mclist.rb: aquq => aqua
------------------------------------------------------------------------
r53335 | a_matsuda | 2015-12-27 18:57:47 +0900 (Sun, 27 Dec 2015) | 3 lines

Typo in a gvar name

* ext/tk/sample/demos-jp/hscale.rb: $hscale_deom => $hscale_demo
------------------------------------------------------------------------
r53334 | a_matsuda | 2015-12-27 18:57:42 +0900 (Sun, 27 Dec 2015) | 4 lines

Typo in Tk samples

* ext/tk/sample/demos-en/ttkbut.rb: happyness => happiness
* ext/tk/sample/demos-jp/ttkbut.rb: happyness => happiness
------------------------------------------------------------------------
r53333 | a_matsuda | 2015-12-27 18:57:30 +0900 (Sun, 27 Dec 2015) | 1 line

Typos in messages
------------------------------------------------------------------------
r53332 | a_matsuda | 2015-12-27 18:57:21 +0900 (Sun, 27 Dec 2015) | 3 lines

Documentation typos

[ci skip]
------------------------------------------------------------------------
r53331 | a_matsuda | 2015-12-27 18:57:12 +0900 (Sun, 27 Dec 2015) | 8 lines

Typo: widget (?)

* ext/tk/lib/tk.rb: wiget => widget
* ext/tk/sample/demos-en/{floor.rb,floor2.rb,puzzle.rb}: widet => widget
* ext/tk/sample/demos-en/textpeer.rb: Wdget => widget
* ext/tk/sample/demos-jp/puzzle.rb: widet => widget
* ext/tk/sample/demos-jp/textpeer.rb: Wdget => widget
* ext/tk/sample/tkextlib/bwidget/basic.rb: widtet => widget
------------------------------------------------------------------------
r53330 | nobu | 2015-12-27 18:08:17 +0900 (Sun, 27 Dec 2015) | 5 lines

Fix rdoc for String#rstrip!, lstrip! [ci skip]

* string.c (rb_str_lstrip_bang, rb_str_rstrip_bang): [DOC] Fix
  ruby-doc comments for String#rstrip! and lstrip!.  It looks like
  dropped bang.  [Fix GH-1175]
------------------------------------------------------------------------
r53329 | normal | 2015-12-27 15:15:06 +0900 (Sun, 27 Dec 2015) | 8 lines

IO#readpartial rejects bad args

Sometimes a sleepy developer will want to swap read_nonblock
for readpartial forget to remove "exception: false"

* io.c (io_getpartial): remove unused kwarg from template
* test/ruby/test_io.rb (test_readpartial_bad_args): new
  [Bug #11885]
------------------------------------------------------------------------
r53328 | nobu | 2015-12-27 11:50:56 +0900 (Sun, 27 Dec 2015) | 5 lines

Add tests for String#lstrip and rstrip

* test/ruby/test_string.rb (test_rstrip, test_lstrip): Add tests
  for String#lstrip and rstrip.  The test cases are used from
  string.c ruby-doc comments.  [Fix GH-1174]
------------------------------------------------------------------------
r53327 | nobu | 2015-12-27 11:47:49 +0900 (Sun, 27 Dec 2015) | 4 lines

Add test for String#test_insert.

* test/ruby/test_string.rb (test_insert): The test cases are
  written in string.c comments as a reference.  [Fix GH-1173]
------------------------------------------------------------------------
r53326 | nobu | 2015-12-27 11:03:36 +0900 (Sun, 27 Dec 2015) | 3 lines

parse.y: show_bitstack

* parse.y (show_bitstack): trace stack_type value if yydebug.
------------------------------------------------------------------------
r53325 | nobu | 2015-12-27 10:51:50 +0900 (Sun, 27 Dec 2015) | 6 lines

depend: version dependency

* enc/depend (enc, trans): fix version dependency, let encoding
  and transcoding shared object files depend on config.status,
  instead of enc.mk which is regenerated at each build, for the
  RUBY_SO_NAME value used at runtime link.
------------------------------------------------------------------------
r53324 | nobu | 2015-12-27 10:03:16 +0900 (Sun, 27 Dec 2015) | 4 lines

depend: version dependency

* enc/depend (enc, trans): fix version dependency, shared object
  files depend on the RUBY_SO_NAME value for runtime link.
------------------------------------------------------------------------
r53323 | svn | 2015-12-27 09:48:25 +0900 (Sun, 27 Dec 2015) | 1 line

* remove trailing spaces.
------------------------------------------------------------------------
r53322 | suke | 2015-12-27 09:48:20 +0900 (Sun, 27 Dec 2015) | 6 lines

* ext/win32ole/win32ole.c (ole_vstr2wc, ole_variant2val): fix blank
  string conversion. 
  [Bug #11880]
  Thanks Akio Tajima for the patch!


------------------------------------------------------------------------
r53321 | svn | 2015-12-27 09:35:12 +0900 (Sun, 27 Dec 2015) | 1 line

* 2015-12-27
------------------------------------------------------------------------
r53320 | nobu | 2015-12-27 09:34:55 +0900 (Sun, 27 Dec 2015) | 4 lines

`nul` should be uppercase [ci skip]

* doc/extension.rdoc: [DOC] `nul` should be uppercase.
  change 'nul' => 'NUL'.  [Fix GH-1172]
------------------------------------------------------------------------
r53319 | naruse | 2015-12-26 19:01:35 +0900 (Sat, 26 Dec 2015) | 3 lines

Revert "* tool/post-commit.sh: copied from svn server."

manged in another repo
------------------------------------------------------------------------
r53318 | kou | 2015-12-26 18:33:43 +0900 (Sat, 26 Dec 2015) | 5 lines

* lib/xmlrpc/client.rb: Support SSL options in async methods of
  XMLRPC::Client.
  [Bug #11489]
  Reported by Aleksandar Kostadinov. Thanks!!!

------------------------------------------------------------------------
r53317 | svn | 2015-12-26 18:26:08 +0900 (Sat, 26 Dec 2015) | 1 line

* properties.
------------------------------------------------------------------------
r53316 | naruse | 2015-12-26 18:25:58 +0900 (Sat, 26 Dec 2015) | 1 line

* tool/post-commit.sh: copied from svn server.
------------------------------------------------------------------------
r53315 | nobu | 2015-12-26 11:26:40 +0900 (Sat, 26 Dec 2015) | 4 lines

miniinit.c: built-in encoding aliases

* miniinit.c (Init_enc): add some common aliases of built-in
  encodings.  [ruby-core:72481] [Bug #11872]
------------------------------------------------------------------------
r53314 | nobu | 2015-12-26 01:24:43 +0900 (Sat, 26 Dec 2015) | 6 lines

program version from API version

* configure.in, version.h (RUBY_PROGRAM_VERSION): extract version
  numbers from API version in include/ruby/version.h except for
  TEENY, to save matz job next year.
* win32/setup.mak (-version-): use program version.
------------------------------------------------------------------------
r53313 | svn | 2015-12-26 00:02:19 +0900 (Sat, 26 Dec 2015) | 1 line

* 2015-12-26
------------------------------------------------------------------------
r53312 | nobu | 2015-12-26 00:02:14 +0900 (Sat, 26 Dec 2015) | 7 lines

setup.mak: split release date

* win32/setup.mak (verconf.mk): split release date into year,
  month, and day.

* common.mk (RUBY_RELEASE_DATE): move from Makefile.in to share
  with win32/setup.mak.
------------------------------------------------------------------------
r53311 | nobu | 2015-12-25 23:50:26 +0900 (Fri, 25 Dec 2015) | 4 lines

setup.mak: follow up r53310

* win32/setup.mak (verconf.mk): no longer appends, and escape
  dollar.
------------------------------------------------------------------------
r53310 | nobu | 2015-12-25 23:46:27 +0900 (Fri, 25 Dec 2015) | 4 lines

setup.mak: follow up r53303

* win32/setup.mak (verconf.mk): follow up r53303.  needs STRINGIZE
  now.
------------------------------------------------------------------------
r53309 | nobu | 2015-12-25 22:57:38 +0900 (Fri, 25 Dec 2015) | 4 lines

version.h: no bot

* version.h (RUBY_RELEASE_MONTH_STR, RUBY_RELEASE_DAY_STR): get
  rid of substitution by svn bot.
------------------------------------------------------------------------
r53308 | svn | 2015-12-25 22:53:27 +0900 (Fri, 25 Dec 2015) | 1 line

* 2015-12-25
------------------------------------------------------------------------
r53307 | nobu | 2015-12-25 22:53:06 +0900 (Fri, 25 Dec 2015) | 4 lines

version.h: no bot

* version.h (RUBY_RELEASE_MONTH_STR, RUBY_RELEASE_DAY_STR): get
  rid of substitution by svn bot.
------------------------------------------------------------------------
r53306 | svn | 2015-12-25 22:48:56 +0900 (Fri, 25 Dec 2015) | 1 line

* 2015-12-25
------------------------------------------------------------------------
r53305 | nobu | 2015-12-25 22:48:38 +0900 (Fri, 25 Dec 2015) | 4 lines

version.h: no bot

* version.h (RUBY_RELEASE_MONTH_STR, RUBY_RELEASE_DAY_STR): get
  rid of substitution by svn bot.
------------------------------------------------------------------------
r53304 | svn | 2015-12-25 22:43:39 +0900 (Fri, 25 Dec 2015) | 1 line

* 2015-12-25
------------------------------------------------------------------------
r53303 | nobu | 2015-12-25 22:43:29 +0900 (Fri, 25 Dec 2015) | 5 lines

version.h: RUBY_RELEASE_DATE from YMD

* configure.in: extract RUBY_RELEASE_DAY at generating Makefile.
* version.h (RUBY_RELEASE_DATE): construct from RUBY_RELEASE_YEAR,
  RUBY_RELEASE_MONTH, and RUBY_RELEASE_DAY.
------------------------------------------------------------------------
r53302 | matz | 2015-12-25 21:40:38 +0900 (Fri, 25 Dec 2015) | 1 line

version.h (RUBY_VERSION): 2.4.0 development has started.
------------------------------------------------------------------------