7937 Commits

Author SHA1 Message Date
NAKAMURA Usaku
1f4d455848 Fix previous commit 2023-03-30 21:34:08 +09:00
NAKAMURA Usaku
153bdddfc2 Limit header length 2023-03-30 20:08:27 +09:00
Nobuyoshi Nakada
e3f18f7d2e Make RFC2822 regexp linear
https://hackerone.com/reports/1485501
2023-03-30 19:48:27 +09:00
Nobuyoshi Nakada
2cb830602f Fix quadratic backtracking on invalid time
https://hackerone.com/reports/1485501
2023-03-30 19:48:27 +09:00
Hiroshi SHIBATA
14f025a738 Merge URI-0.10.0.2 for bundler 2023-03-29 10:17:23 +09:00
Hiroshi SHIBATA
6855779d58 Merge URI-0.10.0.2 2023-03-29 10:17:23 +09:00
Hiroshi SHIBATA
7cf697179d Merge CGI-0.1.0.2 2022-11-24 11:20:51 +09:00
Nobuyoshi Nakada
99735a8b29 [Bug #19005] dynamic_lookup linker option in external libraries
The warning against `-undefined dynamic_lookup` is just a warning yet,
and many gems seem to pay no attention to warnings.  Until it fails
actually, keep it as a migration path, except for standard extension
libraries and bundled extension gems.
2022-10-01 15:58:54 +09:00
Hiroshi SHIBATA
31bc55dc90 Backport https://github.com/ruby/ruby/pull/6193
Co-authored-by: Yuta Saito <kateinoigakukun@gmail.com>
2022-09-16 15:11:08 +09:00
NAKAMURA Usaku
f69aeb8314
merge some parts of CGI 0.1.1
Fix integer overflow

	Make use of the check in rb_alloc_tmp_buffer2.

	When parsing cookies, only decode the values

	Bump version
2021-11-24 20:21:17 +09:00
Hiroshi SHIBATA
b79be4b09c Removed the accidental files at 931815bfd8 2021-11-24 16:10:33 +09:00
Jeremy Evans
2a7235421f Fix SortedSet not being sorted the first time when rbtree is used
Fixes [Bug #17841]
2021-07-31 21:27:21 +09:00
Yusuke Endoh
a21a3b7d23
Fix StartTLS stripping vulnerability
Reported by Alexandr Savca in https://hackerone.com/reports/1178562

Co-authored-by: Shugo Maeda <shugo@ruby-lang.org>
2021-07-07 19:48:22 +09:00
Yusuke Endoh
3ca1399150
Ignore IP addresses in PASV responses by default, and add new option use_pasv_ip
This fixes CVE-2021-81810.
Reported by Alexandr Savca.

Co-authored-by: Shugo Maeda <shugo@ruby-lang.org>
2021-07-07 19:47:46 +09:00
NAKAMURA Usaku
87d02eacd2 merge revision(s) 9edc162583a4f685332239f6249745ad9b518cbe: [Backport #17781]
[ruby/resolv] Fix confusion of received response message

	This is a follow up for commit 33fb966197f1 ("Remove sender/message_id
	pair after response received in resolv", 2020-09-11).

	As the @senders instance variable is also used for tracking transaction
	ID allocation, simply removing an entry without releasing the ID would
	eventually deplete the ID space and cause
	Resolv::DNS.allocate_request_id to hang.

	It seems the intention of the code was to check that the received DNS
	message is actually the response for the question made within the method
	earlier. Let's have it actually do so.

	[Bug #12838] https://bugs.ruby-lang.org/issues/12838
	[Bug #17748] https://bugs.ruby-lang.org/issues/17748

	https://github.com/ruby/resolv/commit/53ca9c9209
	---
	 lib/resolv.rb | 6 +++---
	 1 file changed, 3 insertions(+), 3 deletions(-)
2021-06-02 01:40:08 +09:00
NAKAMURA Usaku
9e0e99023d
bump the verion of RDoc for previous merge 2021-05-31 23:47:41 +09:00
NAKAMURA Usaku
483f303d02
merge revision(s) a7f5d6ab88 c9ab8fe2 [Backport#17877]
a fix of RDoc for CVE-2021-31799
2021-05-31 23:44:23 +09:00
nagachika
59cfa0b134 Backport a tmpdir fix.
Remove other then alphanumeric and some punctuations considered
filesystem-safe, instead of removing some unsafe chars only.
2021-04-05 20:48:25 +09:00
nagachika
b59e5a64be Backport rexml upstream bug fixes. 2021-04-05 20:14:49 +09:00
nagachika
70c3a195f3 merge revision(s) 9682db065158da5fa4ec8a3bc267da45b429b92c: [Backport #12838] [Backport #17658]
Remove sender/message_id pair after response received in resolv

	Once a response for a given DNS request has been received (which
	requires a matching message id), the [sender, message_id] pair
	should be removed from the list of valid senders.  This makes it
	so duplicate responses from the same sender are ignored.

	Fixes [Bug #12838]
	---
	 lib/resolv.rb           |   2 +-
	 test/resolv/test_dns.rb | 113 ++++++++++++++++++++++++++++++++++++++++++++++++
	 2 files changed, 114 insertions(+), 1 deletion(-)
2021-03-20 13:18:32 +09:00
nagachika
931815bfd8 merge revision(s) eeacdcb9a073c7d8ad703e0dc9faf229a5ebbe3c: [Backport #17558]
Fixed premature return

	After setting ruby2_keywords for bmethod, the rest of arguments
	had been ignored. [Bug #17558]
	---
	 test/ruby/test_keyword.rb | 9 +++++++++
	 vm_method.c               | 2 +-
	 2 files changed, 10 insertions(+), 1 deletion(-)
2021-02-20 18:46:40 +09:00
nagachika
99b4f20fd6 Merge RubyGems-3.1.6 [Bug #16926]
https://github.com/ruby/ruby/pull/4122
2021-01-30 20:43:44 +09:00
nagachika
9b884df6dd Update rubygems to 3.1.5. [Bug #17381]
Add GlobalSign Root CA.
https://github.com/rubygems/rubygems/pull/4100
https://github.com/rubygems/rubygems/pull/4105
2020-12-09 20:34:55 +09:00
nagachika
48ac737697 Bump up webrick version to 1.6.1. [Bug #17201] 2020-10-11 15:33:09 +09:00
nagachika
828c34e58b merge revision(s) d23d2f3f6fbb5d787b0dd80675c489a692be23e2:
[ruby/webrick] Make it more strict to interpret some headers

	Some regexps were too tolerant.

	https://github.com/ruby/webrick/commit/8946bb38b4
2020-09-29 22:46:14 +09:00
aycabta
2159798f4c Merge IRB 1.2.6 2020-09-16 21:08:31 +09:00
aycabta
3bb503e0e8 Merge Reline 0.1.5 2020-09-16 21:07:25 +09:00
Hiroshi SHIBATA
7d76314885 Merge RubyGems 3.1.4 2020-09-15 20:55:40 +09:00
nagachika
578bacc471 merge revision(s) 5e81e8675a020ecd493620a4ff38db8fcf4b972a: [Backport #16780]
Ignore exceptions when closing data connections [Bug #16780]

	Patch by koshigoe (Masataka SUZUKI). Thanks!
2020-07-25 21:42:20 +09:00
nagachika
4f714939ef merge revision(s) e04418bb16cd99b4a4402e7457d3bdc967284f98: [Backport #16830]
[ruby/uri] Check if DN exists

	https://bugs.ruby-lang.org/issues/16830

	https://github.com/ruby/uri/commit/b4bf8c1217
2020-07-23 14:02:05 +09:00
nagachika
13d2ab0d88 merge revision(s) 2ecfb88ee50510955acd3ae9fc94a5f109e7f109: [Backport #16918]
Correctly remove temporary directory if path yielded is mutated

	Another approach would be to freeze the string, but that could
	cause backwards compatibility issues.

	Fixes [Bug #16918]
2020-07-23 11:16:31 +09:00
nagachika
cc39480cf9 merge revision(s) 5a79d8e0507cd143100bf928a88a59a8b5a5bca6,160511d851375f7cb922faae3a9310633187f51f: [Backport #16925]
Fix error raised by Net::HTTPResponse#inflater if the block raises

	* See https://bugs.ruby-lang.org/issues/13882#note-6

	Quarantine specs which fail frequently with CHECK_LEAKS=true
2020-07-23 11:11:12 +09:00
nagachika
799c5766a4 merge revision(s) a19228f878d955eaf2cce086bcf53f46fdf894b9: [Backport #16979]
brace the fact that lchmod(2) can EOPNOTSUPP

	Musl libc has this function as a tiny wrapper of fchmodat(3posix).  On
	the other hand Linux kernel does not support changing modes of a symlink.
	The operation always fails with EOPNOTSUPP.  This fchmodat behaviour is
	defined in POSIX.  We have to take care of such exceptions.
2020-06-27 12:29:42 +09:00
Jeremy Evans
bb93659fef
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>
2020-03-31 16:10:57 +09:00
aycabta
0057fe4063
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:
  c5a03b1e29/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>
2020-03-30 19:09:50 +09:00
Hiroshi SHIBATA
7b51338013 Merge bundler-2.1.4 2020-03-27 14:43:20 +09:00
Jean Boussier
c6944377d7 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)
2020-03-15 19:35:24 +09:00
Nobuyoshi Nakada
d07a6dc10e delegate.rb: fixed keyword arguments in DelegateClass
`Delegator.delegating_block` should delegate keyword arguments
separately.  [ruby-core:96949]

(cherry picked from commit 9bcf4f3db26249772c983896ebbc9ff41f4614db)
2020-03-15 19:35:24 +09:00
Yusuke Endoh
2339be74e7 lib/drb/drb.rb: Use ruby2_keywords for keyword separation
[Bug #16634]

(cherry picked from commit fb472ca7adbaceb35aae1b3a6b948720ffc9eb53)
2020-03-13 22:38:05 +09:00
Yusuke Endoh
48f324e92f lib/net/imap.rb: use &blk instead of Kernel#proc with no block
[Bug #16488]
2020-01-16 15:09:42 +09:00
aycabta
647ee6f091 [ruby/reline] Version 0.1.2
https://github.com/ruby/reline/commit/b41024e317
2019-12-25 18:50:58 +09:00
aycabta
1341a279a4 Save last breaking point to complete 2019-12-25 18:50:58 +09:00
Yusuke Endoh
75dca097b8 [bundler/bundler] Do require "rubygems" only when needed
This require causes circular require.

```
$ touch empty_file

$ RUBYGEMS_GEMDEPS=empty_file ./local/bin/ruby -w -e ''
/home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92: warning: /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92: warning: loading in progress, circular require considered harmful - /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb
	from <internal:gem_prelude>:1:in  `<internal:gem_prelude>'
	from <internal:gem_prelude>:1:in  `require'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1417:in  `<top (required)>'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1203:in  `use_gemdeps'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/user_interaction.rb:47:in  `use_ui'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1204:in  `block in use_gemdeps'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in  `require'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in  `require'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler.rb:11:in  `<top (required)>'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler.rb:11:in  `require_relative'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler/rubygems_integration.rb:3:in  `<top (required)>'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in  `require'
	from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in  `require'
```

https://github.com/bundler/bundler/commit/c7c5bcea92
2019-12-25 15:38:55 +09:00
aycabta
00710d1076 [ruby/readline] Version 0.0.2
https://github.com/ruby/readline/commit/42b71f3fc0
2019-12-25 10:57:44 +09:00
aycabta
e51a34511c [ruby/readline] Use a box to make easier to see the message
https://github.com/ruby/readline/commit/e49e942053
2019-12-25 10:57:38 +09:00
aycabta
57c74841c7 [ruby/readline] Fix any wrong in messages
https://github.com/ruby/readline/commit/a2cf437c8f
2019-12-25 10:57:29 +09:00
aycabta
de0f4f2fd7 [ruby/readline] Version 0.0.1
https://github.com/ruby/readline/commit/d2363cad33
2019-12-25 10:56:11 +09:00
aycabta
5d20865708 [ruby/readline] Add post_install_message
https://github.com/ruby/readline/commit/03126372b5
2019-12-25 10:55:51 +09:00
aycabta
2462427008 [ruby/reline] Version 0.1.1
https://github.com/ruby/reline/commit/923f97d068
2019-12-25 10:08:39 +09:00
aycabta
ed5b4bae6a The behavior of vi_end_of_transmission should be the same of vi_list_or_eof 2019-12-25 09:52:37 +09:00