Ruby latest stable (v2_5_5) - 0 notes

File deprecated or moved

This file is deprecated or moved on the latest stable version. The last existing version (v2_2_9) is shown here.

Fri Dec 15 00:08:26 2017 NAKAMURA Usaku <usa@ruby-lang.org>

* test/net/ftp/test_ftp.rb (process_port_or_eprt): merge a part of
  r56973 to pass the test introduced at previous commit.

Thu Dec 14 22:52:11 2017 Shugo Maeda <shugo@ruby-lang.org>

Fix a command injection vulnerability in Net::FTP.

Thu Dec 14 22:49:08 2017 SHIBATA Hiroshi <hsbt@ruby-lang.org>

Merge rubygems-2.6.14 changes.

It fixed http://blog.rubygems.org/2017/10/09/unsafe-object-deserialization-vulnerability.html

Thu Sep 14 20:44:26 2017 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* ext/json: bump to version [Backport #13853]

Thu Sep 14 20:39:39 2017 Kazuki Yamaguchi <k@rhe.jp>

asn1: fix out-of-bounds read in decoding constructed objects

* OpenSSL::ASN1.{decode,decode_all,traverse}: have a bug of
  out-of-bounds read. int_ossl_asn1_decode0_cons() does not give the
  correct available length to ossl_asn1_decode() when decoding the
  inner components of a constructed object. This can cause
  out-of-bounds read if a crafted input given.

Reference: https://hackerone.com/reports/170316

Thu Sep 14 20:36:54 2017 Yusuke Endoh <mame@ruby-lang.org>

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

Thu Sep 14 20:33:52 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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.

Sun Sep 10 10:10:05 2017 SHIBATA Hiroshi <hsbt@ruby-lang.org>

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

Sat Sep 9 21:08:24 2017 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* ext/psych/yaml: update libyaml to 0.1.7.

* ext/psych/psych.gemspec: bump version to

Tue Mar 28 15:39:26 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

configure.in: syscall is deprecated on macOS

* configure.in: syscall is no longer supported on macOS since 10.12.
  [Bug #13361]

Mon Mar 27 01:41:37 2017 NARUSE, Yui <naruse@ruby-lang.org>

* 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.

Sun Mar 26 17:24:02 2017 NAKAMURA Usaku <usa@ruby-lang.org>

* thread.c (rb_thread_fd_close): unintentionally removed at r58094.

Sun Mar 26 16:24:02 2017 NAKAMURA Usaku <usa@ruby-lang.org>

* test/ruby/test_thread.rb (test_thread_interrupt_for_killed_thread):
  may fix the test failure on some platforms introduced at r58108.

Sun Mar 26 16:22:03 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

envutil.rb: timeout_error argument to invoke_ruby

* test/lib/envutil.rb (invoke_ruby): add `timeout_error` optional
  keyword argument, the exception class to be raised if the target
  process timed out.  if it is nil, no exception will be raised at
  timeout but the terminated output, error, and status will be
  returned.  defaulted to Timeout::Error.

* test/lib/envutil.rb (assert_separately): check outputs and
  status (including diagnostic reports) of timed-out process.

Sun Mar 26 13:07:21 2017 NAKAMURA Usaku <usa@ruby-lang.org>

* thread.c (rb_thread_sleep_deadly_allow_spurious_wakeup): need to
  mark as exported.  this may fix the load error introduced at r58115.

Sun Mar 26 03:55:45 2017 Marcus Stollsteimer <sto.mar@web.de>

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]

Sun Mar 26 03:55:01 2017 Marcus Stollsteimer <sto.mar@web.de>

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.

Sun Mar 26 03:54:16 2017 Marcus Stollsteimer <sto.mar@web.de>

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.

Sun Mar 26 03:42:37 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 03:36:29 2017 Marcus Stollsteimer <sto.mar@web.de>

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]

Sun Mar 26 03:35:09 2017 Marcus Stollsteimer <sto.mar@web.de>

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]

Sun Mar 26 03:31:18 2017 Eric Wong <normalperson@yhbt.net>

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]

Sun Mar 26 03:28:27 2017 Marcus Stollsteimer <sto.mar@web.de>

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]

Sun Mar 26 03:26:56 2017 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>

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>

Sun Mar 26 03:24:28 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 03:22:34 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]
win32/registry.rb: registry type names

* ext/win32/lib/win32/registry.rb (Win32::Registry#read): show
  registry type names instead of numeric values.

Sun Mar 26 03:19:17 2017 Eric Wong <normalperson@yhbt.net>

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>

Sun Mar 26 03:16:16 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]:

Sun Mar 26 03:13:17 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 03:07:08 2017 Koichi Sasada <ko1@atdot.net>


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.

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.

Sun Mar 26 02:44:16 2017 Akinori MUSHA <knu@iDaemons.org>

* doc/syntax/literals.rdoc (Strings): [DOC] Revise the character
  literal part.

Sun Mar 26 02:44:16 2017 Akinori MUSHA <knu@iDaemons.org>

* doc/syntax/literals.rdoc (Strings): [DOC] Document the full list
  of supported escape sequences in string literals.

Sun Mar 26 02:44:16 2017 NAKAMURA Usaku <usa@ruby-lang.org>

* doc/syntax/literals.rdoc (Strings): mention about ?a literal.

Sun Mar 26 02:37:23 2017 Eric Wong <normalperson@yhbt.net>

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]

Sun Mar 26 02:36:34 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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>

Sun Mar 26 02:35:17 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Sun Mar 26 02:34:13 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 02:32:12 2017 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/win32.c (poll_child_status): rb_w32_wait_events_blocking() sets
  errno internally, then should not set it here.

Sun Mar 26 02:27:37 2017 Koichi Sasada <ko1@atdot.net>

check thread deadness correctly.

Sun Mar 26 02:13:04 2017 Koichi Sasada <ko1@atdot.net>

* 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.

Sun Mar 26 02:13:04 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

* thread.c (rb_threadptr_raise): set cause from the called thread,
  but not from the thread to be interrupted.
  [ruby-core:77222] [Bug #12741]

Sun Mar 26 02:11:47 2017 Marcus Stollsteimer <sto.mar@web.de>

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

Sun Mar 26 02:08:06 2017 Marcus Stollsteimer <sto.mar@web.de>

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?

Sun Mar 26 02:03:06 2017 Marcus Stollsteimer <sto.mar@web.de>

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]

Sun Mar 26 02:01:54 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 01:58:03 2017 NAKAMURA Usaku <usa@ruby-lang.org>

* regcomp.c (set_bm_skip): Need to check the end of the string.
  this patch is from https://github.com/k-takata/Onigmo/commit/e5c0e6c36187898bb27960cd66d591f172558848 .
  [Backport #12997]

Sun Mar 26 01:48:05 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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>

Sun Mar 26 01:35:25 2017 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

lib/ostruct.rb: Fix returned value of each_pair.

From a patch by Marcus Stollsteimer. [Fixes #13169]

Sun Mar 26 01:31:54 2017 Benoit Daloze <eregontp@gmail.com>

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]

Sun Mar 26 01:29:17 2017 Shugo Maeda <shugo@ruby-lang.org>

string.c: rindex(//) should set $~.

This seems a bug introduced by r520 (1.4.0).  [ruby-core:79110] [Bug #13135]

Sun Mar 26 01:15:34 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 01:14:19 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 01:13:11 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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.

Sun Mar 26 01:03:27 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 00:47:52 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 00:39:40 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 00:36:01 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 00:30:36 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

compile.c: check err_info

* compile.c (iseq_setup): bail out if any errors found.
  [ruby-core:76531] [Bug #12613]

Sun Mar 26 00:19:09 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Sun Mar 26 00:16:04 2017 Kazuki Yamaguchi <k@rhe.jp>

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:


Sun Mar 26 00:09:48 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>

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]

Tue Dec 27 20:43:54 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* time.c (usec2subsecx): fix return type, which is a numeric object but
  not a long int. [Bug #13066]

Tue Dec 27 20:13:12 2016 Kazuki Yamaguchi <k@rhe.jp>

* re.c (match_{names,hash,equal}): consider the case of RMatch::regexp
  is nil.

  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(). [Bug #13054]

Tue Dec 27 20:02:43 2016 Kazuki Yamaguchi <k@rhe.jp>

* array.c (rb_ary_{repeated_,}combination): 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. [Bug #13052]

Tue Dec 27 19:57:51 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* sprintf.c (rb_str_format): fix memory corruption by width underflow.

Tue Dec 27 19:55:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (rb_reg_regsub): other than regexp has no name references.
 [Bug #13042]

Tue Dec 27 19:51:43 2016 Kazuki Yamaguchi <k@rhe.jp>

* encoding.c (rb_enc_ascget): handle needmore error from

  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. [Bug #13034]

Tue Dec 27 19:49:01 2016 Shugo Maeda <shugo@ruby-lang.org>

* cont.c, eval.c, eval_error.c, thread.c, vm_eval.c, vm_trace.c: add
  clang volatile fixes from FreeBSD and NetBSD.

  Use volatile instead of optnone to avoid optimization which causes
  segmentation faults.
  Patch by Dimitry Andric. [Bug #13014]

Tue Dec 27 19:40:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* README.EXT{.ja,}: [DOC] optional keyword arguments are defaulted to
  Qundef. ignored keys are kept in the hash but a new Hash is not
  created. [Bug #13004]

* 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. [Bug #13004]

Tue Dec 27 19:34:47 2016 Aaron Patterson <tenderlove@ruby-lang.org>

* variable.c (rb_ivar_count): stop reading past the end of ivptr array.
  [Bug #12988]

Tue Dec 27 19:32:03 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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. [Bug #12991]

* thread.c (rb_thread_abort_exc_set): ditto.

Tue Dec 27 19:29:54 2016 Akinori MUSHA <knu@iDaemons.org>

* configure.in: reverse compatibility_version and current_version for

Tue Dec 27 19:10:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* marshal.c (dump_funcall, dump_check_funcall, load_funcall):
  function calls with reentrant check.  always show names
  corresponding to the called methods.

* marshal.c (check_userdump_arg): marshal_dump should not return an
  instance of the same class, otherwise it causes infinite recursion.
  [Bug #12974]

Tue Dec 27 18:34:04 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (setup_args): duplicate splatting array if more
  arguments present to obey left-to-right execution order.
  [ruby-core:77701] [Bug# 12860]

Tue Dec 27 18:28:20 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Tue Dec 27 18:17:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Tue Nov 15 15:29:36 2016 NARUSE, Yui <naruse@ruby-lang.org>

* ext/openssl/ossl_ssl.c (ssl_npn_select_cb_common): fix parsing
  protocol list.
  The protocol list from OpenSSL is not null-terminated.
  patched by Kazuki Yamaguchi [Bug #11810] [ruby-core:72082]

Tue Nov 15 03:55:45 2016 NARUSE, Yui <naruse@ruby-lang.org>

* ext/-test/file/fs.c (get_atime_p): Updating of file access times
  is enabled or not.

Tue Nov 15 03:55:45 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* test/ruby/test_file.rb (TestFile#test_stat): fix noatime case.
  [ruby-core:77943] [Bug #12903]

Tue Nov 15 03:54:14 2016 Shugo Maeda <shugo@ruby-lang.org>

* test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast,
  test_make_socket_ipv6_multicast_hops): skip if IPv6 multicast 
  address is not available.

Tue Nov 15 03:39:07 2016 NARUSE, Yui <naruse@ruby-lang.org>

* lib/net/http.rb (transport_request): other than HTTPContinue
  in 1xx (HTTPInformation) also needs to continue. [Bug #12890]

Sat Nov 12 07:48:07 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* proc.c (mnew_internal): follow the original class, not to loop
  the prepended module.  [ruby-core:77591] [Bug #12832]

Sat Nov 12 07:47:19 2016 Shugo Maeda <shugo@ruby-lang.org>

* cont.c (cont_new): disable optimization if clang's version is
  3.8.0.  [ruby-core:77894] [Bug #12893]

Sat Nov 12 07:37:30 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* sprintf.c (rb_str_format): format exact number more exactly.

Sat Nov 12 07:34:03 2016 Kazuki Yamaguchi <k@rhe.jp>

* 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

* 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.

Sat Nov 12 07:32:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Thu Oct 27 16:47:57 2016 Kazuki Yamaguchi <k@rhe.jp>

* 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

Thu Oct 27 16:39:56 2016 Aurelien Jacobs <aurel@gnuage.org>

* 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]

Thu Oct 27 16:27:06 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* object.c: Improve documentation for Float conversion.
  [ruby-core:71661][Bug #11736][ci skip]

Fri Oct 7 02:44:57 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/rubygems/ssl_certs/GlobalSignRootCA.pem: add for RubyGems.org.

Sat Oct 1 01:02:22 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* variable.c (rb_const_search): raise with the actual class/module
  name which defines the private constant.

Sat Oct 1 00:57:54 2016 NARUSE, Yui <naruse@ruby-lang.org>

* 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]

Sat Oct 1 00:56:19 2016 Aaron Patterson <tenderlove@ruby-lang.org>

* lib/uri/generic.rb (def check_password): don't include bad password
  in URI exception output

* test/uri/test_generic.rb (def test_set_component): test for behavior

Sat Oct 1 00:55:19 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* 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
  incompatible with ruby 2.1 and earlier unintentionally introduced.

Sat Oct 1 00:53:28 2016 Kazuki Tsujimoto <kazuki@callcc.net>

* 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]

Sat Oct 1 00:52:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* man/irb.1: remove useless -width option.
  [ruby-dev:49767] [Bug #12692]

Sat Oct 1 00:49:40 2016 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* ext/win32ole/win32ole.c (Init_win32ole): should not use atexit to
  free allocated hash table to avoid error on Cygwin.

Sat Oct 1 00:43:11 2016 Naohisa Goto <ngotogenome@gmail.com>

* 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]

Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>

* string.c (str_buf_cat): Fix capa size for embed string.
  Fix bug in r55547. [Bug #12536]

Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>

* 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.

Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>

* 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]

Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>

* 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]

Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>

* string.c: Specify termlen as far as possible.
  Additional fix for [Bug #12536] [ruby-dev:49699].

* 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. Currently 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().

Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>

* 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].

Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>

* string.c: Fix memory corruptions when using UTF-16/32 strings.
  [Bug #12536] [ruby-dev:49699]

* 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.

  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.

Sat Oct 1 00:00:13 2016 Eric Wong <e@80x24.org>

* 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]

Tue Aug 16 21:12:07 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (ADD_TRACE): ignore trace instruction on non-positive

* parse.y (coverage): get rid of ArgumentError when the starting
  line number is not positive.  [ruby-core:76141] [Bug #12517]

Tue Aug 16 21:12:07 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* test/coverage/test_coverage.rb: ignored test when enabled to coverage.
  It lead to crash with `make test-all`.

Tue Aug 16 21:01:55 2016 NARUSE, Yui <naruse@ruby-lang.org>

* 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>

Tue Aug 16 20:59:35 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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>.

Tue Aug 16 20:58:11 2016 NARUSE, Yui <naruse@ruby-lang.org>

* 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]

Tue Aug 16 20:56:30 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* missing/crypt.c: fix size macros to use configured values
  for platforms long is larger than 32bit.
  [ruby-core:75792] [Bug #12446]

Tue Aug 16 20:40:36 2016 Kazuki Yamaguchi <k@rhe.jp>

* 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

Tue Aug 16 20:34:22 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Tue Aug 16 20:30:53 2016 Kazuki Yamaguchi <k@rhe.jp>

* 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.

Tue Aug 16 20:28:24 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* transcode.c (enc_arg, str_transcode_enc_args, econv_args):
  remove volatile, and add GC guards in callers.
  [ruby-core:75664] [Bug #12411]

Tue Aug 16 14:58:50 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Tue Aug 16 14:54:14 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* variable.c (rb_local_constants_i): exclude private constants
  when excluding inherited constants too.  [Bug #12345]

Tue Aug 16 14:43:00 2016 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>

* lib/drb/timeridconv.rb: don't use keeper thread. [Bug #12342]

* test/drb/ut_timerholder.rb: ditto.

Tue Aug 16 14:07:18 2016 Marcus Stollsteimer <sto.mar@web.de>

* ext/json/lib/*.rb: Removed some comments. Because these are unnecessary
  class description. [ci skip][Bug #12255][ruby-core:74835]

Tue Aug 16 14:06:04 2016 NARUSE, Yui <naruse@ruby-lang.org>

* 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.

Tue Aug 16 13:59:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
  the fallback definition.  [ruby-core:76646] [Bug #12645]

Tue Aug 16 13:52:42 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm.c (vm_set_main_stack): remove unnecessary check.  toplevel
  binding must be initialized.  [Bug #12611] (N1)

* string.c (rb_str_split_m): simplify the condition.
  [Bug #12611](N4)

Tue Aug 16 13:42:42 2016 Naohisa Goto <ngotogenome@gmail.com>

* thread.c (rb_wait_for_single_fd): Clean up fds.revents every time
  before calling ppoll(2). [Bug #12575] [ruby-dev:49725]

Tue Aug 16 13:40:26 2016 Eric Wong <e@80x24.org>

* 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]

Tue Aug 16 13:38:36 2016 Kouhei Sutou <kou@cozmixng.org>

* 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!!!

Tue Aug 16 13:36:00 2016 Koichi Sasada <ko1@atdot.net>

* 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.

Tue Aug 16 13:29:25 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/rubygems/package.rb: Fixed potential perms issue unpacking of
  gems on NFS.  [Backport #12579]

* lib/rubygems.rb: bump version.

Fri Aug 12 11:48:27 2016 NARUSE, Yui <naruse@ruby-lang.org>

* 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]

Fri Aug 12 11:45:02 2016 Shugo Maeda <shugo@ruby-lang.org>

* lib/net/http/generic_rquest.rb (write_header): A Request-Line must
  not contain CR or LF.

Fri Aug 12 11:41:41 2016 Shugo Maeda <shugo@ruby-lang.org>

* lib/net/ftp.rb (putline): raise an ArgumentError when
  CR or LF is included in a line.

Fri Aug 12 11:21:24 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (tr_trans): consider terminator length and fix heap
  overflow.  reported by Guido Vranken <guido AT guidovranken.nl>.

Tue Jul 12 00:17:36 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* tool/fake.rb: don't fake libdir.  use libdirname instead.

Thu Jul 7 00:05:00 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* bignum.c (Init_Bignum): revert a part of previous commit (r55598),
  because the implementation of Object#hash is a little difference from
  trunk.  cf. [Backport #12391]

Wed Jul 6 23:02:03 2016 Kenta Murata <mrkn@mrkn.jp>

* 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.

Fri Jun 10 17:48:51 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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.

Fri Jun 10 17:44:59 2016 NARUSE, Yui <naruse@ruby-lang.org>

* re.c (unescape_nonascii): scan hex up to only 3 characters.
  [Bug #12420] [Bug #12423]

Fri Jun 10 17:44:59 2016 NARUSE, Yui <naruse@ruby-lang.org>

* regparse.c (fetch_token_in_cc): raise error if given octal escaped
  character is too big. [Bug #12420] [Bug #12423]

Fri Jun 10 17:34:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Fri Jun 10 16:30:16 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (new_if_gen): set newline flag to NODE_IF to trace all
  if/elsif statements.  [ruby-core:67720] [Bug #10763]

Fri Jun 10 16:24:29 2016 Marcus Stollsteimer <sto.mar@web.de>

* ext/date/date_core.c (Init_date_core): [DOC] Convert DateTime
  documentation to RDoc from Markdown.
  [ruby-core:75136] [Bug #12311]

Fri Jun 10 16:12:58 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* variable.c (rb_local_constants_i): exclude hidden constants.
  [ruby-core:75575] [Bug #12389]

Fri Jun 10 16:10:23 2016 NARUSE, Yui <naruse@ruby-lang.org>

* regcomp.c (compile_length_tree): return error code immediately
  if compile_length_tree raised error [Bug #12418]

Fri Jun 10 16:06:25 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* include/ruby/missing.h (isfinite): move from numeric.c.

Fri Jun 10 16:06:25 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/bigdecimal/bigdecimal.c (isfinite): get rid of a warning on
  cygwin. [Bug #12417][ruby-core:75691]

Fri Jun 10 16:06:25 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/bigdecimal/bigdecimal.c (isfinite): isfinite does not always
  exist.  fixed build error on Windows introduced at r55123.

Fri Jun 10 16:06:25 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
  non-finite float values not to raise FloatDomainError.
  [ruby-core:75682] [Bug #12414]

Fri Jun 10 16:00:27 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* 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.

Fri Jun 10 15:56:24 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_modify_expand): check integer overflow.
  [ruby-core:75592] [Bug #12390]

Fri Jun 10 15:54:05 2016 Benoit Daloze <eregontp@gmail.com>

* 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.

Fri Jun 10 15:46:24 2016 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>

* bignum.c: [DOC] Update result of 123456789 ** -2.
  [ruby-dev:49606] [Bug #12339]

Fri Jun 10 15:37:25 2016 Yuichiro Kaneko <yui-knk@ruby-lang.org>

  instead of duplicated undef RCOMPLEX_SET_REAL.

Fri Jun 10 15:37:25 2016 Yuichiro Kaneko <yui-knk@ruby-lang.org>

* complex.c (rb_complex_set_imag): Fix to properly set imag
  of complex.

Fri Jun 10 15:05:41 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* 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]

Fri Apr 29 20:11:38 2016 Tanaka Akira <akr@fsij.org>

* test/ruby/test_time_tz.rb: Tests depends on Europe/Moscow removed
  to avoid test failures due to the tzdata change.
  Found by naruse.

Wed Apr 27 22:16:04 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* compile.c (new_label_body): missed backporting r54548 in r54698.
  this fixes randomly test failure introduced by r54698.
  cf. [Bug #12082]

Tue Apr 26 13:38:31 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* README.EXT{,.ja}: `nul` should be uppercase.
  change 'nul' => 'NUL'.  [Fix GH-1172]
  derived from a patch by craft4coder <yooobuntu@163.com>

* doc/extension.rdoc: Improvements to english grammers.
  [Bug #12246][ruby-core:74792][ci skip]
  derived from a patch by Marcus Stollsteimer <sto.mar@web.de>

Tue Apr 26 13:25:25 2016 Marcus Stollsteimer <sto.mar@web.de>

* 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`

Tue Apr 26 13:22:45 2016 Rei Odaira <Rei.Odaira@gmail.com>

* configure.in: add missing -lm for AIX.

Tue Apr 26 13:22:45 2016 Rei Odaira <Rei.Odaira@gmail.com>

* 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.

Tue Apr 26 13:18:59 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ruby.c: cygwin does not use w32_cmdvector, command line can be
  other than UTF-8.  [ruby-dev:49519] [Bug #12184]

Tue Apr 26 13:16:41 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* eval_jump.c (exec_end_procs_chain): restore previous error info
  for each end procs.  [ruby-core:75038] [Bug #12302]

Fri Apr 22 18:36:15 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (new_label_body): initialize bit fields, since
  compile_data_alloc does not clear the memory.  [Bug #12082]

Fri Apr 22 18:36:15 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (iseq_optimize): disable tail call optimization in
  rescued, rescue, and ensure blocks.
  [ruby-core:73871] [Bug #12082]

Fri Apr 22 18:34:31 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* doc/regexp.rdoc (comments): [DOC] terminators cannot appear in
  comments.  [ruby-core:74838] [Bug #12256]

Fri Apr 22 18:30:50 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* 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
  patches are derived from Marcus Stollsteimer in [ruby-core:74690].
  [Bug #12228]

Fri Apr 22 18:22:15 2016 NARUSE, Yui <naruse@ruby-lang.org>

* ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
  [Bug #12202] [ruby-core:74802]

Fri Apr 22 18:22:15 2016 NARUSE, Yui <naruse@ruby-lang.org>

* ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
  patched by Anton Sivakov [Bug #12201] [Bug #12202]

Fri Apr 22 18:16:51 2016 NARUSE, Yui <naruse@ruby-lang.org>

* 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
  Instead of this, use Random.raw_seed directory (whose implementation
  CryptGenRandom is one of the source of
  entropy of RAND_poll on Windows).
  Note: CryptGenRandom function is PRNG and doesn't check its entropy,
  so it won't block. [Bug #12139]

Fri Apr 22 18:13:22 2016 Hiroshi Shirosaki <h.shirosaki@gmail.com>

* lib/rubygems/test_case.rb: Fix test on Windows for inconsistent temp path.
  [Bug #12193][ruby-core:74431]

Fri Apr 22 16:37:14 2016 multisnow <infinity.blick.winkel@gmail.com>

* ext/openssl/extconf.rb: check RAND_edg to support libressl.

* ext/openssl/ossl_rand.c (ossl_rand_egd): define only if RAND_edg
  is available.  [Fix GH-829]

Fri Apr 22 16:24:00 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in (rb_cv_lgamma_r_m0): fix the condition for
  lgamma_r(-0.0).  [Bug #12249]

Fri Apr 22 16:24:00 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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.

Fri Apr 22 16:24:00 2016 cremno phobia <cremno@mail.ru>

* 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]

Fri Apr 22 16:24:00 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* math.c (ruby_lgamma_r): mswin's lgamma_r also seems to be wrong.
  cf. [Bug #12249]

Fri Apr 22 16:24:00 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* math.c (ruby_tgamma): fix tgamma(-0.0) on mingw.
  [ruby-core:74817] [Bug #12249]

Fri Apr 22 16:00:50 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Fri Apr 22 15:47:58 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* struct.c (struct_make_members_list): extract making member name
  list from char* va_list, with creating symbols without
  intermediate IDs.

Fri Apr 22 15:19:01 2016 Joe Swatosh <joe.swatosh@gmail.com>

* ext/win32/lib/win32/registry.rb (DeleteValue, DeleteKey): fix
  API names.  [ruby-core:74863] [Bug #12264]

Fri Apr 22 15:13:39 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Fri Apr 22 15:08:27 2016 Benoit Daloze <eregontp@gmail.com>

* 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.

Fri Apr 22 14:56:46 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/date/date_core.c (Init_date_core): [DOC] fix misplaced doc
  of DateTime.  [ruby-core:74729] [Bug #12233]

Fri Apr 22 14:48:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parse_ident): allow keyword arguments just after a
  method where the same name local variable is defined.
  [ruby-core:73816] [Bug#12073]

Fri Apr 22 14:34:27 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* eval.c (setup_exception): set the cause only if it is explicitly
  given or not set yet.  [Bug #12068]

Fri Apr 22 14:13:28 2016 sorah (Shota Fukumori) <her@sorah.jp>

* 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 unexpected incompatibility. But this behavior
  may change in the future.

Fri Apr 22 14:13:28 2016 Elliot Winkler <elliot.winkler@gmail.com>

* 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.

Fri Apr 22 13:41:38 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Thu Mar 31 05:06:02 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* sprintf.c (rb_str_format): fix buffer overflow, length must be
  greater than precision.  reported by William Bowling <will AT

Thu Mar 31 04:49:05 2016 Kimura Wataru <kimuraw@i.nifty.jp>

* test/ruby/test_io.rb: handled rlimit value same as r52277
  [Bug #11852][ruby-dev:49446]

Wed Mar 30 06:37:56 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* tool/extlibs.rb (do_patch): let "patch" command change the
  working directory and open the patch file there, instead of
  spawn options, so that proper error message will be shown by the
  command not just "chdir" or "open".

Wed Mar 30 06:11:36 2016 NARUSE, Yui <naruse@ruby-lang.org>

* thread_pthread.c (reserve_stack): fix reserving position where
  the stack growing bottom to top. [Bug #12118]

Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* .travis.yml: removed commented-out code.

Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* .travis.yml: removed osx code. follow up with r53517

Wed Mar 30 06:04:18 2016 Aaron Patterson <tenderlove@ruby-lang.org>

* .travis.yml: update libssl before running tests. 
  Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for figuring out the
  travis settings!

Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* .travis.yml: removed Ruby 1.9.3 build on Travis CI

Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* .travis.yml: Remove redundant configuration option.
  [fix GH-809] Patch by @gxworld

Wed Mar 30 05:15:04 2016 Kazuki Yamaguchi <k@rhe.jp>

* 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.

Wed Mar 30 05:13:25 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/uri/http.rb (URI::HTTP#initialize): [DOC] fix example,
  missing mandatory arguments.  [ruby-core:74540] [Bug #12215]

Tue Mar 29 02:22:35 2016 Martin Duerst <duerst@it.aoyama.ac.jp>

* lib/uri/mailto.rb: raising URI::InvalidComponentError instead
  of failing with undefined method `split' for nil:NilClass for
  mailto: URIs without opaque part. [Bug #10738]
* test/uri/testuri.rb: Test for above

Tue Mar 29 02:08:40 2016 Koichi Sasada <ko1@atdot.net>

* signal.c: should also clear ruby_disable_gc.
  [Bug #11692]

Tue Mar 29 02:04:18 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Tue Mar 29 02:02:53 2016 Rei Odaira <Rei.Odaira@gmail.com>

* 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.

Tue Mar 29 01:56:24 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* lib/rubygems/installer.rb: merge partially r49511.
  cherry picking https://github.com/rubygems/rubygems/commit/f9232680
  [Bug #12066]

Tue Mar 29 01:41:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (enc_succ_alnum_char): try to skip an invalid character
  gap between GREEK CAPITAL RHO and SIGMA.
  [ruby-core:74478] [Bug #12204]

Tue Mar 29 01:27:52 2016 Victor Nawothnig <Victor.Nawothnig@gmail.com>

* 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]

Tue Mar 29 01:24:55 2016 NARUSE, Yui <naruse@ruby-lang.org>

* enc/trans/JIS: update Unicode's notice. [Bug #11844]

Tue Mar 29 01:22:39 2016 Eric Hodel <drbrain@segment7.net>

* marshal.c (r_object0):  raise ArgumentError when linking to undefined

Tue Mar 29 01:22:39 2016 Eric Hodel <drbrain@segment7.net>

* marshal.c (r_object0): Fix Marshal crash for corrupt extended object.

Tue Mar 29 01:20:37 2016 Eric Wong <e@80x24.org>

* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): document as MT-unsafe
  [ruby-core:73803] [Bug #12069]

Tue Mar 29 01:07:36 2016 NARUSE, Yui <naruse@ruby-lang.org>

* insns.def (opt_mod): show its method name on ZeroDivisionError.
  [Bug #12158]

Tue Mar 29 01:05:28 2016 Anthony Dmitriyev <antstorm@gmail.com>

* net/ftp.rb: add NullSocket#closed? to fix closing not opened
  connection.  [Fix GH-1232]

Tue Mar 29 01:02:49 2016 Koichi ITO <koic.ito@gmail.com>

* variable.c: Added documentation about order of `Module#constants`
  [ci skip][Bug #12121][ruby-dev:49505][fix GH-1301]

Tue Mar 29 00:56:10 2016 Rei Odaira <Rei.Odaira@gmail.com>

* 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.

Tue Mar 29 00:53:26 2016 Rei Odaira <Rei.Odaira@gmail.com>

* test/socket/test_addrinfo.rb (test_ipv6_address_predicates):
  on AIX, so skip related tests.

Tue Mar 29 00:44:55 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):
* 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.

Tue Mar 29 00:43:40 2016 Rei Odaira <Rei.Odaira@gmail.com>

* 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.

Tue Mar 29 00:42:10 2016 Rei Odaira <Rei.Odaira@gmail.com>

* test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_lock): skip
  this test on AIX. The issue is the same as on Solaris.

Tue Mar 29 00:33:06 2016 Rei Odaira <Rei.Odaira@gmail.com>

* thread_pthread.c (getstack): __pi_stacksize returned by
  pthread_getthrds_np() is wrong on AIX. Use
  __pi_stackend - __pi_stackaddr instead.

Tue Mar 29 00:06:58 2016 Alex Boyd <alex@opengroove.org>

* lib/irb.rb: avoid to needless truncation when using back_trace_limit option.
  [fix GH-1205][ruby-core:72773][Bug #11969]

Tue Mar 29 00:00:27 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb: fix method name typo.
  [ruby-core:72513] [Bug #11893] The patch provided by Akira Matsuda.

Mon Mar 28 23:58:27 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* ext/tk/lib/tkextlib/tcllib/toolbar.rb: fix method name typo.
  [ruby-core:72511] [Bug #11891] The patch provided by Akira Matsuda.

Mon Mar 28 23:57:33 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* ext/tk/lib/tkextlib/blt/tree.rb: fix method name typo.
  [ruby-core:72510] [Bug #11890] The patch provided by Akira Matsuda.

Mon Mar 28 23:56:17 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* 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.

Mon Mar 28 23:20:12 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* test/fiddle/test_handle.rb (test_NEXT): use -test-/dln/empty
  which is always a shared object and is not used by others.
  [ruby-dev:48629] [Bug #10384]

Mon Mar 28 23:15:54 2016 Kenta Murata <mrkn@mrkn.jp>

  [ruby-core:72736] [Bug #11962]

Thu Mar 24 20:39:58 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/socket/option.c (inspect_tcpi_msec): more accurate condition
  for TCPI msec member inspection function.
  [ruby-core:74388] [Bug #12185]

Thu Mar 10 00:22:25 2016 Naotoshi Seo <sonots@gmail.com>

* lib/logger.rb: Remove block from Logger.add as it's not needed
  patch provided by Daniel Lobato Garcia [fix GH-1240] [Bug #12054]

Thu Mar 10 00:17:57 2016 Zachary Scott <zzak@ruby-lang.org>

* re.c: Remove deprecated kcode argument from Regexp.new and compile
  patch provided by Dylan Pulliam [Bug #11495]

Thu Mar 10 00:17:57 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* re.c: Update documentation for Regexp class.
  [fix GH-937][ci skip] Patch by @davydovanton

Thu Mar 10 00:04:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/socket/socket.c (sock_gethostname): support unlimited size

Wed Mar 9 22:59:43 2016 Kouhei Sutou <kou@cozmixng.org>

* lib/xmlrpc/client.rb: Support SSL options in async methods of
  [Bug #11489]
  Reported by Aleksandar Kostadinov. Thanks!!!

Wed Mar 9 22:46:56 2016 NARUSE, Yui <naruse@ruby-lang.org>

* 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

Wed Mar 9 22:26:38 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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]

Wed Mar 9 05:14:20 2016 Eric Wong <e@80x24.org>

* io.c (io_getpartial): remove unused kwarg from template
* test/ruby/test_io.rb (test_readpartial_bad_args): new
  [Bug #11885]

Wed Mar 9 05:14:20 2016 Eric Wong <e@80x24.org>

* ext/openssl/ossl_ssl.c (ossl_ssl_read_internal):
  do not process kwargs in blocking mode
* test/openssl/test_ssl.rb: test sysread

Wed Mar 9 04:21:02 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* process.c (rb_execarg_parent_start1): need to convert the encoding to
  ospath's one.

Wed Mar 9 04:21:02 2016 NAKAMURA Usaku <usa@ruby-lang.org>

* process.c: use rb_w32_uchdir() instead of plain chdir() on Windows.
  reported by naruse via twitter.

* process.c (rb_execarg_addopt): need to convert the encoding to
  ospath's one.

Wed Mar 9 04:15:20 2016 Eric Wong <e@80x24.org>

* ext/stringio/stringio.c (strio_binmode): implement to set encoding
* test/stringio/test_stringio.rb (test_binmode): new test
  [ruby-core:72699] [Bug #11945]

Wed Mar 9 03:53:37 2016 Tadashi Saito <tad.a.digger@gmail.com>

* compile.c, cont.c, doc, man: fix common misspelling.
  [ruby-core:72466] [Bug #11870]

Wed Mar 9 03:51:48 2016 Eric Wong <e@80x24.org>

* ext/socket/init.c (rsock_init_sock): reject reserved FDs
  [ruby-core:72445] [Bug #11862]

Wed Mar 9 03:41:27 2016 Eric Wong <e@80x24.org>

* ext/socket/init.c (rsock_init_sock): check FD after validating
* test/socket/test_basicsocket.rb (test_for_fd): new
  [ruby-core:72418] [Bug #11854]

Wed Mar 9 03:34:54 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (reg_names_iter): should consider encoding of regexp.
  [ruby-core:72185] [Bug #11825]

Wed Feb 24 08:18:18 2016 Naohisa Goto <ngotogenome@gmail.com>

* enc/windows_1250.c: Should not use C++ style comments (C99 feature).
  [Bug #11843]

Tue Feb 23 03:43:23 2016 Martin Duerst <duerst@it.aoyama.ac.jp>

* enc/iso_8859_2.c, enc/windows_1250.c: separate Windows-1250
  from ISO-8859-2 to fix 0x80..0x9e range (from Kimihito Matsui)

Tue Feb 23 03:43:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* enc/windows_1252.c: separate from ISO-8859-1 to fix 0x80..0x9e
  range.  [ruby-core:64049] [Bug #10097]

Tue Feb 23 03:43:23 2016 Martin Duerst <duerst@it.aoyama.ac.jp>

* enc/iso_8859_13.c: Added three missing lower/upper-case
  character pairs (from Kimihito Matsui)

Tue Feb 23 03:43:23 2016 Martin Duerst <duerst@it.aoyama.ac.jp>

* enc/iso_8859_4.c: Added missing lower/upper-case character
  (from Kimihito Matsui)

Mon Feb 15 02:05:13 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_scrub): the result should be infected by the
  original string.

Mon Feb 15 02:05:13 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* transcode.c (rb_econv_substr_append, econv_primitive_convert):
  the result should be infected by the original string.

Mon Feb 15 02:05:13 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* include/ruby/ruby.h: add raw FL macros, which assume always the
  argument object is not a special constant.

* internal.h (STR_EMBED_P, STR_SHARED_P): valid only for T_STRING.

* string.c: deal with taint flags directly across String instances.

Mon Feb 15 01:20:08 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (regexp): set_yylval_num sets u1, should use nd_tag
  instead of nd_state.  [ruby-core:72638] [Bug #11932]

Tue Jan 26 21:52:16 2016 Joseph Tibbertsma <josephtibbertsma@gmail.com>

* gc.c (RVALUE_PAGE_WB_UNPROTECTED): fix a typo of argument name.
  [Fix GH-1221]

Mon Jan 18 00:34:41 2016 Koichi Sasada <ko1@atdot.net>

* vm_insnhelper.c (vm_call_method): should not set fastpath
  with keyword arguments for VM_METHOD_TYPE_ATTRSET type methods.

  Normally, we can not use keyword arguments for this kind of methods,
  (obj.foo = 1), but we can set alias names for them.
  [Bug #11657]

* test/ruby/test_keyword.rb: add a test for this fix.

Wed Dec 23 06:05:50 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parser_yylex): allow here documents in labeled
  argument.  [ruby-core:72396] [Bug #11849]

Wed Dec 23 05:52:06 2015 Yuki Yugui Sonoda <yugui@yugui.jp>

* test/ruby/test_syntax.rb: fix typo in test

Wed Dec 23 05:52:06 2015 Yuki Yugui Sonoda <yugui@yugui.jp>

* parse.y (parse_percent): Allow %-literals in labeled arg as
  r51624 did for parentheses.
  Fixes [ruby-core:72084] [Bug #11812].

Mon Dec 21 05:05:54 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* cont.c: fix a double word typo.
  [Bug #11313][ruby-core:69749]

Mon Dec 21 05:04:18 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* ext/tk/lib/multi-tk.rb: fix typos.
  [Bug #11764][ruby-core:71800]

Wed Dec 16 21:10:19 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* ext/fiddle/handle.c: check tainted string arguments.
  Patch provided by tenderlove and nobu.

* test/fiddle/test_handle.rb (class TestHandle): add test for above.

Wed Dec 16 02:38:19 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* io.c (parse_mode_enc): fix buffer overflow.

Sat Dec 12 17:19:27 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* doc/NEWS-0.2.2: add description about incompatible change in Hash
  duplicated key overriding policy. [Bug #10315] [Bug #11501]

Fri Dec 11 22:41:15 2015 Eric Wong <e@80x24.org>

* insns.def (opt_case_dispatch): avoid converting Infinity
* test/ruby/test_optimization.rb (test_opt_case_dispatch_inf): new
  [ruby-dev:49423] [Bug #11804]'

Thu Dec 10 00:23:07 2015 Rei Odaira <Rei.Odaira@gmail.com>

* configure.in: pthread_getattr_np is broken on AIX.
  More specifically, the stack address and size returned are
  not correct.

Thu Dec 10 00:19:18 2015 NAKAMURA Usaku <usa@ruby-lang.org>

* common.mk (update-gems): use BASERUBY instead of RUNRUBY.

Wed Dec 9 01:49:13 2015 Eric Wong <e@80x24.org>

* insns.def (opt_case_dispatch): check Float#=== redefinition
* test/ruby/test_optimization.rb (test_opt_case_dispatch): new
  [ruby-core:71920] [Bug #11784]

Wed Dec 9 01:46:23 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ruby_atomic.h (ATOMIC_SIZE_CAS): fix the argument order of
  InterlockedCompareExchange64.  new value and then old value is
  the last.

Wed Dec 9 01:28:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* encoding.c (enc_m_loader): defer finding encoding object not to
  be infected by marshal source.  [ruby-core:71793] [Bug #11760]

* marshal.c (r_object0): enable compatible loader on USERDEF
  class.  the loader function is called with the class itself,
  instead of an allocated object, and the loaded data.

* marshal.c (compat_allocator_table): initialize
  compat_allocator_tbl on demand.

* object.c (rb_undefined_alloc): extract from rb_obj_alloc.

Wed Dec 9 01:24:57 2015 Rei Odaira <Rei.Odaira@gmail.com>

* ext/-test-/file/fs.c: need to include sys/statvfs.h
  to use statvfs().

* ext/-test-/file/extconf.rb: check the existence of

Fri Dec 4 04:46:33 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* sprintf.c (rb_str_format): fix wrong shifting position in
  Rational conversion when not at the beginning of the result.
  [ruby-core:71806] [Bug #11766]

Fri Dec 4 02:42:37 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* range.c (range_to_s): should be infected by the receiver.
  str2 infects by appending.  [ruby-core:71811] [Bug #11767]

Wed Dec 2 03:17:01 2015 NARUSE, Yui <naruse@ruby-lang.org>

* ext/readline/extconf.rb: call dir_config("libedit")
  if --enable-libedit is spcified. [Bug #11751]
  patched by John Hein

Wed Dec 2 02:59:42 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parser_here_document): store dispatched result of
  on_tstring_content at the last fragment of a here document.

Tue Dec 1 02:52:17 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* test/ruby/test_gc.rb: merge partially r52391 to get rid of CI error.

Tue Dec 1 02:27:41 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* io.c (rb_io_each_codepoint): raise an exception at incomplete
  character before EOF when conversion takes place.  [Bug #11444]

Sun Nov 29 18:02:44 2015 Shugo Maeda <shugo@ruby-lang.org>

* io.c (argf_getpartial): should not resize str if the second
  argument is not given.
  [ruby-core:71668] [Bug #11738]

Sun Nov 29 17:48:39 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (local_var_list_add): skip internal local variable
  name by its type but not if it has a name.  internal local
  variable names are just unique per frame, not globally.
  [ruby-core:71437] [Bug #11674]

Sun Nov 29 17:13:16 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* io.c (rb_io_each_codepoint): read more data when read partially.
  [ruby-core:70379] [Bug #11444]

Sun Nov 29 16:46:25 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* lib/net/http.rb: set hostname before call ossl_ssl_set_session.
  [Bug #11401][ruby-core:70152][fix GH-964] Patch by @mkarnebeek

Sun Nov 29 16:33:30 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* transcode.c (rb_econv_open0): rb_econv_t::source_encoding_name
  and rb_econv_t::destination_encoding_name should refer static
  strings always or NULL.  [ruby-core:70247] [Bug #11416]

Sun Nov 29 16:11:32 2015 Eric Wong <e@80x24.org>

* iseq.c (iseq_data_to_ary): dump kw_arg as symbol
* test/-ext-/iseq_load/test_iseq_load.rb: test kw_arg roundtrip
  [ruby-core:69891] [Bug #11338]

Sun Nov 29 02:55:56 2015 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>

* gc.c (__has_feature): move into internal.h.

* internal.h (__has_feature): ditto.

* internal.h (__has_extension): new macro.

* internal.h (STATIC_ASSERT): use _Static_assert with
  clang. [ruby-core:69931] [Bug #11343]

Sat Nov 28 06:28:55 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (literal_concat_gen, evstr2dstr_gen): keep literal
  encoding beginning with an interpolation same as the source file
  encoding.  [ruby-core:70703] [Bug #11519]

Sat Nov 28 06:12:32 2015 NARUSE, Yui <naruse@ruby-lang.org>

* ext/openssl/ossl_ssl.c (ssl_npn_select_cb): explicitly raise error
  in ext/openssl instead of OpenSSL itself because LibreSSL
  silently truncate the selected protocol name by casting the length
  from int to unsigned char. [Bug #11369]
  Patch by Jeremy Evans <merch-redmine@jeremyevans.net>

Sat Nov 28 05:50:58 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (send_internal): set method_missing_reason before
  invoking overriding method_missing method so that the default
  method_missing can achieve it properly.
  [ruby-core:68515] [Bug #10969]

Sat Nov 28 05:47:27 2015 Rei Odaira <Rei.Odaira@gmail.com>

* test/ruby/test_symbol.rb (test_symbol_fstr_leak): add a warm-up
  code and check RSS to avoid false positive on AIX and false
  negative on Mac OS X. [Bug #10686]

Sat Nov 28 05:47:27 2015 Rei Odaira <Rei.Odaira@gmail.com>

* test/ruby/test_symbol.rb: avoid a false positive in AIX.

Sat Nov 28 05:35:28 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* test/objspace/test_objspace.rb
  (test_trace_object_allocations_start_stop_clear): clear object
  allocation table first to get rid of erroneous detection for obj3.
  [ruby-dev:49095] [Bug #11271]

Sat Nov 28 05:21:06 2015 Koichi Sasada <ko1@atdot.net>

* insns.def (defined): skip respond_to_missing? when
  a method is available.
  [Bug #11211]

* test/ruby/test_defined.rb: add a test for this fix.

Wed Nov 25 01:05:29 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* ext/digest/sha1/sha1ossl.c: fix defs.h path to catch up changes in
  r52739.[Bug #3231]

* ext/digest/rmd160/rmd160ossl.c: ditto.

Wed Nov 25 00:54:15 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (kwd_append): fix segv after invalid keyword argument,
  preceding keyword list is NULL when syntax error is there.
  [ruby-core:71356] [Bug #11663]

Wed Nov 25 00:47:07 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* lib/ipaddr.rb, test/test_ipaddr.rb: Reject invalid address contained
  EOL string. Patch by @kachick [fix GH-942][Bug #11513]

Wed Nov 25 00:32:44 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (iseq_build_from_ary_body): register cdhash to the
  iseq constant body instead of compile time mark array, not to
  get GCed.  [ruby-core:70708] [Feature #8543]

Wed Nov 25 00:14:28 2015 NARUSE, Yui <naruse@ruby-lang.org>

* ext/digest/*/*.[ch]: include ruby.h before digest.h to avoid
  includeing ext/digest/extconf.h. [Bug #3231]

* ext/digest/*/extconf.rb: remove ext/digest from include search path
  to avoid confusion of cl.exe.

* ext/digest/*/*.[ch]: explicitly specify def.h's path.

Wed Nov 25 00:03:42 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* Added missing reference of GitHub

Wed Nov 25 00:03:42 2015 Trevor Rowe <trevorrowe@gmail.com>

* lib/net/http.rb: Fixed regression for Net::HTTP::PUT with "Expect-100"
  header. [fix GH-949]
* test/net/http/test_http.rb: added test.

Mon Nov 23 00:19:51 2015 Koichi Sasada <ko1@atdot.net>

* vm_insnhelper.c (vm_invoke_block): we should not expect ci->argc is
  stable after invoking a block. [Bug #11451]

* test/ruby/test_yield.rb: add a test. This test script is given by
  Alex Dowad.

Thu Nov 19 01:06:07 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* load.c (rb_load_internal0): stop separating exits at loading
  from exits from execution.  TAG_FATAL is the only case that
  `errinfo` is a Fixnum, and should continue to exit by JUMP_TAG
  but not raising as an ordinary exception.
  [ruby-core:70169] [Bug #11404]

Thu Nov 19 01:06:07 2015 Alex Dowad <alexinbeijing@gmail.com>

* load.c (rb_load_internal0): extra check before returning
  TAG_RAISE when a non-local transfer of control happens while
  loading and parsing a Ruby source file.
  [ruby-core:70169] [Bug #11404]

Thu Nov 19 01:06:07 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* load.c (rb_load_internal0): do not raise any exceptions but
  return the result tag state.

* load.c (rb_load_protect): reduce nested EXEC_TAGs.

Thu Nov 19 00:41:09 2015 NARUSE, Yui <naruse@ruby-lang.org>

* enc/euc_jp.c (mbc_case_fold): check given string is valid or not,
  and if invalid, return 1. [Bug #11486]

Thu Nov 19 00:15:23 2015 Zachary Scott <zzak@ruby-lang.org>

* ext/openssl/ossl_pkey.c: Merge ruby/openssl@b9ea8ef [Bug #10735]

Thu Nov 19 00:01:14 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* io.c (argf_next_argv): check ARGV element type, and try
  conversion if necessary.  [ruby-core:71140] [Bug #11610]

Wed Nov 18 23:29:32 2015 Aaron Patterson <tenderlove@ruby-lang.org>

* ext/openssl/ossl_ssl.c (ossl_ssl_method_tab): Only add SSLv3 support
  if the SSL library supports it.  Thanks Kurt Roeckx <kurt@roeckx.be>
  [Bug #11376]

* ext/openssl/extconf.rb: check for SSLv3 support in the SSL

* test/openssl/test_ssl.rb (class OpenSSL): Skip tests that need SSLv3
  if there is no support.

Mon Nov 16 03:39:59 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* tool/runruby.rb: rubyspec now requires other FDs not to be closed
  since 7b6ce1fee.

Sun Nov 8 23:30:56 2015 Koichi Sasada <ko1@atdot.net>

* vm_trace.c (rb_threadptr_exec_event_hooks_orig):
  maintain trace_running counter on internal events.

  This patch is made by Takashi Kokubun <takashikkbn@gmail.com>.
  [Bug #11603] https://github.com/ruby/ruby/pull/1059

Sun Nov 1 03:52:41 2015 Aaron Patterson <tenderlove@ruby-lang.org>

* test/openssl/test_ssl_session.rb: Fix tests so that they take in to
  account OpenSSL installations that have SSLv3 disabled by default.
  Thanks Jeremy Evans <code@jeremyevans.net> for the patches.
  [Bug #11366] [Bug #11367]

Sun Nov 1 03:40:43 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* test/openssl/test_ssl_session.rb (OpenSSL#test_ctx_client_session_cb):
  fix test failure with OpenSSL disabled SSLv3 protocol.
  [ruby-core:63772] [Bug #10046]

Tue Oct 27 23:58:32 2015 Koichi Sasada <ko1@atdot.net>

* vm.c (hook_before_rewind): prevent kicking :return event while
  finishing vm_exec func because invoke_block_from_c() kick a :return
  event for bmethods.
  [Bug #11492]

* test/ruby/test_settracefunc.rb: add a test.

Tue Oct 27 23:38:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in: check for libunwind.h, which is not available in
  very old OS X SDK.  [ruby-core:71080] [Bug #11591]

Tue Oct 27 23:32:51 2015 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>

* test/drb/test_drb.rb: Run Rinda/DRb tests on localhost. [Fix GH-1027]
  patch by voxik.

* test/rinda/test_rinda.rb: ditto

Tue Oct 6 01:29:02 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (IS_BEG): include labeled argument state, which was
  EXPR_LABELARG.  [ruby-dev:49221] [Bug #11456]

Tue Oct 6 01:29:02 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y: fix syntax error at do-block after a conditional
  operator.  separate label-allowed and after-a-label states from
  others as bit flags.  [ruby-dev:48790] [Bug #10653]

Mon Oct 5 03:29:23 2015 Tanaka Akira <akr@fsij.org>

* enum.c (nmin_filter): Fix limit value.
  patch by Helder Pereira.
  [Bug #11471] [ruby-core:70477]

Wed Sep 30 03:44:36 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/rss/rss.rb (Time#w3cdtf): fix zero-trimmed width of fraction
  digits.  [ruby-core:70667] [Bug #11509]

Wed Sep 30 03:34:25 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (rb_memsearch_wchar, rb_memsearch_qchar): test matching
  till the end of string.  [ruby-core:70592] [Bug #11488]

* test/ruby/test_m17n.rb (test_include?, test_index): add tests by
  Tom Stuart.

Wed Sep 30 03:24:29 2015 NARUSE, Yui <naruse@ruby-lang.org>

* thread_pthread.c (reserve_stack): ensure the memory is really
  allocated. [Bug #11457]

Tue Aug 25 01:01:01 2015 Koichi Sasada <ko1@atdot.net>

* insns.def (defineclass): introduce an ad-hoc patch to avoid
  an issue reported on [Bug #10871].

  This patch does not fix completely. For example, method definition
  in a block (like 1.times{def ...; end}) still causes same issue.
  To solve all, we need a huge patch and it seems difficult for
  stable branch.

  Use Ruby 2.3 and later to solve this issue completely.
  (See [Bug #10943])

Tue Aug 18 22:52:50 2015 NAKAMURA Usaku <usa@ruby-lang.org>

* tool/downloader.rb: support old versions of ruby.

* tool/downloader.rb: now can download gems by http if openssl is not
  available (this may be danger!)

Tue Aug 18 20:10:13 2015 Tanaka Akira <akr@fsij.org>

* numeric.c (Init_Numeric): Fix document for Float::MIN and

Mon Aug 17 23:07:47 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* lib/rubygems.rb: bump version to this version fixed
* lib/rubygems/remote_fetcher.rb: ditto.
* test/rubygems/test_gem_remote_fetcher.rb: added testcase for CVE-2015-3900

Mon Aug 17 23:00:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/win32/lib/win32/registry.rb (API#SetValue): data size should
  be in bytes, not in chars.  [ruby-core:70365] [Bug #11439]

Mon Aug 17 23:00:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/win32/lib/win32/registry.rb (API#SetValue): add terminator
  size, not 1 byte.  [ruby-core:70365] [Bug #11439]

Sun Aug 16 03:14:04 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (rb_memsearch): should match only char boundaries in wide
  character encodings.  [ruby-core:70220] [Bug #11413]

Sun Aug 16 03:00:44 2015 Eric Wong <e@80x24.org>

* symbol.h (struct RSymbol): add hashval field
* symbol.c (dsymbol_alloc): setup hashval field once
* hash.c (rb_any_hash): return RSymbol->hashval directly
* common.mk: hash.o depends on symbol.h
  Thanks to Bruno Escherl <bruno@escherl.net> for the bug report
  [ruby-core:70129] [Bug #11396]

Fri Aug 14 16:30:43 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* transcode.c (rb_econv_set_replacement): target encoding name can
  be empty now.  [ruby-core:69841] [Bug #11324]

Fri Aug 14 15:24:12 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* hash.c (rb_any_hash): fix Float hash.  rb_dbl_hash() returns a
  Fixnum, but not a long.  [Bug #9381]

Fri Aug 14 15:09:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/json/parser/parser.rl: raise with messages in UTF-8
  encoding.  [ruby-core:67386] [Bug #10705]

Fri Aug 14 00:44:34 2015 Eric Wong <e@80x24.org>

* io.c (rb_io_oflags_modestr): handle O_TRUNC correctly
* test/ruby/test_io.rb (test_reopen_stdio): new test
  Patch-by: cremno phobia <cremno@mail.ru>
  [ruby-core:69779] [Bug #11319]

Thu Aug 13 01:25:26 2015 Benoit Daloze <eregontp@gmail.com>

* lib/net/ftp.rb (makeport): close the TCPServer
  when sending the port fails.

* test/net/ftp/test_ftp.rb: test for above.

Thu Aug 13 01:03:13 2015 Kazuki Tsujimoto <kazuki@callcc.net>

* lib/net/http/response.rb (Net::HTTPResponse::Inflater#finish):
  fix a bug that empty gzipped response body causes Zlib::BufError.
  [ruby-core:68846] [Bug #11058]

* test/net/http/test_httpresponse.rb: tests for the above.

Thu Aug 13 01:03:13 2015 Kazuki Tsujimoto <kazuki@callcc.net>

* lib/net/http/response.rb (Net::HTTPResponse#inflater):
  fix TypeError. An exception object might be nil.
  [ruby-core:68846] [Bug #11058]

Thu Aug 13 00:03:24 2015 Aaron Patterson <tenderlove@ruby-lang.org>

* .travis.yml: update libssl before running tests. 
  Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for figuring out the
  travis settings!

Thu Aug 13 00:03:24 2015 Aaron Patterson <tenderlove@ruby-lang.org>

* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): raise a more
  helpful exception when verifying the peer connection and an
  anonymous cipher has been selected. [ruby-core:68330] [Bug #10910]
  Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for the patch.

* test/openssl/test_ssl.rb (class OpenSSL): test for change

Wed Aug 12 23:57:01 2015 NARUSE, Yui <naruse@ruby-lang.org>

* ext/date/extconf.rb: try_cflags("-std=iso9899:1999") [Bug #10906]
  ruby itself (including numeric.c) is built with strict compile
  options including -std=iso9899:1999, but ext/date is not.
  By the way -std=iso9899:1999 is not only a warning option but also
  changes behavior like MACRO definitions for example INFINITY.
  gcc on Solaris affect this.

Wed Aug 12 23:53:39 2015 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/win32.c (waitpid): return immediately if interrupted.
  reported by <takkanm AT gmail.com> [ruby-dev:49176] [Bug #11340]

Wed Aug 12 01:05:58 2015 Jeremy Evans <merch-redmine@jeremyevans.net>

* test/openssl/test_ssl.rb: Fix LocalJumpErrors being raised
  in OpenSSL tests. [ruby-core:70020][Bug #11368]

Wed Aug 12 00:54:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* array.c (rb_ary_repeated_permutation): fix buffer size, ALLOCV_N
  already multiplies element size.

Tue Aug 11 01:51:53 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* lib/timeout.rb (ExitException): leave Timeout::ExitException as an
  alias of Timeout::Error for backward compatibility in stable branch.
  [ruby-dev:49179] [Bug #11344]

Tue Aug 11 01:51:53 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/timeout.rb (ExitException): removed internal exception class
  and use Timeout::Error instead, as using throw/catch to isolate
  each timeouts now.  [ruby-dev:49179] [Bug #11344]

Tue Aug 11 01:37:28 2015 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>

* test/net/http/test_httpresponse.rb
fix a failure without zlib.

Tue Aug 11 01:37:28 2015 NARUSE, Yui <naruse@ruby-lang.org>

* lib/net/http/response.rb (inflater): CONTENT_ENCODING can be upper
  case. [ruby-core:69670] [Bug #11285] patched by Andy Chu

Tue Aug 11 01:21:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm.c (m_core_hash_merge_ptr): copy the arguments to the machine
  stack before rewinding the control frame pointer and leaving the
  arguments outside valid region of the value stack.
  [ruby-core:69969] [Bug #11352]

* vm.c (REWIND_CFP): keep the arguments region inside the valid
  value stack.  [ruby-core:69969] [Bug #11352]

Tue Aug 11 01:11:02 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_reverse): reversed string is not a substring,
  and should not set coderange of the original string.
  [ruby-dev:49189] [Bug #11387]

Tue Aug 11 00:42:53 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (lambda_body): pop cmdarg stack for lookahead
  token.  [ruby-core:70067] [Bug #11380]

Tue Aug 11 00:21:56 2015 NARUSE, Yui <naruse@ruby-lang.org>

* ext/socket/extconf.rb: Solaris 11 has struct tcp_info.tcpi_ca_state,
  but it is a dummy.

* ext/socket/option.c: Solaris 11 doesn't have u_intN_t.

* ext/socket/option.c: Solaris 11 needs inspect_tcpi_msec.

* ext/socket/raddrinfo.c: Solaris 11 has AF_PACKET but doesn't have
  related macros.

Tue Aug 4 04:11:34 2015 Tanaka Akira <akr@fsij.org>

* lib/time.rb (strptime): Support %s.%N.
  [ruby-core:68301] [Bug #10904] Patch by Sadayuki Furuhashi.

Tue Aug 4 03:43:15 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* transcode.c (load_transcoder_entry): fix transcoder loading race
  condition, by waiting in require.  [ruby-dev:49106] [Bug #11277]

Tue Aug 4 03:13:59 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* array.c (ary_ensure_room_for_push): check if array size will
  exceed maximum size to get rid of buffer overflow.
  [ruby-dev:49043] [Bug #11235]

* array.c (ary_ensure_room_for_unshift, rb_ary_splice): ditto.

Sat Jul 4 23:08:32 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* file.c (rb_file_load_ok): try opening file without gvl not to
  lock entire process.  [Bug #11060]

Sat Jul 4 05:00:48 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/mkmf.rb (pkg_config): split --libs if --libs-only-l option
  is not available.  patch in [ruby-core:69428] by Hans Mackowiak.
  [ruby-core:69421] [Bug #11201]

Sat Jul 4 04:46:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (iseq_compile_each): out of range NTH_REF is always

* parse.y (parse_numvar): check overflow of NTH_REF and range.
  [ruby-core:69393] [Bug #11192]

* util.c (ruby_scan_digits): make public and add length parameter.

Sat Jul 4 04:35:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (rb_method_call_status): resolve refined method entry
  to check if undefined.  [ruby-core:69064] [Bug #11117]

Sat Jul 4 04:35:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (rb_method_call_status): undefined refined method is
  not callable unless using.  [ruby-core:69064] [Bug #11117]

Wed Jul 1 04:16:56 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* ext/bigdecimal/bigdecimal.gemspec: Fix require paths for released gem.
  [fix GH-929] Patch by @voxik
* ext/io/console/io-console.gemspec: ditto.

Wed Jul 1 04:15:38 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* ext/zlib/zlib.c: Fix indentation for rdoc.
  [Bug #11221][ruby-core:69465]

Sat Jun 27 22:51:59 2015 Shota Fukumori <her@sorah.jp>

* ext/objspace/objspace_dump.c(dump_object): Return empty JSON object when
  passed object is a special const, instead of SEGV.
  Based patch by Kohei Suzuki (eagletmt). [ruby-core:69692] [Bug #11291]

* test/objspace/test_objspace.rb(test_dump_special_consts): Test for above fix.

Wed Jun 17 02:53:59 2015 Koichi Sasada <ko1@atdot.net>

* test/objspace/test_objspace.rb (test_dump_flags): relax pattern
  because long_lived flag and marked flag can be false at major GC.
  [Bug #10852]

Mon Jun 15 03:24:23 2015 Koichi Sasada <ko1@atdot.net>

* vm_insnhelper.c (lep_svar_set): add WBs.

Fri Jun 12 01:39:49 2015 Eric Wong <e@80x24.org>

* ext/socket/ancdata.c: use RB_GC_GUARD instead of volatile
  [ruby-core:69419] [Feature #11198]

Fri Jun 12 01:16:13 2015 Eric Wong <e@80x24.org>

* ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
  ossl_asn1_decode_all): use RB_GC_GUARD instead of volatile
  [ruby-core:69371] [Bug #11185]

Fri Jun 12 01:14:00 2015 NARUSE, Yui <naruse@ruby-lang.org>

* win32/win32.c (setup_overlapped): seek to the file end only when
  writing (mode:a), not reading (mode:a+, read).

Fri Jun 12 01:11:52 2015 Aaron Patterson <tenderlove@ruby-lang.org>

* load.c (loaded_feature_path): stop returning false negatives for
  filenames which are trailing substrings of file extensions.  For
  example, 'b', which a trailing substring of ".rb" should not return
  false. [Bug #11155][ruby-core:69206]

* test/ruby/test_autoload.rb: test for fix

Sun May 24 03:56:27 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* marshal.c (r_symreal): register symbol names as strings first so
  that r_symlink always returns valid names.
  [ruby-core:68587] [Bug #10991]

* marshal.c (r_ivar, r_object0): now need to intern symbol names.

* marshal.c (r_object0): compare with symbol names.

Sun May 24 03:53:07 2015 Eric Wong <e@80x24.org>

* ext/socket/ancdata.c (bsock_recvmsg_internal): GC guard
  [Bug #11123]

Sun May 24 03:44:42 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* range.c (linear_object_p, range_include): test if covered for
  linear objects.  [ruby-core:69052] [Bug #11113]

Sun May 24 03:41:45 2015 Shugo Maeda <shugo@ruby-lang.org>

* lib/net/imap.rb (body_ext_mpart): should work even if body-fld-dsp
  is omitted.  [ruby-core:69093] [Bug #11128]

Sun May 24 03:37:14 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* string.c: added documentation for character sequence \' with String#sub
  [Bug #11132][ruby-core:69121][fix GH-900][ci skip] Patch by @shishir127

Sun May 24 03:32:53 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>

* rational.c: Added documentation for rational literal.
  [Bug #11075][fix GH-885][ci skip] Patch by @shishir127

Sun May 24 03:06:20 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/socket/ipsocket.c (init_inetsock_internal): preserve errno
  before other library calls and use rb_syserr_fail.
  [ruby-core:68531] [Bug #10975]

Sun May 24 03:01:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/-test-/printf/printf.c (uint_to_str): renamed to get rid of
  conflict on cygwin.  [ruby-core:68877] [Bug #11065]

Sun May 24 02:44:53 2015 Koichi Sasada <ko1@atdot.net>

* vm.c (vm_exec): check other events when RETURN is thrown.
  [Bug #10724]

* test/ruby/test_settracefunc.rb: add a test.

Sun May 24 02:21:47 2015 Masahiro Tomita <tommy@tmtm.org>

* ext/socket/raddrinfo.c (addrinfo_mload): fix memory leak of
  addrinfo.  [ruby-dev:48923] [Bug #11051]

Sun May 24 02:17:05 2015 Kenta Murata <mrkn@cookpad.com>

* bigdecimal: conform to ruby's license.  [ruby-core:68466] [Bug #10952]

Sun May 24 02:06:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/-test-/file/fs.c (get_fsname): try magic number only if
  f_type is included.  [ruby-dev:48913] [Bug #11000]

Sun May 24 02:06:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/-test-/file/fs.c (get_fsname): return filesystem name by
  statfs/statvfs.  [ruby-core:68624] [Bug #10998]

Sun May 24 02:02:00 2015 Koichi Sasada <ko1@atdot.net>

* test/ruby/test_symbol.rb: fix syntax error.

Sun May 24 02:02:00 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* hash.c (rb_any_hash): Symbols are compared by the identities
  always.  [ruby-core:68767] [Bug #11035]

Sun May 24 02:01:07 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* hash.c (rb_any_hash): use same hash values with Float#hash so
  that -0.0 and +0.0 will be identical.
  [ruby-core:68541] [Bug #10979]

Thu May 21 01:34:48 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* gc.c (id2ref): prohibit from accessing internal objects.
  [ruby-core:68348] [Bug #10918]

Thu May 21 01:32:02 2015 Rei Odaira <Rei.Odaira@gmail.com>

* ext/pty/pty.c: AIX supports autopush.
  Patch by Perry Smith [ruby-core:58539] [Bug #9144]

Thu May 21 01:07:41 2015 Misumi Rize <r@ayase-e.li>

* vm_insnhelper.c (vm_throw_start): search the target to break
  from a block with nested rescue, from the nested blocks.
  [ruby-core:67765] [Bug #10775] [Fix GH-820]

Thu May 21 00:55:45 2015 Koichi Sasada <ko1@atdot.net>

* vm_args.c: protect value stack from calling other methods
  during complex parameter setting process (splat, kw, and so on).
  [Bug #11027]

* vm_core.h: remove rb_thead_t::mark_stack_len.
  With this modification, we don't need to use th->mark_stack_len.

* test/ruby/test_keyword.rb: add a test.

* cont.c (cont_capture): catch up this fix.

* vm.c (rb_thread_mark): ditto.

Thu May 21 00:07:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow
  symbols to just instance_eval/exec, except for definition of
  singletons.  [ruby-core:68961] [Bug #11086]

Wed May 20 04:33:50 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (STR_SET_EMBED): clear NOFREE flag at embedding as
  embedded strings no longer refer static strings.
  [ruby-core:68436] [Bug #10942]

Wed May 20 03:46:11 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (need_normalization): use getattrlist() if fgetattrlist()
  is unavailable, on OSX 10.5.  [ruby-core:68829] [Bug #11054]

Wed May 20 03:25:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* proc.c (proc_binding): replicate env from method object, and
  allocate the local variable area for the iseq local table.
  [ruby-core:68673] [Bug #11012]

Wed May 20 03:25:34 2015 Koichi Sasada <ko1@atdot.net>

* proc.c: use RUBY_VM_IFUNC_P() to recognize IFUNC or not.

* vm.c: ditto.

* vm_dump.c: ditto.

* vm_insnhelper.c: ditto.

* vm_core.h: use RB_TYPE_P() instead of BUILTIN_TYPE().

Wed May 20 03:10:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* benchmark/bm_hash_aref_flo.rb: make more realistic data.
  [ruby-core:68632] [[Bug #10999]

Wed May 20 02:49:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* proc.c (respond_to_missing_p): check if the receiver responds to
  the given method by respond_to_missing?.

* proc.c (mnew_missing): create Method object for method_missing.
  [ruby-core:68564] [Bug #10985]

Wed May 20 02:16:05 2015 NAKAMURA Usaku <usa@ruby-lang.org>

* dir.c (replace_real_basename): need to check the return value of

Wed May 20 02:16:05 2015 NAKAMURA Usaku <usa@ruby-lang.org>

* dir.c (replace_real_basename): shouldn't create Ruby object before
  the object system is loaded.
  [ruby-core:68430] [Bug #10941]

Wed May 20 01:58:12 2015 Tanaka Akira <akr@fsij.org>

* lib/resolv.rb (Resolv::DNS::Label::Str#==): Check class equality.
  (Resolv::DNS::Name#initialize): Normalize labels as
  Resolv::DNS::Label::Str objects.

Wed May 20 01:47:23 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* iseq.c (rb_iseq_compile_with_option): check source type, must be
  an IO or a String.  [ruby-core:69219] [Bug #11159]

Fri May 15 05:01:25 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* symbol.c (Init_sym): make dsym_fstrs a hash compared by identity
  as the keys are unique fstrings, to get rid of running hash and
  compare methods and causing new object allocation during garbage
  collection phase.  [ruby-dev:48891] [Bug #10933]

Thu May 14 00:50:40 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (lambda): push and reset cmdarg_stack in lambda body.
  [ruby-core:69017] [Bug #11107]

Thu May 14 00:39:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dln.c (dln_load): check if a different libruby is loaded by the
  extension library, and then bail out to get rid of very frequent
  reported stale bug reports.

Thu May 14 00:29:44 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/fileutils.rb (FileUtils#mv): show the exact target path in
  the error message instead of the destination parent directory
  name.  patched by Joao Britto <jabcalves AT gmail.com> at
  [ruby-core:68706].  [Bug #11021]

Thu May 14 00:19:04 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* thread_pthread.c (reserve_stack): keep sp safe zone to get rid
  of crash by -fstack-check.  [ruby-core:68740] [Bug #11030]

Tue Apr 14 23:33:39 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in: check also procstat_getvmmap, which is not
  available on FreeBSD 9.  [ruby-core:68468] [Bug #10954]

* vm_dump.c (procstat_vm): use kinfo_getvmmap instead if
  procstat_getvmmap is not available.

Mon Apr 13 22:11:21 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* ext/openssl/lib/openssl/ssl.rb: stricter hostname verification
  following RFC 6125. with the patch provided by Tony Arcieri and
  Hiroshi Nakamura [ruby-core:61545] [Bug #9644]
* test/openssl/test_ssl.rb: add tests for above.

Mon Apr 13 13:03:33 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* lib/securerandom.rb: skip Win32 libraries in SecureRandom if
  OpenSSL::Random is available.
  https://github.com/ruby/ruby/pull/848 [Bug #10948] [Bug #10995]

Mon Apr 13 00:49:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (arg): fix segfault by null caused by syntax error.
  [ruby-core:68851] [Bug #10957]

Mon Apr 13 00:49:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (primary): empty parentheses at cmdarg can be null.
  [ruby-core:68477] [Bug #10957]

Mon Apr 13 00:44:12 2015 Eric Wong <e@80x24.org>

* ext/io/wait/wait.c (io_nread): wrap return value with INT2FIX
  Thanks to Yura Sokolov <funny.falcon@gmail.com>
  [ruby-core:68369] [Bug#10923]
* test/io/wait/test_io_wait.rb (test_nread_buffered):
  fix broken test

Mon Apr 13 00:16:32 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (vm_call_super): search next super class from the
  original class, to get rid of infinite recursion with
  prepending.  a patch by Seiei Higa <hanachin AT gmail.com> at
  [ruby-core:68434].  [ruby-core:68093] [Bug #10847]

Mon Apr 13 00:09:48 2015 Koichi Sasada <ko1@atdot.net>

* class.c (rb_prepend_module): need a WB for klass -> origin.

Sun Apr 12 23:53:33 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/fiddle/extconf.rb: needs --enable-shared when linked to
  libruby or fiddle.so.  since --with-static-linked-ext does no
  longer link extensions to ruby program with --enable-shared, the
  only combination needs --enable-static is --disable-shared and
  --with-static-linked-ext.  [ruby-dev:48901] [Bug #10960]

Sun Apr 12 23:53:33 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/fiddle/extconf.rb: make PIC objects if it will be linked as
  a shared object eventually.  [ruby-core:67128]

Sun Mar 22 12:39:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* spec/default.mspec: use default configuration file name.

Sun Mar 22 12:39:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* spec/default.mspec: remove specific version number.

Sun Mar 22 12:39:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* common.mk: use ruby organization for rubyspec.

Thu Feb 26 15:48:41 2015 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/win32/Win32API.rb (initialize): accept both a string and an array
  for the arguments of the imported function.
  reported by Aaron Stone [ruby-core:68208] [Bug #10876] [Fixes GH-835]

Wed Feb 25 15:36:26 2015 NARUSE, Yui <naruse@ruby-lang.org>

* tool/merger.rb: support 2.1+ versioning scheme.

Tue Feb 24 17:41:27 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* time.c (time_zone_name): should be US-ASCII only if all 7-bits,
  otherwise locale encoding.  [ruby-core:68230] [Bug #10887]

Tue Feb 24 17:41:27 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* time.c (time_zone_name): should be US-ASCII only if all 7-bits,
  otherwise locale encoding.  [ruby-core:68230] [Bug #10887]

Tue Feb 24 17:41:27 2015 Benoit Daloze <eregontp@gmail.com>

* time.c: Zone encoding should be US-ASCII if all 7-bits. Fix r46907.

* test/ruby/test_time.rb, test/ruby/test_time_tz.rb: Update tests.

Tue Feb 24 16:37:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (chompped_length): enable smart chomp for all non-dummy
  encoding strings, not only default_rs.
  [ruby-core:68258] [Bug #10893]

Tue Feb 24 16:31:53 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_split_m): raise ArgumentError at broken string
  not RegexpError, as Regexp is not involved in.
  [ruby-core:68229] [Bug #10886]

Tue Feb 24 14:00:46 2015 Koichi Sasada <ko1@atdot.net>

* gc.c (rb_objspace_call_finalizer): control GC execution during
  force firnalizations at the end of interpreter process.
  [Bug #10768]

  1) Prohibit incremental GC while running Ruby-level finalizers
     to avoid any danger.
  2) Prohibit GC while invoking T_DATA/T_FILE data structure
     because these operations break object relations consistency.

  This patch can introduce another memory consuming issue because
  Ruby-level finalizers can run after (2), GC is disabled.
  However, basically object consistency was broken at (2) as I
  described above. So that running Ruby-level finalizers contains
  danger originally. Because of this point, I need to suggest to
  remove these 3 lines (invoking remaining finalizers). And add a
  rule to add that finalizers should not add new finalizers, or
  say there is no guarantee to invoke finalizers that added by
  another finalizer.

Tue Feb 24 14:00:46 2015 Aman Gupta <ruby@tmm1.net>

* gc.c (rb_objspace_free): cause rb_bug if lazy sweep is in progress
  during rb_objspace_free. Adds extra protection for r46340.
  Patch by Vicent Marti. [Bug #10768] [ruby-core:67734]
* gc.c (rb_objspace_call_finalizer): Ensure GC is completed after
  finalizers have run. We already call gc_rest() before invoking
  finalizers, but finalizer can allocate new objects and start new GC
  cycle, so we call gc_rest() again after finalizers are complete.

Tue Feb 24 10:30:59 2015 Kazuki Tsujimoto <kazuki@callcc.net>

* vm_insnhelper.c (rb_vm_rewrite_cref_stack): copy nd_refinements
  of original crefs. It fixes segmentation fault when calling
  refined method in duplicate module. [ruby-dev:48878] [Bug #10885]

* vm_core.h, class.c: change accordingly.

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

Sun Feb 22 21:20:37 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (match_aref): RMatch::regexp is Qnil after matching by a
  string since r45451.  [ruby-core:68209] [Bug #10877]

Sun Feb 22 17:11:25 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* Makefile.in (probes.stamp): rebuild dtrace dependent objects
  only when `dtrace -G` modifies its input files.

Sun Feb 22 17:11:25 2015 Naohisa Goto <ngotogenome@gmail.com>

* common.mk (ruby-glommed.o): dependency on $(OBJ) should be written
  in common.mk (in which OBJ is defined) because of Makefile include
  and parse order. This partly reverts r49419.
  [ruby-dev:48849] [Bug #10808]

* Makefile.in (ruby-glommed.o): ditto.

* Makefile.in (ruby-glommed.o): remove excess $(DTRACE_OBJ) because
  it is included in $(OBJS) since r49451.

* Makefile.in (probes.o): should depend on $(DTRACE_DEPENDENT_OBJS)

Sun Feb 22 02:16:40 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* file.c (rb_file_identical_p): fix handle leak, ensure to close
  the handle of the first argument.

Sat Feb 21 13:48:11 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* win32/win32.c (different_device_p): compare by volume serial
  numbers, not by path names.  [ruby-core:68162] [Bug #10865]

Sat Feb 21 13:48:11 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* win32/win32.c (wrename): return EXDEV if moving a directory to
  another drive, since MoveFileExW does not set proper error code.
  [ruby-core:68162] [Bug #10865]

Sat Feb 21 12:46:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* win32/file.c (rb_file_expand_path_internal): neither the drive
  of base directory nor the current drive are involved in the
  result if different than the drive of path.
  [ruby-core:68130] [Bug #10858]

Sat Feb 21 12:46:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* win32/file.c (rb_file_expand_path_internal): do not make invalid
  (or ADS) path if the path has a drive letter, the result also
  should have be under it.  [ruby-core:68130] [Bug #10858]

Sat Feb 21 12:45:54 2015 Matt Hoyle <matt@deployable.co>

* ext/bigdecimal/bigdecimal.c (VpSetPTR): fix a typo, 'expoennt'
  to 'exponent'.  [ruby-core:67980] [Bug #10823] [Fix GH-825]

Fri Feb 20 17:47:20 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_core.h (rb_call_info_kw_arg_struct): make keywords a symbols
  list to get rid of inadvertent creation by variable keyword
  arguments.  [ruby-core:68031] [Bug #10831]

Fri Feb 20 15:08:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (has_magic): always get long path name on Windows even if
  no tilde is there.  [ruby-core:68011] [Bug #10819]

* dir.c (replace_real_basename): FindFirstFile ignore redirection
  character, check if exists before call it.  cf. [Bug #8597]

Fri Feb 20 15:08:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (glob_helper): obtain real name with FindFirstFile API
  instead of matchin all entries, on Windows.
  [ruby-core:67954] [Bug #10819]

Fri Feb 20 14:32:14 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (dir_initialize): workaround of opendir failure at symlink
  directories on Windows via CIFS.

Thu Feb 19 17:05:47 2015 Shugo Maeda <shugo@ruby-lang.org>

* class.c (rb_obj_singleton_methods): should use RTEST() to convert
  VALUE to int.

Thu Feb 19 16:14:04 2015 Shugo Maeda <shugo@ruby-lang.org>

* class.c (method_entry_i, class_instance_method_list,
  rb_obj_singleton_methods): should not include methods of
  superclasses if recur is false. [ruby-dev:48854] [Bug #10826]

Thu Feb 19 16:14:04 2015 Shugo Maeda <shugo@ruby-lang.org>

* vm_method.c (remove_method): When remove refined
  method, raise a NameError if the method is not
  defined in refined class.

  But if the method is defined in refined class,
  it should keep refined method and remove original

  Patch by Seiei Higa. [ruby-core:67722] [Bug #10765]

Thu Feb 19 16:07:03 2015 Seiei Higa <hanachin@gmail.com>

* proc.c (rb_obj_singleton_method): Kernel#singleton_method should
  not use refinements, as well as Kernel#method.
  [ruby-core:67603] [Bug #10744]

Thu Feb 19 15:32:26 2015 Dave Stevens <dave@crowdlab.com>

* string.c (str_make_independent_expand): terminate String when
  moved from heap to embedded.  [Fix GH-821].

Thu Feb 19 13:35:21 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/sdbm/_sdbm.c: include ruby/ruby.h for PRIdPTRDIFF when a
  macro `DEBUG` is defined.  based on the patch by Owen Rodley in
  [ruby-core:67987]. [Bug #10825]

Tue Feb 17 18:57:13 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/resolv.rb (Resolv::DNS::Resource#==, #hash): elements
  returned by Kernel#instance_variables are Symbols now.
  [ruby-core:68128] [Bug #10857]

Tue Feb 17 15:39:01 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/win32/lib/win32/registry.rb (Win32::Registry::API): use wide
  versions of RegDeleteValue and RegDeleteKey.
  [ruby-core:67958] [Bug #10820]

Tue Feb 17 11:50:06 2015 Yusuke Endoh <mame@tsg.ne.jp>

* string.c (str_discard): does not free for STR_NOFREE string.
  [Bug #10853][ruby-core:68110]

* bootstraptest/test_string.rb: test for above.

Sun Feb 15 13:15:46 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/socket/getaddrinfo.c (get_addr): reject too long hostname to
  get rid of GHOST vulnerability on very old platforms.

* ext/socket/raddrinfo.c (make_hostent_internal): ditto, paranoic
  check for the canonnical name.

Sat Feb 14 13:27:41 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (send_internal), vm_insnhelper.c (vm_call_opt_send):
  convert String method name into a Symbol, as method_missing
  method expects its first argument to be a Symbol.  [Bug #10828]

* vm_insnhelper.c (ci_missing_reason): return the reason of method
  missing in call info.

* vm_insnhelper.c (vm_call_opt_send): re-apply r49500 with the
  proper missing reason.  [Bug #10828]

Sat Feb 14 13:27:41 2015 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

* vm_insnhelper.c: Fix symbol leak with +send+ [Bug #10828]

Sat Feb 14 08:53:50 2015 Shugo Maeda <shugo@ruby-lang.org>

* class.c (method_entry_i, class_instance_method_list,
  rb_obj_singleton_methods): should not include methods of
  superclasses if recur is false. [ruby-dev:48854] [Bug #10826]

Fri Feb 13 13:59:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/mkmf.rb (try_cppflags, try_cflags, try_ldflags): get rid of
  interference by modifying global variables in have_devel? method.
  [ruby-core:67962] [Bug #10821]

Fri Feb 13 03:13:05 2015 Scott Francis <scott.francis@shopify.com>

* thread_pthread.c (reserve_stack): fix intermittent SIGBUS on
  Linux, by reserving the stack virtual address space at process
  start up so that it will not clash with the heap space.
  [Fix GH-822]

Fri Feb 6 12:05:13 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* thread.c: Improve documentation for Thread#value
  [Bug #10694][ruby-core:67324][ci skip]

Fri Feb 6 12:02:05 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/fiddle/win32/libffi.mk.tmpl: assemble without directory prefix.
  workaround of a bug of VC12 ml, by unak at [ruby-core:67792].
  [ruby-core:67789] [Bug #10780]

Fri Feb 6 01:03:38 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* marshal.c (w_object, marshal_dump): use indetity tables for
  arbitrary VALUE keys, because of performance of FLONUM.
  [Bug #10761]

* marshal.c (obj_alloc_by_klass, marshal_load): ditto.

Fri Feb 6 01:03:38 2015 Eric Wong <e@80x24.org>

* benchmark/bm_marshal_dump_flo.rb: new benchmark for [Bug #10761]

Fri Feb 6 01:03:38 2015 Eric Wong <e@80x24.org>

* st.c (st_numhash): mix float value for flonum
* hash.c (rb_any_hash): ditto
* benchmark/bm_hash_aref_flo.rb: new benchmark
* benchmark/bm_hash_ident_flo.rb: ditto
  [Bug #10761]

Thu Feb 5 16:30:09 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (gettable_gen): disable warnings of possible reference
  to a local variable defined in a past scope.
  [ruby-core:67162] [Bug #10661]

Mon Jan 26 15:35:16 2015 Seiei Higa <hanachin@gmail.com>

* vm_method.c (check_definition): Module#public_method_defined?,
  Module#private_method_defined?, Module#protected_method_defined?
  should not use refinements. [ruby-core:67656] [Bug #10753]

Thu Jan 22 11:47:31 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* doc/syntax/literals.rdoc (Symbols): now Symbols created by
  interpolation can be garbage collected.  patch by Yihang Ho in
  [ruby-core:67194].  [Bug #10671]

Thu Jan 22 11:45:32 2015 Kazuki Tsujimoto <kazuki@callcc.net>

* eval_intern.h, vm.c, vm_eval.c, vm_insnhelper.c:
  change throw mechanism (not save target ep, but save target cfp).
  It fixes `unexpected break' bug that occurs when
  TracePoint#binding is called.
  [ruby-dev:48797] [Bug #10689]

* test/ruby/test_settracefunc.rb: add a test.

Tue Jan 20 14:05:08 2015 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* ext/win32ole/win32ole.c (ole_invoke): avoid SEGV when VT_RECORD
  variable is passed by reference. [ruby-dev:48803] [Bug #10697] 

Mon Jan 19 15:45:33 2015 Seiei Higa <hanachin@gmail.com>

* vm_method.c (rb_method_entry): if no super class, no original
  method entry.  [ruby-core:67389] [Bug #10707]

Mon Jan 19 12:03:59 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_dump.c (rb_vm_bugreport): check by configured result instead
  of system name for old FreeBSD.  based on a patch by Steve Wills
  at [ruby-core:67655].  [Bug #10752]

Mon Jan 19 12:00:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in: get rid of pattern substitution, which is not
  supported by ash, and ash on NetBSD parses whole source first
  and fails to start.  [ruby-dev:48823] [Bug #10750]

Mon Jan 19 11:57:14 2015 Vit Ondruch <vondruch@redhat.com>

* configure.in (RUBY_SETJMP_TYPE): Remove superfluous semicolon
  which causes a syntax error with autoconf 2.63.
  [ruby-core:67429] [Bug #10716]

Mon Jan 19 11:44:52 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/rdoc/text.rb (expand_tabs): get rid of infinite loop with
  CR.  should check if substitution occurred too.
  [ruby-dev:48813] [Bug #10732]

Sun Jan 18 00:59:41 2015 Eric Wong <e@80x24.org>

* numeric.c (bit_coerce): use original value for error message
  [ruby-core:67405] [Bug #10711]
* test/ruby/test_numeric.rb (test_coerce): check error message

Sun Jan 18 00:53:38 2015 Seiei Higa <hanachin@gmail.com>

* vm_method.c (rb_alias): raise a NameError when creating alias to
  a refined method if the original method of the refined method is
  not defined.  [ruby-core:67523] [Bug #10731]

Sat Jan 17 22:25:50 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (need_normalization): not only HFS+, CIFS (SMB) is also
  decomposed.  [Bug #10704]

* dir.c (NORMALIZE_UTF8PATH): Unicode decomposition seems to
  perform in an upper layer than file systems on OSX, as all path
  names are always decomposed regardless of file system types.

Sat Jan 17 17:56:45 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (assocs, assoc): eliminate splatting empty literal
  hashes.  [ruby-core:67446] [Bug #10719]

* compile.c (compile_array_): supprt splatted hash in hash type.

Sat Jan 17 16:49:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/readline/readline.c (readline_s_refresh_line): initialize
  before rl_refresh_line(), as some function make the internal
  state non-clean but rl_refresh_line() does not re-initialize it.
  [ruby-core:43957] [Bug #6232]

Sat Jan 17 16:47:20 2015 NAKAMURA Usaku <usa@ruby-lang.org>

* eval_error.c (error_print): pos and len parameters of rb_str_substr()
  are counted by characters, not bytes.  use rb_str_subseq() instead.
  [Bug #10727] [ruby-core:67473]

Sat Jan 17 16:35:59 2015 Seiei Higa <hanachin@gmail.com>

* vm_method.c (rb_export_method): bail out if the original method
  is undefined when the method is refined.
  [ruby-core:67387] [Bug #10706]

Sat Jan 17 16:16:14 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (glob_helper): match in case-folding only if the directory
  resides on a case-insensitve file system, on OSX.
  [ruby-core:67364] [Bug #10700]

Sat Jan 17 02:04:01 2015 Eric Wong <e@80x24.org>

* lib/resolv.rb: consider ENETUNREACH as ResolvTimeout
  [ruby-core:67411] [Bug #10712]

Sat Jan 17 01:57:57 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* ext/zlib/zlib.c: fix document of method signatures.
  [Bug #10668][ruby-core:67186][ci skip]

Sat Jan 17 01:52:42 2015 Tanaka Akira <akr@fsij.org>

* time.c (timelocalw): Set tm_isdst field -1 if vtm->isdst is
  VTM_ISDST_INITVAL.  This bug is introduced at packing struct
  vtm (r45155).
  [ruby-core:67345] [Bug #10698] Reported by Boris Ruf.

Fri Jan 16 21:17:34 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* test/ruby/test_io.rb: added timeout for AIX environment.
  [ruby-core:62983][Bug #9917]

Fri Jan 16 18:25:57 2015 Tanaka Akira <akr@fsij.org>

* lib/resolv.rb (Resolv::DNS::Name#==): Compare an array of Label:Str
  objects.  Label#Str#== is case-insensitive.

Fri Jan 16 18:25:57 2015 Ben Miller <bmiller@rackspace.com>

* lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the
  comparison should be case-insensitive as well.
  [ruby-core:66498] [Bug #10550]

Fri Jan 16 18:25:57 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/resolv.rb (Resolv::DNS::Name): names with different dots
  should be different.

Fri Jan 16 17:34:57 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (f_label): return tLABEL value as it is.
  [ruby-core:67315] [Bug #10693]

Fri Jan 16 16:49:04 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/net/http.rb (Net::HTTP#send_request): there is no response body
  with HEAD request. Patch by @rodrigosaito [fix GH-520]

Fri Jan 16 16:49:04 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* test/net/http/test_http.rb (_test_send_request__HEAD): Added
  failing test for send_request with HEAD method.

Fri Jan 16 14:56:08 2015 Eric Wong <e@80x24.org>

* symbol.c (rb_gc_free_dsymbol): delete from global fstr hash
* test/ruby/test_symbol.rb (test_symbol_fstr_leak): test for bug
  [ruby-core:67268] [Bug #10686]

Fri Jan 16 14:20:52 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_args.c (keyword_hash_p): fix non-symbol keys hash.
  rb_extract_keywords() returns 0 not Qnil when no symbol keys is

Fri Jan 16 11:06:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/unicode_normalize.rb: typo fix. [ci skip]
  [ruby-dev:48794][misc #10675]
  included.  [ruby-core:67264] [Bug #10685]

Fri Jan 16 11:04:35 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (unescape_nonascii): append excape sequence as-is not
  unescaped character, to get rid of unexpected meta-character.
  [ruby-core:67193] [Bug #10670]

Sat Jan 3 21:17:58 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* thread.c (rb_thread_variable_get): fix dynamic symbol keys.
  rb_check_id() returns non-zero only for static symbols, whereas
  thread local variable keys can be dynamic symbols.
  [ruby-core:67185] [Bug #10667]

Thu Jan 1 08:29:55 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* cygwin/GNUmakefile.in (EXTOBJS): override to add resource files
  always.  [ruby-core:67153] [Bug #10657]

Wed Dec 31 15:26:46 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (f_kwrest, new_args_tail_gen): unnamed rest keyword and
  keywords bits arguments should be unique.  since internal IDs
  depend on the local variable index in the current scope, new ID
  should be made before popping those vtables.
  [ruby-core:67157] [Bug #10659]

Wed Dec 31 14:11:58 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* ext/tk/lib/tkextlib/tcllib/plotchart.rb: fix to invoke correct function
  of tcllib. Patch by @zalt50 [fix GH-787]

Wed Dec 31 13:26:22 2014 Eric Wong <e@80x24.org>

* vm_core.h (rb_vm_living_threads_insert): preserve order
  [Bug #10660] [ruby-core:67154] [ruby-core:67159]

Fri Dec 26 15:42:27 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* tool/rbinstall.rb: skip installing bundle gems if zlib is unavailable.
  [Bug #10647] [ruby-dev:48787]

Thu Dec 25 17:42:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/io/console/console.c (console_dev): send the given arguments
  to the opened console.  as a special case, do nothing if :close
  is given.

* test/lib/leakchecker.rb (LeakChecker#check_fd_leak): close if

Thu Dec 25 17:37:47 2014 Naohisa Goto <ngotogenome@gmail.com>

* gc.c (wmap_final_func): fix memory size shortage when realloc wmap.
  Fix SEGV during finilize of WeakRef on Solaris (though the SEGV
  could occur on all OS/platforms). [ruby-dev:48779] [Bug #10646]

Thu Dec 25 17:31:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in (NET_LUID): include winsock2.h instead of windows.h.
  patch by Jon Forums in [ruby-core:67125].  [Bug #10640]

Thu Dec 25 16:01:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* file.c (rb_file_expand_path_internal): drop characters ignored
  by filesystem on Mac OS X.

Thu Dec 25 15:36:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (replace_real_basename): get the real name and replace the
  base name with it by getattrlist(2) if available.
  suggested by Matthew Draper at [ruby-core:67116].  [Bug #10015]

* dir.c (glob_helper): get the real name of the whole path, not
  only the last name.

Thu Dec 25 13:59:17 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in (NET_LUID): include also ifdef.h as a workaround of
  a bug in mingw-w64 header.  [ruby-core:67103] [Bug #10640]

Thu Dec 25 12:47:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (gettable_gen): warn possible reference to a local
  variable defined in a past scope.

Thu Dec 25 10:09:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/io/console/console.c (console_dev): id_console is not a
  constant name, use rb_const_remove() to get rid of NameError.

Thu Dec 25 09:18:55 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* test/resolv/test_dns.rb (TestResolvDNS#test_query_ipv4_address):
  set timeout for recvfrom because if client thread is crashed, it
  waits infinity.

Thu Dec 25 08:42:11 2014 Eric Wong <e@80x24.org>

* lib/uri/generic.rb (split_userinfo): fstring for 1-byte split
  (set_port): reduce bytecode size
  (check_path): reduce garbage via opt_str_freeze
  (query=): ditto
  (fragment=): ditto
  [misc #10628]
* lib/uri/rfc3986_parser.rb (regexp): cache as attr
  (initialize): setup and freeze regexp attr once
  (split): reduce bytecode size, use opt_str_freeze
  (parse): minor bytecode and garbage reduction
  (default_regexp): rename for initialize

Wed Dec 24 20:38:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dir.c (glob_make_pattern): restrict searching case-insensitive
  name from the filesystem to only last part, for the performance.
  [ruby-core:63591] [Bug #10015]

Wed Dec 24 18:21:27 2014 Koichi Sasada <ko1@atdot.net>

* gc.c: remove unused rb_objspace_t::rgengc::old_objects_at_gc_start.

Wed Dec 24 13:25:22 2014 NARUSE, Yui <naruse@ruby-lang.org>

* tool/redmine-backporter.rb: require view_changesets permission.

Wed Dec 24 13:00:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* tool/downloader.rb (Downloader.download): fix the exception to
  re-raise.  initialize methods of subclasses of Exception may
  have different parameters.  [ruby-core:67086] [Bug #10639]

Wed Dec 24 12:16:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ruby.h (rb_data_type_t): revert r48647 and revise parent member.
  [ruby-core:66969] [Bug #10621]

Wed Dec 24 05:40:52 2014 NARUSE, Yui <naruse@ruby-lang.org>

* tool/downloader.rb: use config.guess in gcc repo.

Wed Dec 24 11:50:19 2014 Koichi Sasada <ko1@atdot.net>

* hash.c (rb_hash_delete): return Qnil if there are no corresponding
  entry. [Bug #10623]

* hash.c (rb_hash_delete_entry): try delete and return Qundef if there
  are no corresponding entry.

* internal.h: add rb_hash_delete_entry()'s declaration.

* symbol.c: use rb_hash_delete_entry().

* thread.c: use rb_hash_delete_entry().

* ext/-test-/hash/delete.c: use rb_hash_delete_entry().

Wed Dec 24 09:35:11 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/fiddle/extconf.rb: remove ffitarget.h generated by configure on
  mswin, because it's not normal file (cygwin's symlink) and have
  system attribute.

Wed Dec 24 05:40:52 2014 NARUSE, Yui <naruse@ruby-lang.org>

* tool/downloader.rb: support ruby 1.8.

Wed Dec 24 02:44:06 2014 NARUSE, Yui <naruse@ruby-lang.org>

* lib/net/http/response.rb (Net::HTTPResponse): require one or more
  spaces [Bug #10591].
  by leriksen <leif.eriksen.au@gmail.com>
  https://github.com/ruby/ruby/pull/782 fix GH-782
  NOTE: graph.facebook.com returns without SP Reason-Phrase.

Wed Dec 24 02:12:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* tool/make-snapshot (package): VCS#branch_list expects glob a
  pattern string but not a regexp.  based on the patch by Vit
  Ondruch.  in [ruby-core:67064].  [Bug #10636]

* tool/vcs.rb (VCS::SVN#branch_list): strip newlines.

* tool/vcs.rb (VCS::GIT.get_revisions): retrieve modified time
  from toplevel log too.

* tool/vcs.rb (VCS::GIT#branch_list): yield for each lines.

Wed Dec 24 00:23:13 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* tool/extlibs.rb (do_extract): the pipe should be binmode.

Wed Dec 24 00:21:44 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* Makefile.in, common.mk: move common-srcs to Makefile.in because
  it breaks build on mswin.

Wed Dec 24 00:04:45 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/open-uri.rb (OpenURI.open_http): accept multiple certs path in

* tool/downloader.rb: use certs of rubygems for downloading gems.

Tue Dec 23 22:39:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/fiddle/extlibs: libffi-3.2.1 and patch for mswin.

Tue Dec 23 22:04:38 2014 NARUSE, Yui <naruse@ruby-lang.org>

* lib/uri/generic.rb (URI::Generic#query=): don't escape [\]^
  on both rfc2396 and rfc3986. [Bug #10619]

Tue Dec 23 16:03:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/win32/lib/win32/registry.rb (Win32::Registry::Error#initialize):
  try en_US message if the default message cannot be encoded to
  locale.  [ruby-core:65295] [Bug #10300]

Tue Dec 23 11:42:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/openssl/ossl_cipher.c (ossl_cipher_update_long): update huge
  data gradually not to exceed INT_MAX.  workaround of OpenSSL API
  limitation.  [ruby-core:67043] [Bug #10633]

Mon Dec 22 21:30:16 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* test/win32ole/test_win32ole_event.rb: some tests are
  executed on standard Windows OS without ADO.

Mon Dec 22 14:08:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* signal.c (received_signal): fix condition to define.
  [ruby-core:67032] [Bug #10629]

Sun Dec 21 10:51:51 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* test/win32ole/test_win32ole_event.rb: test_s_new_exception is
  executed on standard Windows OS without ADO.

Sun Dec 21 08:35:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in (jemalloc): fix option argument, should use
  `$withval` but not `yes` always.  [ruby-core:66994] [Bug #10625]

* configure.in (jemalloc): defer adding the liner option to get
  rid of linking contest against jemalloc, so that it works
  without runtime dynamic load path.

Sat Dec 20 17:49:03 2014 Tanaka Akira <akr@fsij.org>

* lib/tmpdir.rb (Dir.mktmpdir): Accept nil again, as Ruby 2.1.
  [ruby-core:66943] [Bug #10616] Fixed by Alex Slynko.

Sat Dec 20 11:22:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/fiddle/depend, ext/fiddle/extconf.rb: try to build bundled
  libffi if existing.

Sat Dec 20 05:21:00 2014 Eric Wong <e@80x24.org>

* test/test_weakref.rb (test_repeated_object_leak): increase timeout
  [Bug #10618]

Fri Dec 19 22:33:13 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps: Use $(hdrdir) if possible.

Fri Dec 19 22:10:00 2014 Kenta Murata <mrkn@cookpad.com>

* ext/bigdecimal/depend: Fix dependencies to make bigdecimal
  installable by rubygems.

* ext/bigdecimal/bigdecimal.gemspec: version 1.2.6.

Fri Dec 19 20:00:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* include/ruby/ruby.h (PRIsVALUE): put a space after string
  literals not to be confused with C++11 string literal suffix.

Fri Dec 19 15:36:02 2014 Simon Genier <simon.genier@shopify.com>

* hash.c (hash_equal): prefer true than the result of implicit
  conversion from int returned by rb_eql() to VALUE.  [Fix GH-789]

Thu Dec 18 17:45:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in (rb_cv_binary_elf): get rid of -e option of cat
  which is not available on BusyBox, use tr instead.
  [ruby-core:64824] [Bug #10210]

Thu Dec 18 14:25:17 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* signal.c (ruby_signal): since SIGKILL is not supported by MSVCRT,
  should be treated before calling signal(3).
  [Bug #10615]

Wed Dec 17 12:20:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (rb_method_for_self_aref, rb_method_for_self_aset):
  move from iseq.c to build from node instead of arrays.

Wed Dec 17 10:50:09 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* test/gdbm/test_gdbm.rb: Added test for each_key called without a block.
  Patch by @joeyates [fix GH-783]

Wed Dec 17 10:18:42 2014 Koichi Sasada <ko1@atdot.net>

* compile.c (iseq_compile_each): check
  iseq->compile_data->option->specialized_instruction for opt_* insn.

* test/ruby/test_iseq.rb: check no specialized_instructions option.

Wed Dec 17 09:48:57 2014 Eric Wong <e@80x24.org>

* compile.c (iseq_compile_each): only emit opt_str_freeze,
  opt_aref_with, and opt_aset_with insn when no block is given
  [Bug #10557] [ruby-core:66595]
* test/ruby/test_optimization.rb (test_block_given_aset_aref):
  new test for bug thanks to Bartosz Kopinski.
  (test_string_freeze): additional assertion for object_id

Wed Dec 17 01:06:47 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/win32/lib/Win32API.rb (Win32API#call): need to splat.  hmm, when
  was this broken?

Tue Dec 16 15:18:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): call
  accessor functions directly, not to be affected by [] and []=
  methods.  [ruby-core:66846] [Bug #10601]

* struct.c (define_aref_method, define_aset_method): ditto.

* vm_insnhelper.c (rb_vm_opt_struct_aref, rb_vm_opt_struct_aset):
  direct accessors of Struct.

Tue Dec 16 12:01:29 2014 Koichi Sasada <ko1@atdot.net>

* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
  extend timeout seconds to 60 for RGENGC_CHECK_MODE > 0 environment.

Tue Dec 16 08:53:12 2014 Eric Wong <e@80x24.org>

* tool/vcs.rb: fix Ruby 1.8 compatibility harder

Tue Dec 16 07:37:18 2014 Eric Wong <e@80x24.org>

* gc.c (GC_HEAP_FREE_SLOTS): move definition to match use order
  (RUBY_GC_HEAP_GROWTH_SLOTS): s/factor/number of slots/

* man/ruby.1: add section for GC environment variables
  [Feature #10197]

Tue Dec 16 05:41:46 2014 Eric Wong <e@80x24.org>

* tool/vcs.rb: fix Ruby 1.8 compatibility

Mon Dec 15 17:51:28 2014 Koichi Sasada <ko1@atdot.net>

* ext/objspace/objspace.c: ObjectSpace.memsize_of(obj) returns
  with sizeof(RVALUE). [Bug #8984]

* gc.c (obj_memsize_of): ditto.

* NEWS: add a NEWS entry.

* test/objspace/test_objspace.rb: catch up this fix.

* test/ruby/test_file_exhaustive.rb: ditto.

Mon Dec 15 16:19:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_enc_str_coderange): dummy wchar, non-endianness
  encoding string cannot be ascii only.
  [ruby-core:66835] [Bug #10598]

Sun Dec 14 20:11:42 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (primary): restore current_arg so that circular
  reference after a method definition is also warned.
  [ruby-core:61299] [Bug #9593]

Sat Dec 13 20:41:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_trace.c (rb_postponed_job_flush): mask signal trap interrupt
  too to defer handling after finalizers finished.
  [ruby-core:66825] [Bug #10595]

Sat Dec 13 18:33:25 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* test/openssl/test_pkey_ec.rb: ignored tests with old OpenSSL.

Sat Dec 13 18:01:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* signal.c (check_stack_overflow): check sp also on i386/x86_64

Sat Dec 13 09:58:41 2014 Eric Wong <e@80x24.org>

* gc.c (define_final0): avoid duplicate blocks
  [Bug #10537]
* test/test_weakref.rb (test_repeated_object_leak): new test

Sat Dec 13 04:59:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* bin/erb (ERB::Main#run): get rid of shadowing outer local
  variables.  [ruby-core:65772] [Feature #10395]

Fri Dec 12 21:56:44 2014 Kouhei Sutou <kou@cozmixng.org>

* gems/bundled_gems: Upgrade to test-unit 3.0.8. assert_throw and
  assert_nothing_thrown in test-unit 3.0.7 were broken by
  UncaughtThrowError change introduced in Ruby 2.2.0
  preview2. These assertions in test-unit 3.0.8 work well with
  UncaughtThrowError in Ruby 2.2.0 preview2.

Fri Dec 12 19:48:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* bin/erb (ARGV.switch, ERB::Main#run): allow variables to be set
  from the command line.  [ruby-core:65772] [Feature #10395]

Fri Dec 12 19:31:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/erb.rb (ERB#lineno): accessor for line number to eval.

* lib/erb.rb (ERB#location=): setter of file name and line number.

Fri Dec 12 13:09:13 2014 Koichi Sasada <ko1@atdot.net>

* gc.c (gc_latest_gc_info): return :state field to show current
  GC state (none/marking/sweeping).
  [Feature #10590]

Fri Dec 12 10:49:18 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_crypt): check arguments more strictly.
  * crypt() is not for wide char strings
  * salt bytes should not be NUL

Fri Dec 12 08:16:01 2014 Matt Hoyle <matt@deployable.co>

* io.c (io_read) Fix spelling in docco for read.  [Fix GH-781]
  try > tries

Thu Dec 11 19:06:01 2014 Koichi Sasada <ko1@atdot.net>

* class.c (class_alloc): Start from age == 2.
  Class and Module objects can be living long life.

* iseq.c: Same for ISeq objects.

* gc.c (RVALUE_AGE_RESET): added.

* gc.c (newobj_of): allow to generate (age != 0) objects.

* gc.c (rb_copy_wb_protected_attribute): reset age for wb unprotected

* include/ruby/ruby.h: add RUBY_TYPED_PROMOTED1 as an unrecommended

Thu Dec 11 05:37:52 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

* lib/prime.rb: Remove useless loop and block capture.
  See [#10354]

Thu Dec 11 04:27:24 2014 Koichi Sasada <ko1@atdot.net>

* vm_core.h: introduce new field
  rb_thread_t::local_storage_recursive_hash_for_trace to store
  recursive hash to avoid creating new recursive (nested) hashes
  for each trace events.
  [Bug #10511]

* vm_trace.c (rb_threadptr_exec_event_hooks_orig): use it.

* cont.c: catch up this fix.

* vm.c (rb_thread_mark): ditto.

Wed Dec 10 13:39:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* struct.c (define_aref_method, define_aset_method): use iseq
  VALUE instead of rb_iseq_t to prevent from GC, as RB_GC_GUARD
  makes sense only for local variables.  [Feature #10575]

Wed Dec 10 09:38:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* thread.c (exec_recursive): use the same last method name as
  recursive_push in the error message when recursive_pop failed.
  [ruby-core:66742] [Bug #10579]

Wed Dec 10 02:48:46 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* test/net/http/test_https.rb
  (TestNetHTTPS#test_certificate_verify_failure): on Windows,
  Errno::ECONNRESET will be raised when the verify is failure at the
  client side, and it'll be eaten by WEBrick.

* test/open-uri/test_ssl.rb (TestOpenURISSL#test_validation_failure):

Wed Dec 10 00:42:13 2014 Eric Wong <e@80x24.org>

* iseq.c (rb_method_for_self_aref, rb_method_for_self_aset):
  new methods to generate bytecode for struct.c
  [Feature #10575]
* struct.c (rb_struct_ref, rb_struct_set): remove
  (define_aref_method, define_aset_method): new functions
  (setup_struct): use new functions
* test/ruby/test_struct.rb: add test for struct >10 members
* benchmark/bm_vm2_struct_big_aref_hi.rb: new benchmark
* benchmark/bm_vm2_struct_big_aref_lo.rb: ditto
* benchmark/bm_vm2_struct_big_aset.rb: ditto
* benchmark/bm_vm2_struct_small_aref.rb: ditto
* benchmark/bm_vm2_struct_small_aset.rb: ditto

Tue Dec 9 20:24:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* string.c: [DOC] Add missing documentation around String#chomp.
  Patch by @stderr [ci skip][fix GH-780]

Tue Dec 9 18:20:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* object.c: [DOC] Revise documentation by Marcus Stollsteimer at
  [ruby-core:66368].  [Bug #10526]

  * #inspect: be more specific about generated string, remove
    obsolete example.
  * #nil?: use code examples instead of different call-seq's.
  * #tap: clarify what is yielded.
  * Integer(): be more specific about to_int and to_i, remove
    reference to Ruby 1.8.
  * Array(): fix error.
  * Class: fix variable name style and indentation in example.
  * improve consistency, fix typos and formatting.

Tue Dec 9 12:48:32 2014 Josef Simanek <josef.simanek@gmail.com>

* vm_eval.c (rb_eval_string_wrap): [DOC] Fix `rb_eval_string_wrap`
  documentation.  It is referencing `require` instead of `load`.
  The former does not have the optional argument.  [Fix GH-779]

Tue Dec 9 10:16:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* eval.c (rb_frame_last_func): return the most recent frame method

* thread.c (recursive_list_access): use the last method name,
  instead of the current method name which can be unset in some
  cases, not to use a symbol by the invalid ID.
  [ruby-core:66742] [Bug #10579]

Sun Dec 7 19:36:12 2014 Kazuki Tsujimoto <kazuki@callcc.net>

* ext/socket/basicsocket.c, ext/socket/sockssocket.c:
  remove code for $SAFE=4.

Sun Dec 7 10:20:55 2014 Eric Hodel <drbrain@segment7.net>

* lib/rdoc:  Update to RDoc 4.2.0.
* test/rdoc:  ditto.

Sun Dec 7 09:52:30 2014 Eric Hodel <drbrain@segment7.net>

* lib/rubygems:  Update to RubyGems 2.4.5.
* test/rubygems:  ditto.

Sat Dec 6 10:05:08 2014 Shugo Maeda <shugo@ruby-lang.org>

* lib/net/imap.rb: Fix undefined variable usage & refactor/DRY
  code.  Patch by @aledovsky. [Fixes GH-770]

* test/net/test_imap.rb: related test.

Sat Dec 6 10:09:44 2014 Eric Wong <e@80x24.org>

* thread.c (do_select): rename parameters to avoid shadowing

Sat Dec 6 09:22:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/rake:  Update to rake 10.4.2
* test/rake: ditto.

Sat Dec 6 06:48:03 2014 Eric Wong <e@80x24.org>

* compile.c (rb_iseq_build_from_ary): remove misc handling

Sat Dec 6 06:14:23 2014 Vit Ondruch <vondruch@redhat.com>

* configure.in (RUBY_LIB_VERSION): Fix --with-ruby-version
  configuration option.  get rid of quoting in config.status.

* template/verconf.h.tmpl: quote RUBY_LIB_VERSION here.
  [ruby-core:66724] [Bug #10572]

Sat Dec 6 04:33:52 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/pp.rb (File::Stat#pretty_print): some platforms (such as Windows)
  does not have major/minor parts of device.

Fri Dec 5 22:43:04 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* ext/psych/lib/psych.rb: bump version to 2.0.8
* ext/psych/psych.gemspec: ditto.
* ext/psych/psych_emitter.c: ditto.
* ext/psych/psych_parser.c: ditto.

Fri Dec 5 17:09:09 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/socket/option.c (inet_ntop): link aliased inet_ntop in
  libruby on mswin not rb_w32_inet_ntop which fails to link for
  unknown reason.

Fri Dec 5 11:09:54 2014 Eric Wong <e@80x24.org>

* iseq.c (prepare_iseq_build): remove unused block_opt param
  (rb_iseq_new_with_bopt_and_opt): remove
  (rb_iseq_new_with_opt): inline removed function
  (rb_iseq_new_with_bopt): remove
  (iseq_load): adjust prepare_iseq_build call
  [Feature #10565]

Fri Dec 5 09:46:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parser_yylex): fix lex_state after tLABEL_END, should
  be EXPR_LABELARG to be followed by "paren with arg".
  [ruby-core:66705] [Feature #4935]

Fri Dec 5 02:27:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/extmk.rb: as all extension objects including initializations
  of ext and enc should be linked to libruby if enable-shared,
  EXTOBJS should not be linked to main programs.
  [ruby-core:66675] [Bug #10566]

Thu Dec 4 07:06:02 2014 Eric Wong <e@80x24.org>

* compile.c (rb_iseq_build_from_exception): entry->sp is unsigned
  (iseq_build_callinfo_from_hash): account for kw_arg
  (iseq_build_from_ary_body): update for r35459
  (CHECK_STRING, CHECK_INTEGER): remove unused checks
  (int_param): new function for checking new `params' hash
  (iseq_build_kw): new function for loading rb_iseq_param_keyword
  (rb_iseq_build_from_ary): account for `misc' entry and general
   structure changes
  [Feature #8543]
* iseq.c (CHECK_HASH): new macro (for `misc' and `param' entries)
  (iseq_load): account for `misc' and `params' hashes
  (iseq_data_to_ary): add final opt to arg_opt_labels,
   fix kw support, account for unsigned entry->sp
* ext/-test-/iseq_load/iseq_load.c: new ext for test
* ext/-test-/iseq_load/extconf.rb: ditto
* test/-ext-/iseq_load/test_iseq_load.rb: new test

Thu Dec 4 06:56:57 2014 Eric Wong <e@80x24.org>

* iseq.c (iseq_free): avoid segfault on incomplete iseq
* test/ruby/test_syntax.rb (test_invalid_next): new test
  for syntax error, not segfault

Thu Dec 4 04:20:34 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* load.c (ruby_require_internal): ignore error detail, just return
  an error.

Wed Dec 3 17:13:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* encoding.c (load_encoding): use rb_require_internal instead of
  calling rb_require_safe with protection.

Wed Dec 3 16:47:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* load.c (register_init_ext, ruby_init_ext): defer running the
  registered initialization function until required, not to enable
  extensions which have global effects just by loading, e.g.,
  mathn/complex and mathn/rational.  fix `make test` with

* enc/encinit.c.erb (Init_enc): initialize encdb and transdb

Wed Dec 3 14:51:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* load.c (ruby_require_internal): separate from rb_require_safe,
  not to raise exceptions.

* ruby.c (process_options): remove unnatural encoding search.

Wed Dec 3 14:34:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (setup_fake_str): fake string does not share another
  string, but just should not free.

Wed Dec 3 11:14:14 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/win32.c (w32_spawn): `v2` is used not only for `shell` but also
  `cmd`, so must not free before using `cmd`.
  [ruby-core:66648] [Bug #10563]

Wed Dec 3 09:48:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/racc/cparse/cparse.c (cparse_params_type): use typed data.

Tue Dec 2 21:33:56 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* ext/win32ole/win32ole.c: use typed data for com_hash.

Tue Dec 2 15:30:30 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* array.c (rb_ary_plus): in documentation, added note about
  inefficiency of repeated += operations.

Tue Dec 2 07:20:21 2014 Eric Wong <e@80x24.org>

* iseq.c (iseq_data_to_ary): keep hidden variables
  Thanks to wanabe [ruby-core:66566]

Tue Dec 2 06:46:57 2014 Aaron Patterson <aaron@tenderlovemaking.com>

* ext/psych/lib/psych.rb: bumping version

* ext/psych/psych.gemspec: ditto

Tue Dec 2 06:34:08 2014 Aaron Patterson <aaron@tenderlovemaking.com>

* ext/psych/lib/psych/visitors/to_ruby.rb: support objects that are
  marshalable, but inherit from basic object.
  Thanks Sean Griffin <sean@thoughtbot.com>

* ext/psych/lib/psych/visitors/yaml_tree.rb: ditto

* test/psych/test_marshalable.rb: test for fix

Tue Dec 2 06:32:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (ripper_flush_string_content): preserve the dispatched
  results at tSTRING_CONTENT.  [ruby-dev:48714] [Bug #10437]

* parse.y (regexp_contents): check in ripper only if the whole
  content is a single regexp without interpolation.
  [ruby-dev:48714] [Bug #10437]

Tue Dec 2 06:30:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (rb_reg_region_copy): new function to try with GC if copy
  failed and return the error.

Tue Dec 2 04:43:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* re.c (CHECK_REGION_COPIED): onig_region_copy() can fail when
  memory exhausted but returns nothing, so check by if allocated.

Tue Dec 2 02:53:00 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (magic_comment_encoding): enable in ripper, since the
  encoding is necessary to parse non-default encoding scripts.

Tue Dec 2 02:30:25 2014 NARUSE, Yui <naruse@ruby-lang.org>

* lib/uri/generic.rb (URI::Generic.build):
  use hostname= to detect and wrap IPv6 hosts.
  Build is accepting URI components and users may not expect
  that a host component needs to be wrapped with square brackets
  since it's not providing a URI.
  Note: initialize with arg_check => true does not wrap IPv6 hosts.
  by Joe Rafaniello <jrafanie@redhat.com>
  https://github.com/ruby/ruby/pull/765 fix GH-765

* test/uri/test_generic.rb: Add more tests

Mon Dec 1 20:01:12 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* ext/win32ole/win32ole.c: use typed data for WIN32OLE.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_event.c: ditto.

Mon Dec 1 17:20:42 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* win32/Makefile.sub (verconf.h): so depends on verconf.mk, which
  is rebuilt by setup.mak.

Mon Dec 1 11:05:46 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* proc.c: fix grammar by @BenMorganIO [fix GH-764][ci skip]

Mon Dec 1 10:49:53 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* man/rake.1: Update latest man content by @aledovsky
  [fix GH-771][ci skip]

Mon Dec 1 10:42:31 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* doc/syntax/refinements.rdoc: refinements are no longer experimental.
  patch by @gaurish [fix GH-775][ci skip]

Sun Nov 30 20:05:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (regexp_contents): fix a typo.  pointed out by wanabe.
  [ruby-dev:48741] [Bug #10543]

Sun Nov 30 18:55:32 2014 Tanaka Akira <akr@fsij.org>

* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
  Don't raise Interrupt.

Sun Nov 30 17:11:05 2014 Tanaka Akira <akr@fsij.org>

* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): Use

Sun Nov 30 00:02:52 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ruby.c (process_options, ruby_script): transcode script name and
  program name to locale encoding as well as argv.
  [ruby-dev:48752] [Bug #10555]

* ruby.c (translit_char_bin): should not use code page dependent
  CharNext on UTF-8 string.  [ruby-dev:48752] [Bug #10555]

Sat Nov 29 16:53:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ruby.c (ruby_set_argv): convert argv from UTF-8.

* win32/win32.c (rb_w32_sysinit, cmdglob, w32_cmdvector): convert
  wide char command line to UTF-8 argv, and glob in UTF-8 so that
  metacharacters would match multibyte characters.
  [ruby-dev:48752] [Bug #10555]

Sat Nov 29 10:49:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* win32/win32.c (win32_direct_conv, rb_w32_readdir): convert UTF-8
  and filesystem code page by using Win32 API directly.

Sat Nov 29 09:37:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* error.c (syserr_initialize): simplify message building and get
  rid of potential invalid byte sequence.

Sat Nov 29 06:09:44 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* eval_error.c (error_print): respect the encoding of the message.

* io.c (rb_write_error_str): use rb_w32_write_console() on Windows
  if stderr is a tty.

Fri Nov 28 05:10:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in (--with-setup): add option to select ext/Setup file.

Fri Nov 28 05:02:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* dmyenc.c (Init_enc): separate from dmyext.c for statically
  linked extension excluding encoding libraries.

Thu Nov 27 21:58:30 2014 Tanaka Akira <akr@fsij.org>

* common.mk (miniprelude.c): It does not depend on prelude.rb now.

Thu Nov 27 21:49:49 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps: List up files built always in the source directory
  and source files built always in the build directory.

Thu Nov 27 21:24:55 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>

* NEWS: add obsolete callcc.

Thu Nov 27 19:59:49 2014 Koichi Sasada <ko1@atdot.net>

* compile.c (iseq_compile_each): remove duplicated line event.
  [Bug #10449]

* test/ruby/test_settracefunc.rb: add and fix tests.

Thu Nov 27 19:04:50 2014 Koichi Sasada <ko1@atdot.net>

* vm_args.c: fix backtrace location for keyword related exceptions.

  For example, the following program
    def foo(k1: 1); end # line 1
    foo(k2: 2)          # line 2
  causes "unknown keyword: k2 (ArgumentError)".

  Before this patch, the backtrace location is only line 2.
  However, error should be located at line 1 (over line 2 in
  stack trace). This patch fix this problem.

* class.c (rb_keyword_error_new): separate exception creation logic
  from rb_keyword_error(), to use in vm_args.c.

* vm_insnhelper.c (rb_arg_error_new): rename to rb_arity_error_new().

* vm_args.c (argument_arity_error): rename to argument_arity_error().

* vm_args.c (argument_kw_error): added to fix backtrace.

* test/ruby/test_keyword.rb: add tests.

Thu Nov 27 17:31:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* common.mk (prelude.c): no longer depends on miniruby, since not
  depending on rbconfig.rb.

Thu Nov 27 17:12:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* common.mk (miniprelude.c): miniruby needs no preludes.

Thu Nov 27 17:10:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* template/prelude.c.tmpl: no code if no prelude code is given.

Thu Nov 27 13:11:00 2014 Koichi Sasada <ko1@atdot.net>

* gc.c (objspace_malloc_increase): enable lazy sweep on GC by malloc()
  (malloc_increase) to make GC incrementally.

  This change can increase memory consumption. Report us if you find
  any problem.

Thu Nov 27 12:46:38 2014 Tanaka Akira <akr@fsij.org>

* time.c (time_s_mkutc): [DOC] Time.utc's 10 arguments form
  doesn't examine wday, yday, isdst and tz.
  (time_s_mktime): [DOC] Time.mktime's 10 arguments form
  doesn't examine wday, yday and tz.
  Suggested by naruse.

Thu Nov 27 11:45:33 2014 Eric Wong <e@80x24.org>

* iseq.c (iseq_data_to_ary): add missing GC guard

Thu Nov 27 10:51:59 2014 Koichi Sasada <ko1@atdot.net>

* vm_core.h: add rb_thread_t::local_storage_recursive_hash
  to speed up Thread#[:__recursive_key__] access.
  [Bug #10511]

* thread.c (threadptr_local_aref): add fast path for

* thread.c (threadptr_recursive_hash, threadptr_recursive_hash_set):
  add special accessor for recursive hash.

* cont.c: store/restore local_storage_recursive_hash.

* vm.c: init and mark local_storage_recursive_hash.

* vm_trace.c (rb_threadptr_exec_event_hooks_orig): clear and restore
  local_storage_recursive_hash directly.

Thu Nov 27 07:11:00 2014 Eric Wong <e@80x24.org>

* compile.c (iseq_calc_param_size): hoist out of iseq_set_arguments

Wed Nov 26 22:28:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* include/ruby/ruby.h (rb_get_kwargs, rb_extract_keywords): export
  keyword argument functions.

Wed Nov 26 21:18:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* test/inlinetest.rb: removed unused test helper.

Wed Nov 26 20:47:28 2014 Masaya Tarui <tarui@ruby-lang.org>

* ext/continuation/continuation.c (Init_continuation): obsolete callcc.
  first step of [Feature #10548].

Wed Nov 26 19:57:54 2014 Koichi Sasada <ko1@atdot.net>

* test/ruby/test_gc.rb (test_latest_gc_info): do test separately
  to avoid mysterious behavior.

Wed Nov 26 19:54:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* win32/win32.c (constat_reset): do nothing on non-standard
  console emulators.  [ruby-core:66471] [Bug #10546]

Wed Nov 26 19:44:13 2014 Tanaka Akira <akr@fsij.org>

* lib/tsort.rb: Returns an enumerator if no block is given.
  [ruby-core:66270] [Feature #10508] Proposed by Andrey Savchenko.

Wed Nov 26 17:25:45 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (f_label, f_kw, formal_argument_gen): ignore invalid
  formal argument in keyword argument definition.
  [ruby-dev:48742] [Bug #10545]

Wed Nov 26 15:32:06 2014 Koichi Sasada <ko1@atdot.net>

* compile.c (iseq_set_sequence): use "nop" insn instead of
  "jump to next insn".

Wed Nov 26 11:01:35 2014 Eric Wong <e@80x24.org>

* iseq.c (iseq_s_compile_file): close IO when done

Wed Nov 26 06:06:23 2014 Tanaka Akira <akr@fsij.org>

* common.mk: encdb.h and transdb.h depends on $(PREP).
  So prebuild files for them in tarball are useless.

Wed Nov 26 02:08:44 2014 Tanaka Akira <akr@fsij.org>

* tool/make-snapshot: Don't generate enc/trans/newline.c in tarball.

Wed Nov 26 00:41:44 2014 Tanaka Akira <akr@fsij.org>

* common.mk (prereq): Don't depends on prelude.c and golf_prelude.c.
  Since they depend on $(PREP) which is miniruby, they are rebuilt
  after miniruby is built, even if tarball contains them.

Wed Nov 26 00:20:48 2014 Tanaka Akira <akr@fsij.org>

* template/prelude.c.tmpl: Don't expand RbConfig::Config[...].
  It is not used now.

* common.mk: prelude.c and golf_prelude.c doesn't depend on rbconfig.

Tue Nov 25 17:07:06 2014 Koichi Sasada <ko1@atdot.net>

* NEWS: add an "Implementation changes" section.

Tue Nov 25 16:09:28 2014 Eric Hodel <drbrain@segment7.net>

* lib/net/http.rb:  Do not attempt SSL session resumption when the
  session is expired.  [Bug #10533]

Tue Nov 25 15:59:46 2014 Eric Hodel <drbrain@segment7.net>

* lib/rake:  Update to rake 10.4.0
* test/rake:  ditto.
* NEWS:  ditto.

* test/lib/minitest/unit.rb:  Add compatibility shim for minitest 5.
  This only provides minitest 5 unit test naming compatibility.

Tue Nov 25 15:26:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* tool/vcs.rb (get_revisions): use Time.new instead of Time.mktime
  which does not accept UTC offset, and offset manually for older
  versions than 1.9.

Tue Nov 25 12:14:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* process.c (Init_process): initialize static IDs before constant
  definitions.  [ruby-core:66445]

Tue Nov 25 10:32:23 2014 Eric Wong <e@80x24.org>

* compile.c (iseq_build_callinfo_from_hash): hoist out
  (iseq_build_from_ary_body): shorten callinfo case

Mon Nov 24 23:03:21 2014 Kouhei Sutou <kou@cozmixng.org>

* gems/bundled_gems: Update to test-unit 3.0.7.

Mon Nov 24 12:44:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* process.c (check_exec_redirect_fd, check_exec_redirect),
  (rb_execarg_addopt): get rid of inadvertent ID pindown.

Mon Nov 24 02:03:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_setter): preserve encoding of global variable
  name in error message.

Mon Nov 24 02:03:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* iseq.c (rb_insn_operand_intern): preserve encoding of method
  name in CALL_INFO at disassembling.

Mon Nov 24 02:02:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* io.c (must_respond_to): preserve encodings of variable name and
  class name in warning message.

Sun Nov 23 10:46:23 2014 Eric Wong <e@80x24.org>

* internal.h (struct rb_execarg): 160 => 144 bytes on x86-64
* ruby.c (struct load_file_arg): 48 => 40 bytes on x86-64
* vm_args.c (struct args_info): ditto

Sun Nov 23 07:46:54 2014 Andy Maloney <asmaloney@gmail.com>

* io.c (rb_io_sysread): Remove redundant assignment of 'n'.
  [Fix GH-767]

Sat Nov 22 09:48:33 2014 Tanaka Akira <akr@fsij.org>

* tool/make-snapshot: Specify PWD macro for make.
  PWD environment variable may not exist.

Fri Nov 21 11:58:58 2014 Aaron Patterson <aaron@tenderlovemaking.com>

* lib/resolv.rb: fall back if canonicalization fails.
  Thanks Vit Ondruch for the patch!  [ruby-core:65836]

* test/resolv/test_dns.rb: test for patch

Sat Nov 22 01:11:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* object.c (rb_mod_const_get, rb_mod_const_defined): ditto.

* variable.c (rb_const_missing, rb_mod_const_missing): call
  const_missing without new ID to get rid of inadvertent ID

Fri Nov 21 19:32:57 2014 NARUSE, Yui <naruse@ruby-lang.org>

* common.mk (ext/ripper/ripper.c): revert about srcdir and top_srcdir.

* common.mk (ext/ripper/ripper.c): use $(PWD) for Unix,
  $(MAKEDIR) for Windows.

Fri Nov 21 18:12:37 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps: Refactored.

Fri Nov 21 14:25:40 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/Makefile.sub (top_srcdir): added because lacking this macro
  causes build error at r48526.

Fri Nov 21 12:00:58 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps (in_makefile): Use FILES_NEED_VPATH and

* ext/objspace/extconf.rb: Add VPATH for id.h

Fri Nov 21 09:10:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* common.mk (ext/ripper/ripper.c): fix dependencies for the case
  to make ripper.y and id.h under the build directory.

Fri Nov 21 08:42:21 2014 NARUSE, Yui <naruse@ruby-lang.org>

* common.mk (ext/ripper/ripper.c): id.h in VPATH may exist in the build

* common.mk (ext/ripper/ripper.c): $(RM) was not defined.

Fri Nov 21 00:36:09 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/openssl/lib/openssl/x509.rb
  (OpenSSL::X509::Name::RFC2253DN::StringChar): get rid of a false
  positive assertion in ripper's test.

Fri Nov 21 00:29:51 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/net/imap.rb (Net::IMAP::ResponseParser::BEG_REGEXP): no need to
  use embed string.

Fri Nov 21 00:19:17 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/uri/mailto.rb (URI::MailTo::EMAIL_REGEXP): should escape `#`.

Thu Nov 20 23:17:11 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps: Insert all dependencies found by compiler.

Thu Nov 20 15:51:01 2014 NARUSE, Yui <naruse@ruby-lang.org>

* ext/nkf/depend (nkf.o): add nkf.c as dependency.
  bsdmake tries to make nkf.o with nkf-utf8/nkf.c without this.

Thu Nov 20 08:54:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (struct parser_params): reduce size by reordering
  members and an unused member.

Thu Nov 20 02:44:27 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

* lib/matrix.rb: Vector#independent? and associated class method
  patch by gogo tanaka [#10451]

Thu Nov 20 02:32:34 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

* lib/matrix.rb: Add Vector#angle_with
  Patch by Egunov Dmitriy [#10442]

Thu Nov 20 02:10:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (ripper_flush_string_content, parser_parse_string):
  preserve parsed string content.  [ruby-dev:48714] [Bug #10437]

* parse.y (ripper_new_yylval): abstract function to create ripper
  wrapper, and make it able to hold another object.

Thu Nov 20 01:00:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (reg_named_capture_assign_gen): use predefined ID
  instead of rb_intern.

Thu Nov 20 00:54:57 2014 Tanaka Akira <akr@fsij.org>

* internal.h (ruby_init_setproctitle): Declare here.

Thu Nov 20 00:26:37 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parser_here_document): append byte sequence directly to
  the delayed content instead of creating an intermediate string

Wed Nov 19 21:11:01 2014 NARUSE, Yui <naruse@ruby-lang.org>

* common.mk (ext/json/parser/parser.c): don't touch parse.c,
  ruby repo is a downstream.

Wed Nov 19 20:38:11 2014 NARUSE, Yui <naruse@ruby-lang.org>

* common.mk (ext/ripper/ripper.c): use $(PWD) to get

Wed Nov 19 18:12:17 2014 NARUSE, Yui <naruse@ruby-lang.org>

* tool/downloader.rb (RubyGems.download): Don't download gem if the
  version is already downloaded. A gem file is versioned and
  it must be identical if the version is the same.

Wed Nov 19 17:59:25 2014 NARUSE, Yui <naruse@ruby-lang.org>

* common.mk (ext/ripper/ripper.c): pass build directory as VPATH.

* ext/ripper/depend (.y.c): use VPATH for y.tab.c.

Wed Nov 19 10:07:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* template/prelude.c.tmpl (Prelude#translate): strip VPATH prefix
  from prelude names, so that srcdir differences do not make the
  generated code different.

Wed Nov 19 07:45:11 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/win32.c (rb_w32_write): should set the error of
  GetOverlappedResult()'s, not WriteFile()'s (it's always
  ERROR_IO_PENDING, of course).

Tue Nov 18 14:16:47 2014 Koichi Sasada <ko1@atdot.net>

* gc.c (gc_record): add information for debug print.

Wed Nov 19 04:49:07 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* debug.c (set_debug_option): need the declaration.

* debug.c (set_debug_option): use the same macro with the implementation
  at win32/win32.c.

Wed Nov 19 04:16:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (symbol_list): fix the node type of literal symbol list
  with no interpolation.  [ruby-core:66343]

Wed Nov 19 00:26:15 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps: Sort dependencies.

Wed Nov 19 00:24:18 2014 Tanaka Akira <akr@fsij.org>

* enc/encdb.c: Include internal.h.

Tue Nov 18 23:23:45 2014 Tanaka Akira <akr@fsij.org>

* internal.h: Gather declarations in non-header files.

Tue Nov 18 23:45:52 2014 Tanaka Akira <akr@fsij.org>

* debug.c (SET_WHEN): Don't declare debug variables here.
  ruby_initial_gc_stress_ptr is changed int* to VALUE* at r41406.

* internal.h (ruby_initial_gc_stress_ptr): Declared.
  (ruby_enable_coredump): Ditto.

Tue Nov 18 18:06:43 2014 Tanaka Akira <akr@fsij.org>

* include/ruby/io.h (FMODE_WSPLIT): Removed.  The write() system call
  is not required to split.  It was useful to avoid whole process
  blocking in Ruby 1.8 but not useful since write() is invoked without

* io.c (wsplit_p): Removed.
  (io_writable_length): Removed.
  (rb_fcntl): Don't update the removed flags.

Tue Nov 18 03:23:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* object.c (check_setter_id): show the original argument instead
  of nil on TypeError.

Tue Nov 18 03:20:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* symbol.h (is_{local,global,instance,attrset,const,class,junk}_sym):
  fix ID type names.

Mon Nov 17 20:17:59 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* ext/win32ole/win32ole_event.c: use typed data.

Mon Nov 17 12:54:56 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/rubygems/*, test/rubygems/*: Update to RubyGems 2.4.4
  master (2f6e42e).

Mon Nov 17 06:13:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* proc.c (proc_binding): use the original iseq on a binding from
  proc from method object to get the location.

Sun Nov 16 19:38:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (rb_current_receiver): new function to return the
  receiver in the current control frame.  [Feature #10195]

Sun Nov 16 19:11:04 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/timeout.rb (Timeout::ExitException#exception): rescue
  UncaughtThrowError which is specific for throw, instead of

Sun Nov 16 18:22:18 2014 Eric Wong <e@80x24.org>

* tool/update-deps: warning to disable ccache

Sun Nov 16 13:11:35 2014 Tanaka Akira <akr@fsij.org>

* common.mk (CCAN_LIST_INCLUDES): Unused variable removed.

Sun Nov 16 11:07:25 2014 Eric Wong <e@80x24.org>

* test/ruby/test_io.rb (test_readpartial_locktmp):
  remove unnecessary begin/end

Sun Nov 16 00:45:23 2014 Tanaka Akira <akr@fsij.org>

* common.mk: Specify dependencies for generated C sources.

Sat Nov 15 23:10:45 2014 Tanaka Akira <akr@fsij.org>

* common.mk: No need to declare dependencies which
  will be detected by inference rules.

Sat Nov 15 20:34:23 2014 Tanaka Akira <akr@fsij.org>

* internal.h: Include ruby.h and ruby/encoding.h to be
  includable without prior inclusion.

Sat Nov 15 20:46:44 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_document.rb
  Group tests by general entity and parameter entity.

Sat Nov 15 20:43:31 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_document.rb
  (REXMLTests::TestDocument::EntityExpansionLimitTest): Define
  test XML in each test method because (1) each XML in used only
  one test and (2) related data and code should be close.

Sat Nov 15 20:39:06 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_document.rb
  (REXMLTests::TestDocument::EntityExpansionLimitTest): Use
  one test method for one test.

Sat Nov 15 20:16:59 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_document.rb
  (REXMLTests::TestDocument::EntityExpansionLimitTest): Use
  setup and teardown instead of ensure in test.

Sat Nov 15 20:11:34 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_document.rb (REXMLTests::TestDocument): Group
  entity expansion limit related tests.

Sat Nov 15 20:09:00 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_document.rb (REXMLTests::TestDocument::BomTest):
  Fix wrong parent class. It doesn't need inherit tests in
  TestDocument class.

Sat Nov 15 19:48:59 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/mkmf.rb (depend_rules): support comments during a line.

* lib/mkmf.rb (depend_rules): apply RULE_SUBST even if the dependency
  file contains path.

Sat Nov 15 19:25:46 2014 Tanaka Akira <akr@fsij.org>

* common.mk: Remove comments in Dependency lines.
  Notified by usa.

* enc/depend: Ditto.

* ext/**/depend: Ditto.

Sat Nov 15 16:28:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (rb_throw_obj): throw UncaughtThrowError instead of
  ArgumentError.  [Feature #10480]

Sat Nov 15 14:13:38 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps: Extend to fix dependencies.

* common.mk: Dependencies updated by tool/update-deps.

* enc/depend: Ditto.

* ext/**/depend: Ditto.

Fri Nov 14 17:36:48 2014 Tanaka Akira <akr@fsij.org>

* tool/update-deps: Support GNU Make 4.0.

Fri Nov 14 16:59:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* gc.c (default_proc_for_compat_func): check arguments number and
  type, and get rid of reentering this default proc.

Fri Nov 14 16:33:06 2014 Koichi Sasada <ko1@atdot.net>

* gc.c (gc_stat_internal): support compatible layer for
  GC.stat(symbol) type access.

Fri Nov 14 16:19:08 2014 Koichi Sasada <ko1@atdot.net>

* gc.c (gc_stat_internal): add compatible layer.
  From Ruby 2.2, keys of GC.stat are changed [Feature #9924].
  To provide compatible layer, GC.stat add a default_proc
  (if default_proc of given Hash object is not set).

  At first use of this compatible layer of interpreter process,
  show a warning message like that:
  program: GC.stat[:total_allocated_object]
  warning message: "warning: GC.stat keys were changed from Ruby
  2.1. In this case, you refer to obsolete `total_allocated_object'
  (new key is `total_allocated_objects').
  Please check <https://bugs.ruby-lang.org/issues/9924>
  for more information."

  Please correct my English message :)

* hash.c (rb_hash_set_default_proc): export (in internal).

* internal.h: ditto.

Fri Nov 14 10:41:25 2014 Koichi Sasada <ko1@atdot.net>

* gc.c: guard by #if/#endif with GC_ENABLE_INCREMENTAL_MARK
  to hide unused codes.

* gc.c: similar to GC_ENABLE_LAZY_SWEEP.

Fri Nov 14 10:23:35 2014 Eric Wong <e@80x24.org>

* vm_eval.c (rb_eval_cmd): use pre-defined idCall

Fri Nov 14 09:25:44 2014 Eric Wong <e@80x24.org>

* vm_eval.c (rb_yield_splat): add missing GC guard
  [Bug #10509]

Fri Nov 14 08:12:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* gc.c: fix build error caused by implicit conversion with clang.

Fri Nov 14 06:54:06 2014 Eric Wong <e@80x24.org>

* insns.def (opt_succ): remove Time#succ optimization
  [Feature #10501]

Fri Nov 14 05:29:46 2014 Koichi Sasada <ko1@atdot.net>

* gc.c: refactoring.


* gc.c (gc_start): check FORCE_MAJOR_GC.

Fri Nov 14 04:51:18 2014 Koichi Sasada <ko1@atdot.net>

* gc.c: Tuning RincGC parameters.

  Before this patch, gc_marks_step() marks (white -> grey) fixed
  number objects. However, this strategy does not fit practical
  cases, for example too slow to make progress.

  This patch changes this strategy how many objects the
  gc_marks_step() should handle.

  We can estimate how many times gc_marks_step() is called during
  this major marking (== C) with the free slot number in pooled
  pages. We also can estimate the living object number (== L)
  using last marked_slots value. We can solve this problem (how
  many objects should be process in gc_marks_step()) by L/C.

* gc.c (rb_objspace_t): add rb_objspace_t::rincgc::pooled_slots and

Fri Nov 14 01:26:47 2014 Shugo Maeda <shugo@ruby-lang.org>

* lib/net/imap.rb (search_response): parse MODSEQ in SEARCH
  responses properly.  [ruby-core:64203] [Bug #10112]

Fri Nov 14 01:03:17 2014 Tanaka Akira <akr@fsij.org>

* test/lib/envutil.rb: Moved from test/ruby/.

* test/lib/find_executable.rb: Ditto.

* test/lib/memory_status.rb: Ditto.

* test/lib/test/unit.rb: require envutil.

* test/: Don't require envutil in test files.

Thu Nov 13 21:59:58 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>

* lib/rexml/document.rb: add REXML::Document#document.
  reported by Tomas Hoger <thoger@redhat.com> and patched by nahi.

Thu Nov 13 21:51:56 2014 Tanaka Akira <akr@fsij.org>

* test/monitor/test_monitor.rb: Use assert_join_threads.

Thu Nov 13 21:45:13 2014 Tanaka Akira <akr@fsij.org>

* test/openssl: Don't specify port number.

Thu Nov 13 21:22:35 2014 Tanaka Akira <akr@fsij.org>

* test/openssl/ssl_server.rb: Unused file removed.
  It is not used since r16111, Ruby 1.9.1.

Thu Nov 13 18:50:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* eval.c (rb_ensure): remove obsolete prot_tag comment.  patch by
  Jack Danger at [ruby-core:66238].  [misc #10502]

Thu Nov 13 18:10:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm.c (rb_vm_make_proc_lambda): similar to rb_vm_make_proc() with
  is_lambda argument.

Thu Nov 13 12:11:18 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/win32.c (rb_w32_fstat{,i64}): speed up.  adjusting
  timestamps in this function is to get rid of the side effect of
  ENV["TZ"].  then, if ENV["TZ"] is not set, no need to adjust.
  this change makes File#stat about 60% faster.

Thu Nov 13 11:56:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* st.c: include "internal.h" for STATIC_ASSERT.

Thu Nov 13 03:56:38 2014 Eric Wong <e@80x24.org>

* gc.c (struct heap_page): trivial packing
  304 => 296 bytes on x86-64

Wed Nov 12 22:50:12 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* gems/bundled_gems: Update to test-unit 3.0.6 and minitest 5.4.3.

Wed Nov 12 22:30:52 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/rubygems/*: Update to RubyGems 2.4.3 master (7b1f684).

Wed Nov 12 00:26:37 2014 Tanaka Akira <akr@fsij.org>

* test/ruby/test_object.rb: Specify an exception class for rescue clause.

* test/dbm/test_dbm.rb: Ditto.

* test/gdbm/test_gdbm.rb: Ditto.

* test/sdbm/test_sdbm.rb: Ditto.

Tue Nov 11 23:43:51 2014 Tanaka Akira <akr@fsij.org>

* test/fileutils/test_fileutils.rb: Use assert_join_threads.

Tue Nov 11 22:51:14 2014 Tanaka Akira <akr@fsij.org>

* test/resolv/test_dns.rb: Use assert_join_threads.

Tue Nov 11 22:33:08 2014 Tanaka Akira <akr@fsij.org>

* test/net/pop/test_pop.rb: Use assert_join_threads.

Tue Nov 11 22:07:20 2014 Tanaka Akira <akr@fsij.org>

* test/net/http/test_https_proxy.rb: Use assert_join_threads.

Tue Nov 11 18:09:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* template/prelude.c.tmpl: move from tool/compile_prelude.rb and
  expand by generic_erb.rb.

Tue Nov 11 13:01:31 2014 NARUSE, Yui <naruse@ruby-lang.org>

* lib/rubygems/commands/contents_command.rb (files_in_default_gem):
  remove useless sort. show_files will sort the result and
  another branch, files_in_gem, doesn't sort.
  it should be removed for consistency.

* test/rubygems/test_gem_commands_contents_command.rb
  (test_execute_default_gem): adjust the sort algorithm with
  Gem::Commands::ContentsCommand#show_files, which sort items
  as array of [prefix, basename] not strings.

Tue Nov 11 10:37:09 2014 Koichi Sasada <ko1@atdot.net>

* string.c (sym_equal): use rb_obj_equal().
  rb_obj_equal() is specially optimized in

  This fix is made from this discussion:

Tue Nov 11 09:38:55 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/rdoc/known_classes.rb: reverted regression changes of
  rdoc known class.

Tue Nov 11 00:21:50 2014 Tanaka Akira <akr@fsij.org>

* test/net/imap/test_imap.rb: Don't ignore exceptions on server

Mon Nov 10 23:34:13 2014 Tanaka Akira <akr@fsij.org>

* test/net/ftp/test_ftp.rb (create_ftp_server): Don't ignore
  exceptions on server thread.
  Delete read_timeout method call to fix NoMethodError.

Mon Nov 10 20:20:53 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/win32.c (rb_w32_read): retry with reduced length if cannot to
  write any data but no error occurs.

Mon Nov 10 20:04:16 2014 Tanaka Akira <akr@fsij.org>

* lib/webrick/server.rb: Setup shutdown pipe in listen method.

Mon Nov 10 19:37:09 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/win32.c, include/win32/win32.h (rb_w32_set_nonblock): new
  function to support nonblock-mode of pipes.

* win32/win32.c (rb_w32_read): nonblock-mode pipe returns ERROR_NO_DATA
  if there is no data, but also returns it if remote-end is closed.

* win32/win32.c (rb_w32_write): if cannot to write any data, it may be

* io.c (rb_io_set_nonblock): use rb_w32_set_nonblock for Windows.

* ext/io/nonblock/nonblock.c (rb_io_nonblock_set): use ruby's API when
  setting nonblock-mode.

* test/ruby/test_io.rb: test nonblock pipes on Windows.

Mon Nov 10 17:24:34 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/etc/etc.c (etc_getlogin): set login name encoding properly.
  [ruby-core:66163] [Bug #10493]

Mon Nov 10 16:20:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/rubygems/*.rb: Update to RubyGems master(3e36528).

Mon Nov 10 16:09:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* signal.c (rb_f_kill): [DOC] mention known signal list.
  [ruby-core:66162] [Bug #10492]

Mon Nov 10 14:17:58 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/rdoc/*.rb: Update to RDoc 4.2.0.alpha(579a11c)

Mon Nov 10 12:44:39 2014 Tanaka Akira <akr@fsij.org>

* lib/webrick/server.rb: Less instance variables.

Mon Nov 10 12:19:43 2014 Tanaka Akira <akr@fsij.org>

* lib/webrick/server.rb (shutdown): Use close() on @shutdown_pipe_w to
  notify readability on the read side of the pipe.
  write_nonblock() is not usable for pipe on Windows.
  (cleanup_shutdown_pipe): Rescue IOError for @shutdown_pipe_w.close.

Mon Nov 10 07:31:59 2014 Tanaka Akira <akr@fsij.org>

* lib/webrick/server.rb (initialize): Initialize shutdown pipe here
  to avoid race condition.
  (cleanup_shutdown_pipe): New private method.
  (cleanup_listener): Extracted from shutdown method.
  Call this method from start method to avoid race condition.

Mon Nov 10 05:57:53 2014 Tanaka Akira <akr@fsij.org>

* test/webrick/webrick.cgi: Don't use debug mode.

* test/webrick/webrick_long_filename.cgi: Ditto.

Sun Nov 9 23:25:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (vm_call_super): allow bound proc method to call super

* vm_insnhelper.c (vm_yield_with_cfunc): push defined class and
  bound proc method entry to the control frame.

Sun Nov 9 22:46:13 2014 Tanaka Akira <akr@fsij.org>

* test/open-uri: Test server log in server thread.

* test/webrick: Ditto.

Sun Nov 9 22:28:34 2014 Tanaka Akira <akr@fsij.org>

* lib/webrick/httpstatus.rb: require webrick/accesslog for AccessLog.

Sun Nov 9 21:03:59 2014 Tanaka Akira <akr@fsij.org>

* test/webrick: Fix the argument order of assert_equal.

Sun Nov 9 20:29:01 2014 Tanaka Akira <akr@fsij.org>

* test/webrick: Store log in an array.

* test/net/http: Ditto.

* test/open-uri: Ditto.

Sun Nov 9 18:35:36 2014 Tanaka Akira <akr@fsij.org>

* test/xmlrpc: Refine log test.

Sun Nov 9 18:33:33 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* lib/unicode_normalize/normalize.rb: Replaced if-else by
  case in self.normalized? in parallel to r48309.

Sun Nov 9 18:07:00 2014 Tanaka Akira <akr@fsij.org>

* test/xmlrpc: Use assert_join_threads.

Sun Nov 9 14:06:13 2014 Tanaka Akira <akr@fsij.org>

* test/xmlrpc: Test webrick error log is empty.

Sun Nov 9 13:47:02 2014 Koichi Sasada <ko1@atdot.net>

* gc.c (is_incremental_marking): use #if/#else because
  rb_objspace_t::flags::during_incremental_marking is not defined

* gc.c (will_be_incremental_marking, is_full_marking): similar fix.

Sun Nov 9 12:16:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/securerandom.rb (SecureRandom.gen_random): separate
  implementation details and select at the load time.

Sun Nov 9 12:09:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/win32/lib/win32/registry.rb (Win32::Registry::API#Enum{Value,Key):

Sun Nov 9 11:48:40 2014 Tanaka Akira <akr@fsij.org>

* test/net/http: Examine webrick log.

Sun Nov 9 11:45:19 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* gems/bundled_gems: upgraded to test-unit 3.0.5.

Sun Nov 9 11:40:50 2014 Tanaka Akira <akr@fsij.org>

* defs/known_errors.def: More errors for FreeBSD.

Sun Nov 9 11:25:11 2014 Kazuki Tsujimoto <kazuki@callcc.net>

* gems/bundled_gems: upgraded to power_assert 0.2.0.

Sun Nov 9 10:31:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* lib/securerandom.rb: set the script encoding to make a string
  literal in SecureRandom::Kernel32.last_error_message single byte
  encoding so msg[] works in bytes, since FormatMessage() returns
  the size in TCHARs, not in characters.

Sun Nov 9 09:50:22 2014 Tanaka Akira <akr@fsij.org>

* test/webrick: Refine log tests.

Sun Nov 9 08:58:05 2014 Tanaka Akira <akr@fsij.org>

* defs/known_errors.def (EHWPOISON): New errno symbol.
  It is defined by glibc-2.16.

Sun Nov 9 05:00:23 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/securerandom.rb (initialize): call the special method for Win32
  before checking `/dev/urandom` because we know windows doesn't have it.

Sun Nov 9 04:01:46 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/securerandom.rb (SecureRandom::AdvApi32): split from `initialize`.
  thanks @zzak to remember it.

Sun Nov 9 02:05:33 2014 Tanaka Akira <akr@fsij.org>

* test/net/http/utils.rb: Don't connect to spawned server
  before actual test.

Sun Nov 9 01:51:50 2014 Benoit Daloze <eregontp@gmail.com>

* object.c (Module#const_defined?): [DOC] Revise the documentation.
  Patch by Xavier Noria.
  [Fixes GH-754] https://github.com/ruby/ruby/pull/754

Sun Nov 9 00:37:44 2014 Tanaka Akira <akr@fsij.org>

* test/webrick: Examine log and use assert_join_threads.

Fri Nov 7 00:00:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* template/unicode_norm_gen.tmpl: expand kompatible_table so that
  recursive expansion is not needed at runtime.

Thu Nov 6 23:58:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* pack.c (pack_pack): escape unprintable characters and preserve
  the encoding of warning message.

Thu Nov 6 23:55:18 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (sym_printable): QUOTE() should not raise an exception
  even on invalid byte sequence.

Thu Nov 6 21:44:36 2014 Tanaka Akira <akr@fsij.org>

* test/test_unicode_normalize.rb: Rename TestNormalize to
  Define constants under TestUnicodeNormalize.

Thu Nov 6 21:22:59 2014 Tanaka Akira <akr@fsij.org>

* test/open-uri/test_open-uri.rb: Check empty webrick log.

Thu Nov 6 19:27:34 2014 NARUSE, Yui <naruse@ruby-lang.org>

* re.c (unescape_nonascii): cast -1 for the case char is unsigned char.
  If char is signed char, for example gcc for ARM or ppc64, it caused
  infinite loop.

Thu Nov 6 09:53:18 2014 Eric Wong <e@80x24.org>

* lib/uri/rfc2396_parser.rb (initialize): reduce bytecode size
  2088 => 1332 bytes on 32-bit x86

Thu Nov 6 08:49:49 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* lib/unicode_normalize/normalize.rb: Comment clarification.

Wed Nov 5 23:43:24 2014 Naohisa Goto <ngotogenome@gmail.com>

* compile.c (compile_data_alloc): add padding when strict alignment
  is required for memory access. Currently, the padding is enabled
  only when the CPU is 32-bit SPARC and the compiler is GCC.
  [Bug #9681] [ruby-core:61715]

* compile.c (STRICT_ALIGNMENT): defined if strict alignment is required

  new macros for alignment word size, bit mask, max size of padding.

* compile.c (calc_padding): new function to calculate padding size.

Wed Nov 5 23:24:45 2014 Tanaka Akira <akr@fsij.org>

* test/open-uri/test_open-uri.rb: Don't ignore webrick's log.

Wed Nov 5 19:20:08 2014 Tanaka Akira <akr@fsij.org>

* lib/webrick/server.rb: Stop listener loop properly.
  [ruby-core:66085] [Bug #10478] Fixed by Charles Nutter.

Wed Nov 5 17:20:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* include/ruby/intern.h (rb_disable_super, rb_enable_super): warn
  as deprecated at build time, instead of ignoring silently or
  warning at runtime only.

Wed Nov 5 16:55:52 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* proc.c (rb_f_lambda): remove deprecated function, which has been
  unavailable from extension libraries.

Wed Nov 5 16:26:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* include/ruby/intern.h (rb_clear_cache): mark as deprecated, not
  only warnings at runtime.

Wed Nov 5 15:05:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_{,l,r}strip_bang): rb_str_subseq() will not
  NUL-terminate the result string, in the future, so it will not
  be needed in other cases.

Wed Nov 5 14:11:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* common.mk (lib/unicode_normalize/tables.rb): do nothing unless
  BASERUBY is available.  MINIRUBY cannot load extension libraries,
  so cannot update Unicode data.

Wed Nov 5 12:13:54 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_lstrip, rb_str_strip): reduce memory copy by
  copying necessary part only.

* string.c (rb_str_strip_bang, rb_str_strip): ditto.

Wed Nov 5 12:13:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_lstrip, rb_str_strip): reduce memory copy by
  copying necessary part only.

* string.c (rb_str_strip_bang, rb_str_strip): ditto.

Wed Nov 5 10:54:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* string.c (rb_str_lstrip_bang, rb_str_rstrip_bang): terminate
  wchar strings with wchar 0.

Tue Nov 4 21:23:22 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/win32/lib/Win32API.rb: Fiddle::Importer is defined in
  fiddle/import.rb and it's not loaded implicitly.

* ext/win32/lib/Win32API.rb (Win32API#initialize): `import` is a string.

* ext/win32/lib/Win32API.rb (Win32API#initialize):
  Fiddle::Importer::CALL_TYPE_TO_ABI is private constant.

Tue Nov 4 21:20:07 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/securerandom.rb (SecureRandom.random_bytes): use fiddle directly
  instead of using Win32API.

Tue Nov 4 21:04:30 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* test/rubygems/test_gem_request_set_lockfile.rb
  (test_relative_path_from): driveletter support.

Tue Nov 4 16:23:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* test/rubygems/test_gem_remote_fetcher.rb (RemoteFetcherCleanup):
  close all pooled connections for each tests to fix leaked file

Tue Nov 4 12:51:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* include/ruby/ruby.h (PRIsVALUE), vsnprintf.c (BSD_vfprintf): add
  RUBY_PRI_VALUE_MARK to reduce danger of accidental conflict with
  plain "%i".  binary incompatible with extension libraries using
  PRIsVALUE and built for 2.1 and earlier.  [EXPERIMENTAL]

Tue Nov 4 12:33:44 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* object.c: fix document of Kernel#String by @suzukaze
  [fix GH-743][ci skip]

Tue Nov 4 12:21:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/csv.rb: added documentation for skip_blanks option by @decasia
  [fix GH-744][ci skip]

Tue Nov 4 12:09:18 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* lib/open3.rb: fix code formatting in documentation by @JoshCheek
  [fix GH-747][ci skip]

Tue Nov 4 08:57:37 2014 Eric Wong <e@80x24.org>

* encoding.c (enc_memsize): remove unnecessary function

Mon Nov 3 18:09:39 2014 Tanaka Akira <akr@fsij.org>

* test/openssl/utils.rb: The default of :ignore_listener_error is
  changed to false.

Mon Nov 3 14:42:37 2014 Koichi Sasada <ko1@atdot.net>

* iseq.c (iseq_free): resolve memory leak.

Mon Nov 3 13:49:18 2014 Koichi Sasada <ko1@atdot.net>

* iseq.c (iseq_memsize): catch up recent changes.

Mon Nov 3 13:38:28 2014 Koichi Sasada <ko1@atdot.net>

* vm_core.h: change semantics of opt_num and opt_table.
  `opt_num' was the number of optional parameters + 1.
  `opt_table' has "opt_num" entries.

  Change them to:
  `opt_num' is the number of optional parameters.
  `opt_table' has "opt_num + 1" entries.

  This change simplify parameter fitting logics.

* compile.c: catch up this change.

* iseq.c: ditto.

* proc.c: ditto.

* vm_args.c: ditto.

Mon Nov 3 11:47:44 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* NEWS: added period into Matrix section. [ci skip]
  [misc #10446][ruby-core:65987]

Mon Nov 3 09:43:30 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* vm_args.c: fixed build error with clang

Mon Nov 3 09:32:46 2014 NARUSE, Yui <naruse@ruby-lang.org>

* lib/uri/rfc3986_parser.rb (URI::RFC3986_Parser::RFC3986_URI):
  allow '[' and ']' for URI input (and escape). [Bug #10402]

* lib/uri/generic.rb (URI#query=): escape '[', '\', and ']'.

Mon Nov 3 07:49:34 2014 Koichi Sasada <ko1@atdot.net>

* vm_core.h: change iseq parameter data structure.

  * change terminology `arg' to `param'.
  * move rb_iseq_t::arg_* to rb_iseq_t::param.
  * move rb_iseq_t::arg_size to rb_iseq_t::param::size.
  * move rb_iseq_t::argc to rb_iseq_t::param::lead_num.
  * move rb_iseq_t::arg_opts to rb_iseq_t::param::opt_num.
  * move rb_iseq_t::arg_rest to rb_iseq_t::param::rest_start.
  * move rb_iseq_t::arg_post_num to rb_iseq_t::param::post_num.
  * move rb_iseq_t::arg_post_start to rb_iseq_t::param::post_start.
  * move rb_iseq_t::arg_block to rb_iseq_t::param::block_start.
  * move rb_iseq_t::arg_keyword* to rb_iseq_t::param::keyword.
    rb_iseq_t::param::keyword is allocated only when keyword
    parameters are available.
  * introduce rb_iseq_t::param::flags to represent parameter
    availability. For example, rb_iseq_t::param::flags::has_kw
    represents that this iseq has keyword parameters and
    rb_iseq_t::param::keyword is allocated.
    We don't need to compare with -1 to check availability.
  * remove rb_iseq_t::arg_simple.

* compile.c: catch up this change.

* iseq.c: ditto.

* proc.c: ditto.

* vm.c, vm_args.c, vm_dump.c, vm_insnhelper.c: ditto.

* iseq.c (iseq_data_to_ary): support keyword argument.

Mon Nov 3 03:39:04 2014 Koichi Sasada <ko1@atdot.net>

* test/ruby/test_method.rb: r48239 makes this test green.

Mon Nov 03 03:02:38 2014 Koichi Sasada <ko1@atdot.net>

* rewrite method/block parameter fitting logic to optimize
  keyword arguments/parameters and a splat argument.
  [Feature #10440] (Details are described in this ticket)

  Most of complex part is moved to vm_args.c.

  Now, ISeq#to_a does not catch up new instruction format.

* vm_core.h: change iseq data structures.

  * introduce rb_call_info_kw_arg_t to represent keyword arguments.
  * add rb_call_info_t::kw_arg.
  * rename rb_iseq_t::arg_post_len to rb_iseq_t::arg_post_num.
  * rename rb_iseq_t::arg_keywords to arg_keyword_num.
  * rename rb_iseq_t::arg_keyword to rb_iseq_t::arg_keyword_bits.
    to represent keyword bitmap parameter index.
    This bitmap parameter shows that which keyword parameters are given
    or not given (0 for given).
    It is referred by `checkkeyword' instruction described bellow.
  * rename rb_iseq_t::arg_keyword_check to rb_iseq_t::arg_keyword_rest
    to represent keyword rest parameter index.
  * add rb_iseq_t::arg_keyword_default_values to represent default
    keyword values.
    to represent
      (ci->flag & (SPLAT|BLOCKARG)) &&
      ci->blockiseq == NULL &&
      ci->kw_arg == NULL.

* vm_insnhelper.c, vm_args.c: rewrite with refactoring.

  * rewrite splat argument code.
  * rewrite keyword arguments/parameters code.
  * merge method and block parameter fitting code into one code base.

* vm.c, vm_eval.c: catch up these changes.

* compile.c (new_callinfo): callinfo requires kw_arg parameter.

* compile.c (compile_array_): check the last argument Hash object or
  not. If Hash object and all keys are Symbol literals, they are
  compiled to keyword arguments.

* insns.def (checkkeyword): add new instruction.
  This instruction check the availability of corresponding keyword.

  For example, a method "def foo k1: 'v1'; end" is compiled to the
  following instructions.

    0000 checkkeyword     2, 0  # check k1 is given.
    0003 branchif         9     # if given, jump to address #9
    0005 putstring        "v1"
    0007 setlocal_OP__WC__0 3   # k1 = 'v1'
    0009 trace            8
    0011 putnil
    0012 trace            16
    0014 leave

* insns.def (opt_send_simple): removed and add new instruction

* parse.y (new_args_tail_gen): reorder variables.
  Before this patch, a method "def foo(k1: 1, kr1:, k2: 2, **krest, &b)"
  has parameter variables "k1, kr1, k2, &b, internal_id, krest",
  but this patch reorders to "kr1, k1, k2, internal_id, krest, &b".
  (locate a block variable at last)

* parse.y (vtable_pop): added.
  This function remove latest `n' variables from vtable.

* iseq.c: catch up iseq data changes.

* proc.c: ditto.

* class.c (keyword_error): export as rb_keyword_error().

* common.mk: depend vm_args.c for vm.o.

* hash.c (rb_hash_has_key): export.

* internal.h: ditto.

Mon Nov 3 02:35:32 2014 Koichi Sasada <ko1@atdot.net>

* sample/simple-bench.rb: added to measure performance of simple

Mon Nov 3 02:33:43 2014 Koichi Sasada <ko1@atdot.net>

* gc.c (obj_info): show T_STRING more details.

Sun Nov 2 01:30:32 2014 Tanaka Akira <akr@fsij.org>

* test/openssl/test_ssl.rb: Don't ignore errors on listener threads,
  as much as possible.

* test/openssl/test_ssl_session.rb: Ditto.

* test/openssl/test_partial_record_read.rb: Ditto.

Sat Nov 1 23:11:05 2014 Tanaka Akira <akr@fsij.org>

* test/openssl/utils.rb (start_server): Don't close sockets before
  threads finished.

Sat Nov 1 22:06:24 2014 Tanaka Akira <akr@fsij.org>

* test/openssl/test_ssl_session.rb (test_ctx_client_session_cb): Don't
  ignore errors of SSL accept.
  (test_ctx_server_session_cb): Ditto.

* test/openssl/utils.rb (server_loop): Add ignore_ssl_accept_error
  (start_server): Refine threads waits.

* test/ruby/envutil.rb (assert_join_threads): Show a thread before

Sat Nov 1 20:40:18 2014 Tanaka Akira <akr@fsij.org>

* test/openssl/utils.rb (start_server, server_loop): Use a
  pipe to stop server instead of shutdown/close a listening socket.

Sat Nov 1 19:24:59 2014 Tanaka Akira <akr@fsij.org>

* test/ruby/envutil.rb (assert_join_threads): New assertion to
  join multiple threads without exceptions.

Sat Nov 1 17:09:32 2014 Tanaka Akira <akr@fsij.org>

* bignum.c (bary_mul_balance_with_mulfunc): Fix free work area
  [ruby-dev:48723] [Bug #10464]
  [ruby-core:66044] [Bug #10465]
  Reported by Kohji Nishihama.

Sat Nov 1 15:45:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parse_atmark): mere atmark and two atmarks without
  succeeding identifiers are invalid as instance/class variable

Sat Nov 1 06:31:41 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* ext/win32ole/win32ole_variant.c: use typed data.

Fri Oct 31 13:55:28 2014 Aaron Patterson <aaron@tenderlovemaking.com>

* ext/dl/*: remove DL as it is replaced by Fiddle.
  [Feature #5458] Thanks to Jonan Scheffler <jonanscheffler@gmail.com>
  for this patch

* test/dl/*: ditto.

Fri Oct 31 15:26:02 2014 Charles Oliver Nutter <headius@headius.com>

* test/openssl/test_ssl.rb: Add certificate verification chain
  test from JRuby community.

Fri Oct 31 18:58:02 2014 Charles Oliver Nutter <headius@headius.com>

* test/psych/test_emitter.rb: Fix line_width test...initial value
  is impl-specific and attr assignment always returns LHS.

Fri Oct 31 22:19:30 2014 Akinori MUSHA <knu@iDaemons.org>

* ext/digest/lib/digest.rb (Digest()): This function should now be
  thread-safe.  If you have a problem with regard to on-demand
  loading under a multi-threaded environment, preload "digest/*"
  modules on boot or use this method instead of directly
  referencing Digest::*. [Bug #9494]
  cf. https://github.com/aws/aws-sdk-ruby/issues/525

Fri Oct 31 21:33:17 2014 Akinori MUSHA <knu@iDaemons.org>

* test/digest/test_digest.rb: Drop #!.  This no longer runs
  stand-alone because it depends on ruby/envutil.

Fri Oct 31 17:22:19 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* win32/setup.mak: $(APPEND) with some arguments insert a space before
  the arguments, so it causes error if the arguments are expected to be
  a macro definition.  this fix resolve the build error introduced at

Fri Oct 31 16:47:35 2014 Akinori MUSHA <knu@iDaemons.org>

* ext/syslog/lib/syslog/logger.rb (Syslog::Logger::VERSION): Bump
  the VERSION to 2.1.0. [ruby-core:64483] [Bug #10159]

Fri Oct 31 16:33:46 2014 Akinori MUSHA <knu@iDaemons.org>

* lib/net/imap.rb (Net::IMAP#fetch): [DOC] Document that
  Net::IMAP#fetch will return nil instead of an empty array.

Fri Oct 31 12:54:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* common.mk (.unicode-tables.time): needs Unicode files always,
  and should update after downloading these files.
  [ruby-core:66026] [Bug #10461]

Fri Oct 31 10:16:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* .travis.yml: reverted r48199, it's unrelated configuration.

Fri Oct 31 09:58:14 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* test/test_unicode_normalize.rb: added unicode version number to
  test data location.

Fri Oct 31 09:56:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* .gitignore: ignored unicode data with version directories.

Fri Oct 31 09:35:30 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* .travis.yml: tweak build scripts for unicode_normalize.rb.

Thu Oct 30 18:47:04 2014 NARUSE, Yui <naruse@ruby-lang.org>

* common.mk: fix for the case ALWAYS_UPDATE_UNICODE=no

Thu Oct 30 13:23:23 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* tool/downloader.rb: changed Unicode data download location
  from latest Unicode version to Unicode 7.0.0.

Thu Oct 30 11:16:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_insnhelper.c (vm_callee_setup_arg{_complex,}): try conversion
  by to_ary for a lambda, as well as a proc.
  [ruby-core:65887] [Bug #9605]

Wed Oct 29 21:13:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (gettable_gen): warn circular argument reference, for
  transition from 2.1 and earlier.  [ruby-core:65990] [Bug #10314]

Wed Oct 29 20:41:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parser_params): remove unused member `cur_mid`.
  this has been taken over by `in_def` since 1.6.

Wed Oct 29 14:44:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* load.c (rb_f_load): path name needs to be transcoded to OS path
  encoding.  [ruby-list:49994]

Wed Oct 29 11:48:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* configure.in (__builtin_setjmp): disable with gcc/clang earlier
  than 4.3 on Mac OS X.  [ruby-core:65174] [Bug #10272]

Wed Oct 29 11:43:43 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

* lib/matrix.rb: Generalize Vector#cross_product to arbitrary
  based on a patch by gogo tanaka [#10074]

Wed Oct 29 11:43:11 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

* lib/matrix.rb: Add Matrix#adjucate
  patch by gogo tanaka [#10056]

Wed Oct 29 11:42:33 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>

* lib/matrix.rb: Add aliases for Vector#cross & dot
  patch by gogo tanaka [#10352]

Wed Oct 29 10:00:18 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>

* gems/bundled_gems: Update latest version of bundled gems.

Tue Oct 28 16:52:07 2014 Eric Wong <e@80x24.org>

* signal.c (install_sighandler): remove rb_disable_interrupt and
  rb_enable_interrupt calls
  (init_sigchld): ditto
  (Init_signal): disable and enable interrupt once around all
  install_sighandler and init_sigchld to reduce syscalls at start
  [Feature #9345] [ruby-core:59480]

Tue Oct 28 16:22:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ruby.c (process_options, load_file_internal2): should not
  require other files when dump option is given.
  [ruby-dev:48712] [Bug #10435]

Tue Oct 28 14:51:38 2014 NARUSE, Yui <naruse@ruby-lang.org>

* configure.in: remove apple-gcc4.2 from CC candidates.

Mon Oct 27 20:13:37 2014 NAKAMURA Usaku <usa@ruby-lang.org>

* lib/rexml/entity.rb: keep the entity size within the limitation.
  reported by Willis Vandevanter <will@silentrobots.com> and
  patched by nahi.

Mon Oct 27 17:17:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* proc.c (method_proc): the receiver of binding from method should
  be same as the receiver of the method.
  [ruby-core:65917] [Bug #10432]

Mon Oct 27 16:26:37 2014 Koichi Sasada <ko1@atdot.net>

* test/ruby/test_super.rb: add a test to check block passing.

Mon Oct 27 15:59:26 2014 Koichi Sasada <ko1@atdot.net>

* gc.c: is_incremental_marking(), will_be_incremental_marking():
  use `&&' with GC_ENABLE_INCREMENTAL_MARK instead of using

Mon Oct 27 13:40:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* gc.c (gc_sweep_rest): sweep rest pages regardless of whether
  lazy sweep is enabled or not.  based on the patch by Masahiro
  Ide at [ruby-dev:48706].  [Bug #10431]

Mon Oct 27 11:18:32 2014 Eric Wong <e@80x24.org>

* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
  reduce garbage during forks

Sun Oct 25 12:26:26 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* template/insns.inc.tmpl, insns_info.inc.tmpl, known_errors.inc.tmpl,
  minsns.inc.tmpl: fixed path of generating script.

Sun Oct 26 12:24:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* ext/ripper/lib/ripper/sexp.rb (Ripper.sexp, Ripper.sexp_raw):
  return nil on error.  [ruby-dev:48678] [Bug #10405]

Sun Oct 25 11:24:24 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* string.c: improved comment.

Sun Oct 26 07:40:11 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>

* ext/win32ole/win32ole.c (ole_val2variant, ole_invoke): refactoring.
  use ole_variant2variant to convert WIN32OLE_VARIANT object to
  VARIANT object.

* ext/win32ole/win32ole_variant.c: refactoring. add
* ext/win32ole/win32ole_variant.h: ditto.

Sat Oct 25 22:28:17 2014 Tanaka Akira <akr@fsij.org>

* io.c (io_binwrite_string): Test writev() failure.

Sat Oct 25 20:19:19 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* test/test-unicode_normalize.rb: added test_us_ascii.

Sat Oct 25 20:09:09 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* lib/unicode_normalize/normalize.rb: added US_ASCII
  as trivially supported encoding (is always normalized,
  and may appear mixed in with UTF-8 or other Unicode

Sat Oct 25 20:01:01 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* test/test-unicode_normalize.rb: added

Sat Oct 25 19:30:30 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* test/test-unicode_normalize.rb: removed unused function.

Sat Oct 25 18:41:41 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* template/unicode_norm_gen.tmpl: Adjusted name of generating file.

Fri Oct 24 22:49:42 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* parse.y (parser_yylex): dispatch newline and space at fluent
  interface, so that the following identifier does not include the
  space.  [ruby-dev:48684] [Bug #10411]

Fri Oct 24 20:41:36 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>

* signal.c (check_reserved_signal_): fix write count since r47991.

Thu Oct 23 21:42:54 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* hash.c (rb_hash_delete): now does not call the block given to
  the current method.  [ruby-core:65861] [Bug #10413]

Thu Oct 23 19:13:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_method.c (rb_method_entry_make): warn redefinition only for
  already defined methods, but not for undefined methods.
  [ruby-dev:48691] [Bug #10421]

Thu Oct 23 17:19:04 2014 Kouhei Sutou <kou@cozmixng.org>

* lib/rexml/source.rb (REXML::IOSource#encoding_updated): Fix a
  bug that can't parse XML correctly when
  Encoding.default_internal is different with XML
  encoding. REXML::Source converts XML encoding on read. So IO
  should not convert XML encoding.
  Based on patch by NAKAMURA Usaku.
  [ruby-dev:48686] [Bug #10418]

* test/rexml/test_encoding.rb
  Add the for the above case.

Thu Oct 23 16:29:02 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_encoding.rb
  (REXMLTests::EncodingTester#test_parse_utf16): Use meaningful
  test name. "ticket" in the old test name means the ticket in
  REXML's issue tracker. The REXML's issue tracker was gone. So
  "ticket" is meaningless.

* test/rexml/data/ticket_110_utf16.xml: Rename to ...
* test/rexml/data/utf16.xml: ... this.

Thu Oct 23 16:18:11 2014 Kouhei Sutou <kou@cozmixng.org>

* test/rexml/test_encoding.rb
  (REXMLTests::EncodingTester#test_ticket_110): Fix expected and
  actual order.
  Patch by NAKAMURA Usaku. Thanks!!!

Thu Oct 23 10:47:16 2014 Eric Wong <e@80x24.org>

* insns.def (getlocal,setlocal): add comment to def/opt_operand.def

Thu Oct 23 10:22:41 2014 Eric Wong <e@80x24.org>

* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
  use IO#wait_readable instead of timeout

Thu Oct 23 10:22:24 2014 Eric Wong <e@80x24.org>

* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
  ensure exit! during fork failure

Thu Oct 23 10:21:21 2014 Martin Duerst <duerst@it.aoyama.ac.jp>

* NEWS: Added String#unicode_normalize(|!|d?) [ci skip]

Thu Oct 23 03:41:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* class.c (unknown_keyword_error): delete expected keywords
  directly from raw table, so that the given block is not called.
  [ruby-core:65837] [Bug #10413]

Thu Oct 23 02:33:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>

* common.mk (update-unicode): invert dependency to run every times.