-*- coding: utf-8 -*-

commit a0c7c23c9cec0d0ffcba012279cd652d28ad5bf3
  Author: NARUSE, Yui <naruse@airemix.jp>
  Date:   2020-03-31 19:27:41 +0900

    v2.7.1p83

commit f832d957b837d5167058a3f8579d66e5b5d3472e
  Author: NARUSE, Yui <naruse@airemix.jp>
  Date:   2020-03-31 19:26:10 +0900

    ext/socket/init.c: do not return uninitialized buffer

    BasicSocket#read_nonblock and some methods changes the size of a buffer
    string, but when no data is available, the buffer is returned as
    uninitialized.

    Co-Authored-By: Samuel Williams <samuel.williams@oriontransfer.co.nz>

commit 5caee29164de6477b5cad1328b56e696a41d5025
  Author: git <svn-admin@ruby-lang.org>
  Date:   2020-03-31 16:31:53 +0900

    * 2020-03-31 [ci skip]

commit bb93659fefd7f4557129043742771a33bd30c255
  Author: Jeremy Evans <code@jeremyevans.net>
  Date:   2020-03-31 16:10:57 +0900

    Fix pp when passed a empty ruby2_keywords-flagged hash as array element (#2966)

    This causes problems because the hash is passed to a block not
    accepting keywords.  Because the hash is empty and keyword flagged,
    it is removed before calling the block.  This doesn't cause an
    ArgumentError because it is a block and not a lambda.  Just like
    any other block not passed required arguments, arguments not
    passed are set to nil.

    Issues like this are a strong reason not to have ruby2_keywords
    by default.

    Fixes [Bug #16519]

    This backports 28d31ead34baff1c4abc0d7d902ef4bc1d576fb2 and
    0ea759eac9234afc47e8fb1bcacfe9ee12c8ffb6, but needed to be modified
    for 2.7 as 2.7 will perform empty keyword to positional hash
    conversion for required arguments, which will happen if "v" in the
    seplist method is empty when yielded.

    Co-authored-by: NARUSE, Yui <nurse@users.noreply.github.com>

commit d04856bdc502eec4055da1e5cf717639c314e189
  Author: git <svn-admin@ruby-lang.org>
  Date:   2020-03-30 19:15:42 +0900

    * 2020-03-30 [ci skip]

commit b5fa156b7907b8ea1baf8b9f0cb6a66b0fecb3d4
  Author: Alan Wu <XrXr@users.noreply.github.com>
  Date:   2020-03-11 23:37:14 +0900

    Clear all trace events during teardown

    Since 0c2d81dada, not all trace events are cleared during VM teardown.
    This causes a crash when there is a tracepoint for
    `RUBY_INTERNAL_EVENT_GC_EXIT` active during teardown.

    The commit looks like a refactoring commit so I think this change was
    unintentional.

    [Bug #16682]

    (cherry picked from commit b385f7670ffa420790bc548747fa4b58c4c5d8f6)

commit 0057fe4063b57b445d6ffc893e442f362e3a19e0
  Author: aycabta <aycabta@gmail.com>
  Date:   2020-03-30 19:09:50 +0900

    Ruby 2.7 backport about IRB (#2990)

    * [ruby/reline] Sort completion list

    #### Legacy mode:

      ```console
      $ irb --legacy
      irb(main):001:0> l[TAB][TAB]
      lambda           load             local_variables  loop
      ```

    #### Before this patch:

      ```console
      $ irb
      irb(main):001:0> l[TAB][TAB]
      local_variables
      loop
      lambda
      load
      ```

    #### After this patch:

      ```console
      $ irb
      irb(main):001:0> l[TAB][TAB]
      lambda
      load
      local_variables
      loop
      ```

    https://github.com/ruby/reline/commit/6074069c7d

    * Drop an invalid char as UTF-8

    * Add test_completion_with_indent_and_completer_quote_characters

    This is for 8a705245e55575d4d310a2e956b89a36a5931971.

    * [ruby/irb] Add tests for RubyLex

    The set_auto_indent method calculates the correct number of spaces for
    indenting a line. We think there might be a few bugs in this method so
    we are testing the current functionality to make sure nothing breaks
    when we address those bugs.

    Example test failure:

    ```
      1) Failure:
    TestIRB::TestRubyLex#test_auto_indent [/Users/Ben/Projects/irb/test/irb/test_ruby_lex.rb:75]:
    Calculated the wrong number of spaces for:
     def each_top_level_statement
      initialize_input
      catch(:TERM_INPUT) do
        loop do
          begin
            prompt
            unless l = lex
              throw :TERM_INPUT if @line == ''
            else
    .
    <10> expected but was
    <12>.
    ```

    https://github.com/ruby/irb/commit/752d5597ab

    * [ruby/reline] Degenerate the terminal size to [$LINES, $COLUMNS] if it is unknown

    This is a workaround for https://github.com/ruby/irb/issues/50

    https://github.com/ruby/reline/commit/5725677d1a

    * [ruby/irb] Fix newline depth with multiple braces

    This commit fixes the check_newline_depth_difference method to multiple
    open braces on one line into account. Before this change we were
    subtracting from the depth in check_newline_depth_difference on
    every open brace. This is the right thing to do if the opening and
    closing brace are on the same line. For example in a method definition we
    have an opening and closing parentheses we want to add 1 to our depth,
    and then remove it.

    ```
    def foo()
    end
    ```

    However this isn't the correct behavior when the brace spans multiple
    lines. If a brace spans multiple lines we don't want to subtract from
    check_newline_depth_difference and we want to treat the braces the same
    way as we do `end` and allow check_corresponding_token_depth to pop the
    correct depth.

    Example of bad behavior:

    ```
    def foo()
      [
      ]
    puts 'bar'
    end
    ```

    Example of desired behavior:

    ```
    def foo()
      [
      ]
      puts 'bar'
    end
    ```

    https://github.com/ruby/irb/commit/7dc8af01e0

    * text/readline/test_readline.rb - fix skip on Reline (#2743)

    TestRelineAsReadline#test_input_metachar passes on MinGW

    * Add "require 'openstruct'" what is forgotten

    * [ruby/irb] Fix lib name of OpenStruct

    https://github.com/ruby/irb/commit/1f3a84ab6b

    * Add load path and require for ruby/ruby

    * Rescue EOFError

    If C-d is pressed before IRB is ready, IRB crashes because EOFError occurs.

    * Complete indented and quoted string correctly

      def foo
        ''.upca[TAB]

    This will be completed to be:

      def foo
      ''.upcase

    The indent was gone. This commit fixes the bug.

    * [ruby/irb] Fix crashing when multiple open braces per line

    https://github.com/ruby/irb/issues/55

    If we had put multiple open braces on a line the with no closing brace
    spaces_of_nest array keeps getting '0' added to it. This means that when
    we pop off of this array we are saying that we should be in position zero
    for the next line. This is an issue because we don't always want to be
    in position 0 after a closing brace.

    Example:
    ```
    [[[
    ]
    ]
    ]
    ```
    In the above example the 'spaces_of_nest' array looks like this after
    the first line is entered: [0,0,0]. We really want to be indented 4
    spaces for the 1st closing brace 2 for the 2nd and 0 for the 3rd. i.e.
    we want it to be: [0,2,4].

    We also saw this issue with a heredoc inside of an array.

    ```
    [<<FOO]
    hello
    FOO
    ```

    https://github.com/ruby/irb/commit/80c69c8272

    * Support history-size in .inputrc correctly

    * Introduce an abstracted structure about the encoding of Reline

    The command prompt on Windows always uses Unicode to take input and print
    output but most Reline implementation depends on Encoding.default_external.
    This commit introduces an abstracted structure about the encoding of Reline.

    * Remove an unused setting variable

    * Use Reline.encoding_system_needs if exists

    * Add tests for vi_insert and vi_add

    * Implement vi_insert_at_bol and vi_add_at_eol

    * [ruby/reline] Implement vi_to_next_char

    https://github.com/ruby/reline/commit/066ecb0a21

    * [ruby/reline] Implement vi_prev_char and vi_to_prev_char

    https://github.com/ruby/reline/commit/0ad3ee63fa

    * [ruby/readline-ext] Include ruby/assert.h in ruby/ruby.h so that assertions can be there

    https://github.com/ruby/readline-ext/commit/4d44c12832

    * Stop using minitest dependent methods

    * Skip a test that uses assert_ruby_status if it doesn't exist

    * Use omit instead of skip

    * Check DONT_RUN_RELINE_TEST envvar

    * [ruby/irb] Add newline_before_multiline_output

    https://github.com/ruby/irb/commit/9eb1801a66

    * [ruby/irb] Fix compatibility with rails before 5.2

    Rails before 5.2 added Array#append as an alias to Array#<< ,
    so that it expects only one argument.
    However ruby-2.5 added Array#append as an alias to Array#push
    which takes any number of arguments.

    If irb completion is used in `rails c` (for example "IO.<tab>")
    it fails with:
      irb/completion.rb:206:in `<<': wrong number of arguments (given 3, expected 1) (ArgumentError)

    Using Array#push instead of Array#append fixes compatibility.

    https://github.com/ruby/irb/commit/5b7bbf9c34

    * Reline: Use a more robust detection of MinTTY

    The previous detection per get_screen_size fails when stdout is passed
    to a pipe. That is the case when running ruby tests in parallel ("-j" switch).
    In this case Reline believes that it's running on MinTTY and the tests
    are running with ANSI IOGate instead of the Windows adapter on MINGW.
    So parallel test results were different to that of a single process.
    This commit fixes these differencies.

    The code is taken from git sources and translated to ruby.
    NtQueryObject() is replaced by GetFileInformationByHandleEx(), because
    NtQueryObject() is undocumented and is more difficult to use:
      https://github.com/git-for-windows/git/blob/c5a03b1e29c69f3f06c8fabd92493edb73469176/compat/winansi.c#L558

    * Reline: Fix changed test results due to change to UTF-8 on Windows

    In commit f8ea2860b0cac1aec79978e6c44168802958e8af the Reline encoding
    for native windows console was changed to hardcoded UTF-8.
    This caused failures in reline and readline tests, but they were hidden,
    because parallel ruby tests incorrectly used Reline::ANSI as IOGate.
    Tests failures were raised in single process mode, but not with -j switch.

    This patch corrects encodings on native Windows console.

    * [ruby/irb] [ruby/irb] Rewrite an expression to detect multiline

    https://github.com/ruby/irb/commit/ed5cf375a6

    https://github.com/ruby/irb/commit/5b7bbf9c34

    * [ruby/reline] Implement vi_change_meta

    https://github.com/ruby/reline/commit/8538e0e10f

    * Always refer to Reline::IOGate.encoding

    * Always use UTF-8 for Reline::GeneralIO on Windows

    * Use test_mode on Reline::History::Test for encoding

    * [ruby/reline] Support GNOME style Home/End key sequences [Bug #16510]

    https://github.com/ruby/reline/commit/788f0df845

    * [ruby/irb] Add a new easter egg: dancing ruby

    https://github.com/ruby/irb/commit/e37dc7e58e

    * [ruby/irb] Exclude useless files from RDoc

    https://github.com/ruby/irb/commit/8f1ab2400c

    * [ruby/irb] Exclude useless files from RDoc

    * Fix inaccuracy in encoding tests

    These tests assume
      Encoding.find('locale') == Encoding.find('external')
    and fail if they are distinct.

    * [ruby/reline] Fix Reline::Windows#scroll_down

    I mistook Right and Bottom.

    https://github.com/ruby/reline/commit/8be401c5f5

    * [ruby/reline] Bypass cursor down when a char is rendered at eol on Windows

    A newline is automatically inserted if a character is rendered at eol on
    Windows command prompt.

    https://github.com/ruby/reline/commit/4bfea07e4a

    * [ruby/reline] Organize special keys escape sequences

    https://github.com/ruby/reline/commit/41deb1a3d9

    * [ruby/readline-ext] Remove unnecessary -I$(top_srcdir) when it's an individual gem

    https://github.com/ruby/readline-ext/commit/efaca4a5f4

    * [ruby/readline-ext] Check TestRelineAsReadline existance

    https://github.com/ruby/readline-ext/commit/c0a6303168

    * [ruby/readline-ext] The ruby/assert.h is adopted by Ruby 2.7 or later

    https://github.com/ruby/readline-ext/commit/106c31fc1b

    * Revert "[ruby/readline-ext] Include ruby/assert.h in ruby/ruby.h so that assertions can be there"

    This reverts commit 425b2064d394639101854c83a061a0918b33b857.

    This cherry-pick was a mistake.

    * [ruby/readline-ext] Use require check instead of DONT_RUN_RELINE_TEST env

    https://github.com/ruby/readline-ext/commit/1df99d1481

    * [ruby/readline-ext] Add spec.extensions

    https://github.com/ruby/readline-ext/commit/8c33abb13c

    * [ruby/readline-ext] Use rake/extensiokntask to build

    https://github.com/ruby/readline-ext/commit/b0b5f709bd

    * Fix readline build dependency

    * [ruby/irb] Add test_complete_symbol

    https://github.com/ruby/irb/commit/dbbf086c1f

    * [ruby/irb] Check doc namespace correctly

    IRB::InputCompletor::PerfectMatchedProc crashes when doc not found because a
    variable name was incorrect.

    https://github.com/ruby/irb/commit/889fd4928f

    * [ruby/irb] Fix auto indent with closed brace

    A closed brace in auto-indent shouldn't affect the next brace in the same line,
    but it behaves like below:

      p() {
        }

    It's a bug.

    https://github.com/ruby/irb/commit/fbe59e344f

    * [ruby/irb] Use 0.step instead of (..0).each for Ruby 2.5

    https://github.com/ruby/irb/commit/5d628ca40e

    * Revert "[ruby/irb] Add test_complete_symbol"

    This reverts commit 3af3431c2c145134996e66f3d8d9ade8ad81bde0.

    * [ruby/irb] fix reserved words and completion for them

    https://github.com/ruby/irb/commit/6184b227ad

    * Add test_complete_symbol

    The previous version of the test method used a symbol, ":abcdefg" to complete
    but longer symbols that can be completed are defined by other test methods of
    other libs.

    * test/irb/test_completion.rb: suppress a warning: unused literal ignored

    * [ruby/reline] Use IO#write instead of IO#print

    IO#print always adds a string of $\ automatically.

    https://github.com/ruby/reline/commit/a93119c847

    * [ruby/irb] Version 1.2.2

    https://github.com/ruby/irb/commit/a71753f15a

    * [ruby/reline] Version 0.1.3

    https://github.com/ruby/reline/commit/ea2b182466

    * [ruby/irb] Include easter-egg.rb in gemspec

    `irb` doesn't run because this file isn't included in the gem.
    https://github.com/ruby/irb/commit/73cda56d25

    * [ruby/irb] Version 1.2.3

    https://github.com/ruby/irb/commit/dd56e06df5

    * support multi-run test for test_readline.rb

    * [ruby/irb] `yield` outside method definition is a syntax error

    https://github.com/ruby/irb/commit/dbc7b059c7

    * test/readline - allow ENV control of test class creation

    In ruby/ruby, the tests run on both readline & reline by creating four test classes:
    ```
    TestReadline
    TestReadlineHistory

    TestRelineAsReadline
    TestRelineAsReadlineHistory
    ```

    Reline inports the test files and uses them in its CI.  Adding the ENV control allows it to only run the `TestRelineAsReadline` classes.

    * Omit test_using_quoting_detection_proc_with_multibyte_input temporarily for random order test

    * support random order test.

    test_readline:
      HISTORY should be empty.

    test_using_quoting_detection_proc:
    test_using_quoting_detection_proc_with_multibyte_input:
      Readline.completer_quote_characters= and
      Readline.completer_word_break_characters= doesn't accept nil,
      so skip if previous values are nil.

    * Set Readline.completion_append_character = nil always

    GNU Readline add a white space when Readline.completion_append_character is
    not initialized.

    * Fix a typo [ci skip]

    * skip test if Reline.completion_proc is nil.

    Some other tests can set Reline.completion_proc, so if it is nil,
    simply skip this test.

    * Reset Reline.point

    TestRelineAsReadline#test_insert_text expects Readline.point == 0
    at the beginning of the test, but a test violate this assumption.

    * Convert incompatible encoding symbol names

    * Ignore incompatible convert of symbols

    * Add workaround for test-bundler failure

    https://github.com/ruby/actions/runs/500526558?check_suite_focus=true#step:16:127
    ```
    Failures:

      1) Bundler.setup when Bundler is bundled doesn't blow up
         Failure/Error: expect(err).to be_empty

           expected `"fatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (o...the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git".empty?` to return true, got false

           Commands:
           $ /home/runner/work/actions/actions/snapshot-master/ruby \
             -I/home/runner/work/actions/actions/snapshot-master/lib:/home/runner/work/actions/actions/snapshot-master/spec/bundler \
             -rsupport/hax -rsupport/artifice/fail \
             /home/runner/work/actions/actions/snapshot-master/libexec/bundle install --retry 0
           Resolving dependencies...
           Using bundler 2.1.4
           Bundle complete! 1 Gemfile dependency, 1 gem now installed.
           Use `bundle info [gemname]` to see where a bundled gem is installed.
           fatal: not a git repository (or any of the parent directories): .git
           fatal: not a git repository (or any of the parent directories): .git
           fatal: not a git repository (or any of the parent directories): .git
           # $? => 0

           $ /home/runner/work/actions/actions/snapshot-master/ruby \
             -I/home/runner/work/actions/actions/snapshot-master/lib:/home/runner/work/actions/actions/snapshot-master/spec/bundler \
             -rsupport/hax -rsupport/artifice/fail \
             /home/runner/work/actions/actions/snapshot-master/libexec/bundle exec ruby -e \
             require\ \'bundler\'\;\ Bundler.setup
           fatal: not a git repository (or any of the parent directories): .git
           fatal: not a git repository (or any of the parent directories): .git
           fatal: not a git repository (or any of the parent directories): .git
           # $? => 0
         # ./spec/bundler/runtime/setup_spec.rb:1056:in `block (3 levels) in <top (required)>'
         # ./spec/bundler/spec_helper.rb:111:in `block (3 levels) in <top (required)>'
         # ./spec/bundler/spec_helper.rb:111:in `block (2 levels) in <top (required)>'
         # ./spec/bundler/spec_helper.rb:78:in `block (2 levels) in <top (required)>'
    make: *** [yes-test-bundler] Error 1
    ```

    * [ruby/irb] Unnamed groups are not captured when named groups are used

    https://github.com/ruby/irb/commit/0a641a69b0

    * [ruby/reline] Work with wrong $/ value correctly

    https://github.com/ruby/reline/commit/962ebf5a1b

    * [ruby/irb] Detect multiple lines output simplify

    The old implementation performance test code:

        require 'objspace'
        puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)
        /\A.*\Z/ !~ ('abc' * 20_000_000)
        puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)

    and run `time test.rb`:

        2.5868 MB
        62.226 MB

        real    0m1.307s
        user    0m0.452s
        sys     0m0.797s

    The new implementation performance test code:

        require 'objspace'
        puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)
        ('abc' * 20_000_000).include?("\n")
        puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)

    and run `time test.rb`:

        2.5861 MB
        62.226 MB

        real    0m0.132s
        user    0m0.088s
        sys     0m0.042s

    https://github.com/ruby/irb/commit/40d6610baf

    * [ruby/reline] Suppress error in case INPUTRC env is empty

    https://github.com/ruby/reline/commit/bce7e7562b

    * [ruby/reline] Add yamatanooroti rendering test

    https://github.com/ruby/reline/commit/f092519525

    * [ruby/reline] Rename test suite name of yamatanooroti test

    https://github.com/ruby/reline/commit/b0f32f5de4

    * [ruby/reline] Add a comment why rescue yamatanooroti loading error on the test

    https://github.com/ruby/reline/commit/2a8061daec

    * [ruby/irb] Suppress crashing when EncodingError has occurred without lineno

    https://github.com/ruby/irb/commit/13572d8cdc

    * [ruby/reline] Suppress error when check ambiguous char width in LANG=C

    https://github.com/ruby/reline/commit/623dffdd75

    * [ruby/io-console] Enable only interrupt bits on `intr: true`

    https://github.com/ruby/io-console/commit/baaf929041

    * [ruby/io-console] bump up to 0.5.4

    * [ruby/io-console] Update the minimum requirement of Ruby version

    https://github.com/ruby/io-console/commit/73e7b6318a

    * [ruby/io-console] Filter Ruby engine name rather than just /ruby/

    This breaks tests using this path on JRuby because the `jruby`
    executable turns into `jjruby` after the sub.

    https://github.com/ruby/io-console/commit/e5951aa34c

    * [ruby/io-console] bump up to 0.5.5

    * [ruby/io-console] Prefer keyword arguments

    https://github.com/ruby/io-console/commit/5facbfc4c8

    * [ruby/io-console] [DOC] Improved about `intr:`

    https://github.com/ruby/io-console/commit/82b630cd79

    * [ruby/io-console] Just ignore the extension on other than CRuby

    https://github.com/ruby/io-console/commit/41b6f09574

    * [ruby/io-console] bump up to 0.5.6

    Co-authored-by: KOBAYASHI Shuji <shuujii@gmail.com>
    Co-authored-by: Ben <kanobt61@gmail.com>
    Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
    Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com>
    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
    Co-authored-by: Kenta Murata <mrkn@mrkn.jp>
    Co-authored-by: Lars Kanis <lars@greiz-reinsdorf.de>
    Co-authored-by: Lars Kanis <kanis@comcard.de>
    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
    Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
    Co-authored-by: Nobuhiro IMAI <nov@yo.rim.or.jp>
    Co-authored-by: Nick Lewis <nick@puppet.com>
    Co-authored-by: S-H-GAMELINKS <gamelinks007@gmail.com>
    Co-authored-by: Koichi Sasada <ko1@atdot.net>
    Co-authored-by: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
    Co-authored-by: Charles Oliver Nutter <headius@headius.com>

commit ecf874edea92796c63cc2b50b36b1179de5114c6
  Author: git <svn-admin@ruby-lang.org>
  Date:   2020-03-28 06:14:02 +0900

    * 2020-03-28 [ci skip]

commit 22c3014e36219b072fd6b1e963c4c64c7015a3cd
  Author: Yusuke Endoh <mame@ruby-lang.org>
  Date:   2020-03-03 20:54:31 +0900

    Suppress an "assigned but unused variable" warning

    (cherry picked from commit 501f2c44e6ae79c02a5c4d0f872fc7fa77258fcf)

commit 44f7e3883e49d287a96f7ef36b5c935d833300e5
  Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
  Date:   2020-03-03 15:48:53 +0900

    Preserve `kwarg` flag and fix up f5c904c2a9

    (cherry picked from commit c8d0bf0156878df03a71fffc97c44abf7333d5d7)

commit aeda3a7f036aa7c768abffd1965972c658f49c22
  Author: Yusuke Endoh <mame@ruby-lang.org>
  Date:   2020-03-02 22:37:04 +0900

    Suppress "assigned but unused variable" warnings

    (cherry picked from commit 65dd50fc25f6522536d5c4749055384bde1f9371)

commit 004c298738dc0924e7483b0c3f41c798dabe9e5b
  Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
  Date:   2020-03-02 15:49:03 +0900

    Allow newlines inside braced pattern

    (cherry picked from commit f5c904c2a907013e22ff74bc3686952c5448d493)

commit 93aaa0bcce829b880d8f52a9168d17c93ecde85b
  Author: Kazuki Tsujimoto <kazuki@callcc.net>
  Date:   2020-03-01 14:23:51 +0900

    Allow trailing comma in hash pattern

    (cherry picked from commit d25a4f413dce6ad3a8baaf61591415b9a8cce082)

commit 5ccf57f23eb7a35ac699edc2fc598c47fa1844a0
  Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
  Date:   2020-03-25 22:00:15 +0900

    Make RbConfig::CONFIG values mutable [Bug #16738]

    As `RbConfig.expand` modifies the argument and involved `CONFIG`
    values, its values should be mutable.

    (cherry picked from commit 4adb2d655dcd54b28366b4d17e86b21e2b622cd1)

commit 7b5133801340cfa7e4e4e5dd61384cb90c3f6085
  Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
  Date:   2020-01-08 16:11:52 +0900

    Merge bundler-2.1.4

commit 572021c6e4e01c3b8ece90ad42fdd4ee71b8acc5
  Author: git <svn-admin@ruby-lang.org>
  Date:   2020-03-26 23:51:12 +0900

    * 2020-03-26 [ci skip]

commit c9a7643a7e5993975e7e8c985df157d73b16a490
  Author: Yusuke Endoh <mame@ruby-lang.org>
  Date:   2020-03-21 15:46:33 +0900

    test/openssl/test_ssl.rb: ignore SSLError when the connection is closed

    "test_close_after_socket_close" checks if ssl.close is no-op even after
    the wrapped socket is closed.  The test itself is fair, but the other
    endpoint that is reading the SSL connection may fail with SSLError:
    "SSL_read: unexpected eof while reading" in some environments:

    https://github.com/ruby/ruby/actions/runs/60085389 (MinGW)
    https://rubyci.org/logs/rubyci.s3.amazonaws.com/android28-x86_64/ruby-master/log/20200321T034442Z.fail.html.gz
    ```
      1) Failure:
    OpenSSL::TestSSL#test_close_after_socket_close [D:/a/ruby/ruby/src/test/openssl/utils.rb:299]:
    exceptions on 1 threads:
    SSL_read: unexpected eof while reading
    ```

    This changeset rescues and ignores the SSLError in the test.

    (cherry picked from commit be76e86e69106c6906322dc30aa75c3ff65da63c)

commit 897d4e31b0e5b29405480ed3236bc8c5c6cac3fa
  Author: Koichi Sasada <ko1@atdot.net>
  Date:   2020-03-07 03:55:54 +0900

    check ar_table first.

    RHASH_AR_TABLE_SIZE() has assertion that it is a ar_talbe.
    The last commit breaks this assumption so check ar_table first.

    (cherry picked from commit c3584dfacce4d0f2058d8403de6fdce4fd4d686b)

commit ab6f78bc926f6fc12dc8d7846056fc9c04d63ead
  Author: Koichi Sasada <ko1@atdot.net>
  Date:   2020-03-07 03:32:15 +0900

    check ar_table after `#hash` call

    ar_table can be converted to st_table just after `ar_do_hash()`
    function which calls `#hash` method. We need to check
    the representation to detect this mutation.
    [Bug #16676]

    (cherry picked from commit 4c019f5a626523e99e2827ed917802e3097c380d)

commit e4efca87ba1aa5b6a94b9007040ac3e783c26b43
  Author: Koichi Sasada <ko1@atdot.net>
  Date:   2020-03-26 01:16:50 +0900

    check flags passed to rb_nogvl()

    RB_NOGVL_UBF_ASYNC_SAFE is wrongly specified because flags
    is not checked.
    [Bug #15499] 23444302

    (cherry picked from commit ff98931daca1265e5bd33025d160c77e452c399e)

commit 2a3027b7b54a3118731f70c9e88aabbd495bb9fe
  Author: Alan Wu <XrXr@users.noreply.github.com>
  Date:   2020-03-14 09:59:55 +0900

    Add missing write barrier for Hash#transform_values{,!}

    21994b7fd686f263544fcac1616ecf3189fb78b3 removed the write barrier that
    was present in rb_hash_aset(). Re-insert it to not crash during GC.

    [Bug #16689]

    (cherry picked from commit 713dc619f5372a645b66bef9dacee217c4101cb4)

commit 95c3bb6c426a11253644a86137bb67c542fd5799
  Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
  Date:   2020-03-16 17:26:10 +0900

    Do not make disabled directories at installation  [Bug #12392]

    (cherry picked from commit 8a6ba10f9dd456cf54de800203cf04bbe42271fb)

commit 1853efc46dba862c50df7710cfbacded999ae2ec
  Author: NARUSE, Yui <naruse@airemix.jp>
  Date:   2020-03-26 21:17:07 +0900

    Use power_assert 1.1.7

    Mainly for pry compatibility in test
    https://github.com/k-tsj/power_assert/commit/dcc14cbef48d9790187fa400a5df7531d81a5971

    Also include "Show full_message if available"
    https://github.com/k-tsj/power_assert/commit/53ce0400bf47f722830d6604be0a2e30cccabf34

commit 47b08728cf3d0441a3da4dc1dcdd578817b0e036
  Author: Jean Boussier <jean.boussier@gmail.com>
  Date:   2020-03-12 21:55:20 +0900

    [ruby/stringio] StringIO#initialize default to the source string encoding

    [Bug #16497]

    https://github.com/ruby/stringio/commit/4958a5ccab
    (cherry picked from commit e257c08f2ec27e2d66cdfa7e2415deb492522e22)

commit 3efbd527a86203406664a01126784a10eb136405
  Author: Jeremy Evans <code@jeremyevans.net>
  Date:   2020-01-25 05:13:41 +0900

    Do not autosplat when calling proc with empty keyword splat

    With the removal of the splatted argument when using an empty
    keyword splat, the autosplat code considered an empty keyword
    splat the same as no argument at all.  However, that results
    in autosplat behavior changing dependent on the content of
    the splatted hash, which is not what anyone would expect or
    want.  This change always skips an autosplat if keywords were
    provided.

    Fixes [Bug #16560]

    (cherry picked from commit c1d8829ef515ee51fadeadd7dd022b5c47a71cdd)

commit c858a10ce87033beec63516fe6407b50c6539177
  Author: git <svn-admin@ruby-lang.org>
  Date:   2020-03-15 19:35:48 +0900

    * 2020-03-15 [ci skip]

commit a36ead3f4fe801ddaebe6d1ed905e9e3276dbac7
  Author: Takashi Kokubun <takashikkbn@gmail.com>
  Date:   2020-02-29 16:58:33 +0900

    Prevent unloading methods used in root_fiber while calling another Fiber (#2939)

    Fixing SEGVs like:
    http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744905
    http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744420
    http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2741400
    [Bug #16664]

    (cherry picked from commit adcf0316d1ecedae2a9157ad941550e0c0fb510b)

commit 17e925b9917f4877f2da8c64316feb3ce1ca2932
  Author: Takashi Kokubun <takashikkbn@gmail.com>
  Date:   2020-02-29 16:20:44 +0900

    Avoid infinite loop on --jit-wait

    (cherry picked from commit a8dcab723316997d9e01c89d6df969edce75bdca)

commit c6944377d798e088042f2944b81aa3fa8a4e5411
  Author: Jean Boussier <jean.boussier@gmail.com>
  Date:   2020-02-03 20:29:37 +0900

    Fix SimpleDelegator respond_to? regression

    In 2.6, SimpleDelegator would always use the target `respond_to?`

    In 2.7.0 it doesn't if the target does not inherit from Object.

    This breaks compatibility for delegated objects that inherit
    from BasicObject and redefine `respond_to?`. [Bug #16606]

    (cherry picked from commit f2552216d43040cd42bbb9fd484eab6c70856fe6)

commit d07a6dc10efa71123b36a4a3ff7d2ec6e52804d7
  Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
  Date:   2020-01-21 11:47:04 +0900

    delegate.rb: fixed keyword arguments in DelegateClass

    `Delegator.delegating_block` should delegate keyword arguments
    separately.  [ruby-core:96949]

    (cherry picked from commit 9bcf4f3db26249772c983896ebbc9ff41f4614db)

commit e70d52b0c377f8b2ed04311710c0ca9f4ebabd90
  Author: Jeremy Evans <code@jeremyevans.net>
  Date:   2020-02-25 06:19:37 +0900

    Make ruby2_keywords methods correctly handle **{} optimization

    Previously, this code:

      ruby2_keywords def foo(*a) a.last end
      foo(**{})

    Returned an empty frozen hash.  However, the final hash should
    not be frozen in this case, as it wouldn't be if foo accepted
    a keyword splat.

    Use a new unfrozen empty hash instead of reusing the frozen empty
    hash in this case.

    Fixes [Bug #16642]

commit b3fabedc7043593812c9ad507b4648a55d74df99
  Author: git <svn-admin@ruby-lang.org>
  Date:   2020-03-14 20:27:57 +0900

    * 2020-03-14 [ci skip]

commit e7555d467b882fa8213f17643b00557ed420b640
  Author: Takashi Kokubun <takashikkbn@gmail.com>
  Date:   2019-12-31 16:20:17 +0900

    Drop MinGW build from AppVeyor

    in favor of #2791

    (cherry picked from commit b00418732c89ce42c1c4cef57d08344659fbdd2b)

commit 0d24fb774d84d4a99454ce10fd343da00049a588
  Author: Jeremy Evans <code@jeremyevans.net>
  Date:   2020-03-09 23:57:16 +0900

    Don't display singleton class in Method#inspect unless method defined there

    Previously, if an object has a singleton class, and you call
    Object#method on the object, the resulting string would include
    the object's singleton class, even though the method was not
    defined in the singleton class.

    Change this so the we only show the singleton class if the method
    is defined in the singleton class.

    Fixes [Bug #15608]

    (cherry picked from commit e02bd0e713ef920e6d12c27f16548f48ec5c2cf0)

