| Age | Commit message (Collapse) | Author |
|
https://bugs.ruby-lang.org/issues/16746#note-26
Notes:
Merged: https://github.com/ruby/ruby/pull/3479
|
|
https://bugs.ruby-lang.org/issues/6670#change-75907
|
|
* They likely want to support older Ruby/tempfile versions
* Reverts part of e8c3872555fc85640505974e6b1c39d315572689
|
|
after the block
|
|
automatically
|
|
Previously, Method#super_method looked at the called_id to
determine the method id to use, but that isn't correct for
aliased methods, because the super target depends on the
original method id, not the called_id.
Additionally, aliases can reference methods defined in other
classes and modules, and super lookup needs to start in the
super of the defined class in such cases.
This adds tests for Method#super_method for both types of
aliases, one that uses VM_METHOD_TYPE_ALIAS and another that
does not. Both check that the results for calling super
methods return the expected values.
To find the defined class for alias methods, add an rb_ prefix
to find_defined_class_by_owner in vm_insnhelper.c and make it
non-static, so that it can be called from method_super_method
in proc.c.
This bug was original discovered while researching [Bug #11189].
Fixes [Bug #17130]
Notes:
Merged: https://github.com/ruby/ruby/pull/3458
Merged-By: jeremyevans <code@jeremyevans.net>
|
|
a begin-rescue-else.
https://github.com/ruby/io-console/commit/a22333c33a
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3460
|
|
Before, Socket.getaddrinfo was using a blocking getaddrinfo(3) call.
That didn't allow to wrap it into Timeout.timeout or interrupt the thread in any way.
Combined with the default 10 sec resolv timeout on many Unix systems, this can
have a very noticeable effect on production Ruby apps being not
resilient to DNS outages and timing out name resolution, and being unable to fail fast even
with Timeout.timeout.
Since we already have support for getaddrinfo_a(3), the async version
of getaddrinfo, we should be able to make Socket.getaddrinfo leverage that
when getaddrinfo_a version is available in the system (hence #ifdef
HAVE_GETADDRINFO_A).
Related tickets:
https://bugs.ruby-lang.org/issues/16476
https://bugs.ruby-lang.org/issues/16381
https://bugs.ruby-lang.org/issues/14997
Notes:
Merged-By: mmasaki <glass.saga@gmail.com>
|
|
|
|
|
|
|
|
|
|
were not initialized
Notes:
Merged: https://github.com/ruby/ruby/pull/3001
|
|
If the passed string is frozen, bare and not shared, then there
is no need to duplicate it.
Ref: 4ab69ebbd7cef8539f687e1f948845d076461dc6
Ref: https://bugs.ruby-lang.org/issues/11386
Notes:
Merged: https://github.com/ruby/ruby/pull/3430
|
|
Because Editline erases all histories in Readline::HISTORY when
Readline.readline is called.
|
|
|
|
Compaction makes collisions in the weak map more likely. For now, clear
the tracing information before the test run so we get accurate results
|
|
|
|
The allocation tracing code keeps essentially a weak reference to
objects that have been allocated (storing the allocation information
along with the weak ref). Compacting the heap would break references in
this weak map, so the wrong values could be returned.
This commit just updates the values in the weak ref in order to fix the
allocation tracing book keeping
Notes:
Merged: https://github.com/ruby/ruby/pull/3429
|
|
|
|
```
/home/chkbuild/chkbuild/tmp/build/20200818T123003Z/ruby/test/irb/test_history.rb:16:
warning: assigned but unused variable - result_output
/home/chkbuild/chkbuild/tmp/build/20200818T123003Z/ruby/test/irb/test_history.rb:34:
warning: assigned but unused variable - result_output
/home/chkbuild/chkbuild/tmp/build/20200818T123003Z/ruby/test/irb/test_history.rb:57:
warning: assigned but unused variable - result_output
/home/chkbuild/chkbuild/tmp/build/20200818T123003Z/ruby/test/irb/test_history.rb:80:
warning: assigned but unused variable - result_output
```
|
|
|
|
https://github.com/ruby/irb/commit/f4bcdf4375
|
|
https://github.com/ruby/reline/commit/96583c6336
|
|
Co-authored-by: aycabta <aycabta@gmail.com>
https://github.com/ruby/reline/commit/067b618123
|
|
because inputrc will be read when starting up
https://github.com/ruby/reline/commit/0a30464385
|
|
https://github.com/ruby/reline/commit/3bf7c7d722
|
|
https://github.com/ruby/reline/commit/8d7df88e98
|
|
https://github.com/ruby/irb/commit/f1a775af47
|
|
https://github.com/ruby/irb/commit/8e3f81d428
|
|
https://github.com/ruby/irb/commit/9e4423b6e1
|
|
https://github.com/ruby/irb/commit/824473e880
|
|
https://github.com/ruby/irb/commit/5044eb2730
|
|
https://github.com/ruby/irb/commit/82efd370eb
|
|
https://github.com/ruby/irb/commit/826ae909c9
|
|
```
/home/chkbuild/chkbuild/tmp/build/20200818T033004Z/ruby/test/fiber/test_backtrace.rb:9:
warning: ambiguous first argument; put parentheses or a space even after
`/' operator
/home/chkbuild/chkbuild/tmp/build/20200818T033004Z/ruby/test/fiber/test_backtrace.rb:15:
warning: ambiguous first argument; put parentheses or a space even after
`/' operator
```
|
|
```
1) Failure:
TestObjSpace#test_trace_object_allocations [/tmp/ruby/v3/src/trunk-gc_compact/test/objspace/test_objspace.rb:175]:
<nil> expected but was
<"/tmp/ruby/v3/src/trunk-gc_compact/test/objspace/test_objspace.rb">.
```
@tenderlove will re-enable it soon.
|
|
It's possible to define methods with any name, even if the parser
doesn't support it and it can only be used with ex. send.
This fixes an issue where invalid JSON was output from ObjectSpace.dump
when a method name needed escaping.
Notes:
Merged: https://github.com/ruby/ruby/pull/3383
|
|
As well as the other places using RCLASS_IV_INDEX_TBL.
`IO#reopen` seems the only case that the class of an object can be
changed.
|
|
|
|
|
|
See <https://bugs.ruby-lang.org/issues/16815> for more details.
Notes:
Merged: https://github.com/ruby/ruby/pull/3422
|
|
This was deprecated in 2.7 to resolve [Misc #15893].
Notes:
Merged: https://github.com/ruby/ruby/pull/3377
|
|
When the pattern Regexp given to String#index and String#rindex
contain a /\K/ (lookbehind) operator, these methods return the
position where the beginning of the lookbehind pattern matches, while
they are expected to return the position where the \K matches.
```
# without patch
"abcdbce".index(/b\Kc/) # => 1
"abcdbce".rindex(/b\Kc/) # => 4
```
This patch fixes this problem by using BEG(0) instead of the return
value of rb_reg_search.
```
# with patch
"abcdbce".index(/b\Kc/) # => 2
"abcdbce".rindex(/b\Kc/) # => 5
```
Fixes [Bug #17118]
Notes:
Merged: https://github.com/ruby/ruby/pull/3414
|
|
When the pattern given to String#partition and String#rpartition
contain a /\K/ (lookbehind) operator, the methods return strings
sliced at incorrect positions.
```
# without patch
"abcdbce".partition(/b\Kc/) # => ["a", "c", "cdbce"]
"abcdbce".rpartition(/b\Kc/) # => ["abcd", "c", "ce"]
```
This patch fixes the problem by using BEG(0) instead of the return
value of rb_reg_search.
```
# with patch
"abcdbce".partition(/b\Kc/) # => ["ab", "c", "dbce"]
"abcdbce".rpartition(/b\Kc/) # => ["abcdb", "c", "e"]
```
As a side-effect this patch makes String#partition 2x faster when the
pattern is a costly Regexp by performing Regexp search only once,
which was unexpectedly done twice in the original implementation.
Fixes [Bug #17119]
Notes:
Merged: https://github.com/ruby/ruby/pull/3413
|
|
Extension string stored in `ARGF.inplace` is created using an api
designed for C string constants to create a Ruby string that
points at another Ruby string. When the original string is swept,
the extension string gets corrupted.
Reproduction script (on MacOS):
```ruby
#!/usr/bin/ruby -pi.bak
BEGIN {
GC.start(full_mark: true)
arr = []
1000000.times do |x|
arr << "fooo#{x}"
end
}
puts "hello"
```
Co-Authored-By: Matt Valentine-House <31869+eightbitraptor@users.noreply.github.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/3409
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Use BEG(0) instead of the result of rb_reg_search to handle the cases
when the separator Regexp contains /\K/ (lookbehind) operator.
Fixes [Bug #17113]
Notes:
Merged: https://github.com/ruby/ruby/pull/3407
|
|
`OpenSSL::TestX509Store#test_verify` has been failing intermittently on
CI about once a day:
- http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/3121244
- http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/3117661
- http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/3111684
According to the test:
> OpenSSL uses time(2) while Time.now uses clock_gettime(CLOCK_REALTIME),
> and there may be difference.
This difference is could be the cause for the flaky failures. Let's see
if giving the certificate more room solves the problem.
In any case, I will revert this in a week. I think changes to these
should go to https://github.com/ruby/openssl/?
Notes:
Merged: https://github.com/ruby/ruby/pull/3406
|
|
|