Age | Commit message (Collapse) | Author |
|
|
|
And fixed a segfault by coercion of `Qundef`, when any keyword
argument without `toward:` option is given.
|
|
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11x/ruby-master/log/20200125T032406Z.fail.html.gz
```
IMAPTest#test_connection_closed_without_greeting [/export/home/rubyci/chkbuild-tmp/tmp/build/20200125T032406Z/ruby/test/net/imap/test_imap.rb:485]:
[Net::IMAP::Error] exception expected, not #<RuntimeError: {:"server before close"=>"#<TCPServer:fd 10, AF_INET6, ::1, 48515>", :sock_addr=>["AF_INET6", 48515, "::1", "::1"], :sock_peeraddr=>["AF_INET6", 35223, "::1", "::1"], :e=>#<Errno::EINVAL: Invalid argument - connect(2) for [::1]:48515>, :server=>#<TCPServer:(closed)>, :port=>48515, :server_addr=>"::1"}>.
```
|
|
|
|
Attempts to fix a occational failure on Solaris with sunc
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris11-sunc/ruby-master/log/20200124T160008Z.fail.html.gz
```
1) Error:
Rinda::TestRingServer#test_do_reply:
Timeout::Error: timeout
```
|
|
https://hackerone.com/reports/244787
|
|
https://hackerone.com/reports/244786
|
|
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]
Notes:
Merged: https://github.com/ruby/ruby/pull/2861
|
|
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.
|
|
Musl is (of course) not glibc. Its confstr(3) does not understand
_CS_GNU_LIBC_VERSION. That's fair. Problem is, its unistd.h has that
constant defined for unknown reason. We cannot blindly say the libc is
glibc by looking at it. Instead we have to kick it, then see if it
quacks like a duck.
See https://git.musl-libc.org/cgit/musl/tree/include/unistd.h
|
|
The same as https://github.com/ruby/ruby/pull/2686, but for musl libc.
Musl is not named as libc.so.6 so the `ldd` hack implemented some lines
below does not work.
|
|
Keeping empty keyword splats for ruby2_keywords methods was
necessary in 2.7 to prevent the final positional hash being
treated as keywords. Now that keyword argument separation
has been committed, the final positional hash is never
treated as keywords, so there is no need to keep empty
keyword splats when using ruby2_keywords.
Notes:
Merged: https://github.com/ruby/ruby/pull/2857
|
|
|
|
According to https://github.com/ruby/openssl/pull/60,
> Currently an user who wants to do the hostname verification needs to
call SSLSocket#post_connection_check explicitly after the TLS connection
is established.
if an user who wants to skip the hostname verification,
SSLSocket#post_connection_check doesn't need to be called
https://bugs.ruby-lang.org/issues/16555
|
|
|
|
|
|
|
|
|
|
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]
Notes:
Merged: https://github.com/ruby/ruby/pull/2855
|
|
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.
Notes:
Merged: https://github.com/ruby/ruby/pull/2848
|
|
https://github.com/ruby/reline/commit/8538e0e10f
|
|
https://github.com/ruby/irb/commit/9eb1801a66
|
|
https://github.com/ruby/reline/commit/0ad3ee63fa
|
|
https://github.com/ruby/reline/commit/066ecb0a21
|
|
Sort the results which matched single wildcard or character set in
binary ascending order, unless `sort: false` is given. The order
of an Array of pattern strings and braces are not affected.
Notes:
Merged: https://github.com/ruby/ruby/pull/2846
|
|
In #2818, `Hash.ruby2_keywords!` has renamed to `Hash.ruby2_keywords_hash`.
Notes:
Merged: https://github.com/ruby/ruby/pull/2849
|
|
|
|
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
|
|
It was found that a feature to check and add ruby2_keywords flag to an
existing Hash is needed when arguments are serialized and deserialized.
It is possible to do the same without explicit APIs, but it would be
good to provide them as a core feature.
https://github.com/rails/rails/pull/38105#discussion_r361863767
Hash.ruby2_keywords_hash?(hash) checks if hash is flagged or not.
Hash.ruby2_keywords_hash(hash) returns a duplicated hash that has a
ruby2_keywords flag,
[Bug #16486]
Notes:
Merged: https://github.com/ruby/ruby/pull/2818
|
|
It is useful for a program that dumps and load arguments (like drb).
In future, they should deal with both positional arguments and keyword
ones explicitly, but until ruby2_keywords is deprecated, it is good to
support the flag in marshal.
The implementation is similar to String's encoding; it is dumped as a
hidden instance variable.
[Feature #16501]
Notes:
Merged: https://github.com/ruby/ruby/pull/2830
|
|
|
|
|
|
|
|
|
|
|
|
[Feature #16432]
|
|
|
|
Split with the matched part when the separator matches the empty
part at the beginning. [Bug #11014]
|
|
`String#sub` with a string pattern defers creating a `Regexp`
until `MatchData#regexp` creates a `Regexp` from the matched
string. `Regexp#last_match(group_name)` accessed its content
without creating the `Regexp` though. [Bug #16508]
|
|
[Feature #8948] [Feature #16377]
Since Regexp literals always reference the same instance,
allowing to mutate them can lead to state leak.
Notes:
Merged: https://github.com/ruby/ruby/pull/2705
|
|
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.
|
|
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
|
|
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
|
|
If this value is less than zero, then the mask check is guaranteed to
fail as well, so we might as well rely on that.
Notes:
Merged: https://github.com/ruby/ruby/pull/2808
|
|
[Feature #16485][ruby-core:96683]
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
|
|
[Feature #16485][ruby-core:96683]
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
|
|
|
|
|
|
[Bug #16498]
|
|
`Binding#source_location` returns the `__FILE__` when created, and
may not be an absolute or real path. And in the `eval` context
with an explicit file name, `__dir__` also returns that name.
On the other hand, `__FILE__` in `require`d script file has been
expanded at searching the library.
|