Age | Commit message (Collapse) | Author |
|
This reverts commit 27fb9d272daaae89089dfb61849ebe8e7aa6c833.
The test failure on Solaris 10 is due to incomplete IPv6 configuration
on the CI server, that have already been fixed.
Reference for the fix: https://centrify.force.com/support/Article/KB-1179-X11-Forwarding-fails-with-Centrify-OpenSSH-5-0-Solaris/
|
|
RUBY_PLATFORM can be used since commit 576b2e64cdc5ea42ad345dd3c1c215e006c06fca .
Notes:
Merged: https://github.com/ruby/ruby/pull/5168
|
|
It should retun general `cc`, not for overloaded (mandatory only)
method call cache.
This issue is reported by @shugo and @ktou
https://twitter.com/shugomaeda/status/1463699797182119936
Notes:
Merged: https://github.com/ruby/ruby/pull/5173
|
|
* YJIT: Implement optimized_method_struct_aref
* YJIT: Implement struct_aref without method call
Struct member reads can be compiled directly into a memory read (with
either one or two levels of indirection).
* YJIT: Implement optimized struct aset
* YJIT: Update tests for struct access
* YJIT: Add counters for remaining optimized methods
* Check for INT32_MAX overflow
It only takes a struct with 0x7fffffff/8+1 members. Also add some
cheap compile time checks.
* Add tests for non-embedded struct aref/aset
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Notes:
Merged-By: jhawthorn <john@hawthorn.email>
|
|
This reverts commit 6157619bb68e4307cdf065cb73d5bfcec30d042d.
We'll wait for comments in the open ticket: https://bugs.ruby-lang.org/issues/18364
Notes:
Merged: https://github.com/ruby/ruby/pull/5176
|
|
GC.stat_size_pool will return stats for a particular size pool. This is
used for the Variable Width Allocation feature.
Notes:
Merged: https://github.com/ruby/ruby/pull/5169
|
|
https://github.com/ruby/win32ole/commit/7e04d0eb3e
Notes:
Merged: https://github.com/ruby/ruby/pull/5175
|
|
https://github.com/ruby/win32ole/commit/8d46bd0c93
Notes:
Merged: https://github.com/ruby/ruby/pull/5175
|
|
http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20211125T003004Z.log.html.gz
```
[ 4780/21204] TestISeq#test_super_with_anonymous_block/home/chkbuild/chkbuild/tmp/build/20211125T003004Z/ruby/test/ruby/test_iseq.rb:141: warning: method redefined; discarding old touch3
/home/chkbuild/chkbuild/tmp/build/20211125T003004Z/ruby/test/ruby/test_iseq.rb:121: warning: previous definition of touch3 was here
= 0.00 s
```
|
|
When Zlib::Inflate#inflate or Zlib::Deflate#deflate is called
recursively inside the block, a crash can occur because of an
use-after-free bug.
https://github.com/ruby/zlib/commit/50fb8a0338
|
|
https://github.com/ruby/cgi/commit/052eb3a828
|
|
|
|
Implements setclassvariable in yjit. Note that this version is not
faster than the standard version because we aren't handling the inline
cache in assembly. This is still important to implement because it will
prevent yjit from exiting in methods that call both a cvar setter and
other code that yjit can compile.
Co-authored-by: Aaron Patterson tenderlove@ruby-lang.org
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
The parameter being called `req` specifically causes an assertion error:
```
Assertion failed: (key != 0), function hash_table_raw_insert, file id_table.c, line 153.
```
Renaming the parameter or removing the `*` doesn't reproduce.
Notes:
Merged: https://github.com/ruby/ruby/pull/5157
|
|
Implements [Feature #18273]
Returns an array containing the receiver's direct subclasses without
singleton classes.
Notes:
Merged: https://github.com/ruby/ruby/pull/5045
|
|
As this warning is emitted just once per processes, needs in each
files when parallel testing.
|
|
After 5680c38c75aeb5cbd219aafa8eb48c315f287d97, postponed job APIs now
expect to be called on native threads not managed by Ruby and handles
getting a NULL execution context. However, in debug builds the change
runs into an assertion failure with GET_EC() which asserts that EC is
non-NULL. Avoid the assertion failure by passing `false` for `expect_ec`
instead as the intention is to handle when there is no EC.
Add a test from John Crepezzi and John Hawthorn to exercise this
situation.
See GH-4108
See GH-5094
[Bug #17573]
Co-authored-by: John Hawthorn <john@hawthorn.email>
Co-authored-by: John Crepezzi <john.crepezzi@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/5156
Merged-By: XrXr
|
|
fix https://github.com/ruby/irb/issues/308
This bug occurred when `dialog.width - calculate_width(s, true)` was negative.
When `dialog.width` is shorter than `old_dialog.width`, it calculates how much padding it has to do. However, there are cases where `s` is longer than `dialog.width`, as in the issue. In that case, `padding_space_with_escape_sequences` will crash.
Here, `old_dialog.width` is longer than `dialog.width`, so I changed the padding width to `old_dialog.width - dialog.width`.
https://github.com/ruby/reline/commit/c581c31e0f
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5152
|
|
This is the minimal correct objtostring implementation in YJIT.
For correctness, it is important that to_string not get called on strings or subclasses of string.
There is a new test for this behavior.
A follow up should implement an optimized version for other types as performed in `vm_objtostring`.
Co-authored-by: John Hawthorn <jhawthorn@github.com>
Co-authored-by: John Hawthorn <jhawthorn@github.com>
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5147
|
|
Introduce new optimized method type
`OPTIMIZED_METHOD_TYPE_STRUCT_AREF/ASET` with index information.
Notes:
Merged: https://github.com/ruby/ruby/pull/5131
|
|
This provides a significant speedup for symbol, true, false,
nil, and 0-9, class/module, and a small speedup in most other cases.
Speedups (using included benchmarks):
:symbol :: 60%
0-9 :: 50%
Class/Module :: 50%
nil/true/false :: 20%
integer :: 10%
[] :: 10%
"" :: 3%
One reason this approach is faster is it reduces the number of
VM instructions for each interpolated value.
Initial idea, approach, and benchmarks from Eric Wong. I applied
the same approach against the master branch, updating it to handle
the significant internal changes since this was first proposed 4
years ago (such as CALL_INFO/CALL_CACHE -> CALL_DATA). I also
expanded it to optimize true/false/nil/0-9/class/module, and added
handling of missing methods, refined methods, and RUBY_DEBUG.
This renames the tostring insn to anytostring, and adds an
objtostring insn that implements the optimization. This requires
making a few functions non-static, and adding some non-static
functions.
This disables 4 YJIT tests. Those tests should be reenabled after
YJIT optimizes the new objtostring insn.
Implements [Feature #13715]
Co-authored-by: Eric Wong <e@80x24.org>
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
Notes:
Merged: https://github.com/ruby/ruby/pull/5002
Merged-By: jeremyevans <code@jeremyevans.net>
|
|
block to another method without having to provide a name for the
block parameter.
Implements [Feature #11256]
Co-authored-by: Yusuke Endoh mame@ruby-lang.org
Co-authored-by: Nobuyoshi Nakada nobu@ruby-lang.org
Notes:
Merged: https://github.com/ruby/ruby/pull/5051
|
|
Previously, each of these methods returned self, but it is
more useful to return arguments, to allow for simpler method
decorators, such as:
```ruby
cached private def foo; some_long_calculation; end
```
Where cached sets up caching for the method.
For each of these methods, the following behavior is used:
1) No arguments returns nil
2) Single argument is returned
3) Multiple arguments are returned as an array
The single argument case is really the case we are trying to
optimize for, for the same reason that def was changed to return
a symbol for the method.
Idea and initial patch from Herwin Quarantainenet.
Implements [Feature #12495]
Notes:
Merged: https://github.com/ruby/ruby/pull/5037
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5084
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Instead of always using a new anonymous module for Kernel#load if
the wrap argument is not false/nil, use the given module if a module
is provided.
Implements [Feature #6210]
Notes:
Merged: https://github.com/ruby/ruby/pull/4986
|
|
Plus, that method is supposed to be private.
https://github.com/rubygems/rubygems/commit/f8a01ddb9f
|
|
Tests for GitHub PR #5122. Originally in GitHub PR #5121.
Notes:
Merged: https://github.com/ruby/ruby/pull/5132
|
|
This behavior changed in dfb47bbd17c3c2b8ce17dbafaf62df023b0224b2,
but only for normal exit, not for early exit. Fix it for early
exit as well.
While here, fix example code in documentation so that it doesn't
indicate that the method returns nil.
Notes:
Merged: https://github.com/ruby/ruby/pull/5129
|
|
This already passes in master, 3.0, and 2.7, but would fail in
ruby 2.6 as it segfaults instead of raising an exception. I think
it's good to have a test for this to catch possible future
regressions.
Notes:
Merged: https://github.com/ruby/ruby/pull/5128
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5115
|
|
`vm_ci_argc` gives the number of arguments, but `*[1, 2, 3]` only
counts for one.
Notes:
Merged: https://github.com/ruby/ruby/pull/5124
|
|
https://github.com/ruby/date/commit/376c65942b
|
|
Fix: https://github.com/ruby/date/issues/39
This is how versions previous to 3.2.1 behaved and Active Support
currently rely on this behavior.
https://github.com/rails/rails/blob/90357af08048ef5076730505f6e7b14a81f33d0c/activesupport/lib/active_support/values/time_zone.rb#L383-L384
Any Rails application upgrading to date `3.2.1` might run into unexpected errors.
https://github.com/ruby/date/commit/8f2d7a0c7e
|
|
`Date.parse` now raises an ArgumentError when a given date string is
longer than 128. You can configure the limit by giving `limit` keyword
arguments like `Date.parse(str, limit: 1000)`. If you pass `limit: nil`,
the limit is disabled.
Not only `Date.parse` but also the following methods are changed.
* Date._parse
* Date.parse
* DateTime.parse
* Date._iso8601
* Date.iso8601
* DateTime.iso8601
* Date._rfc3339
* Date.rfc3339
* DateTime.rfc3339
* Date._xmlschema
* Date.xmlschema
* DateTime.xmlschema
* Date._rfc2822
* Date.rfc2822
* DateTime.rfc2822
* Date._rfc822
* Date.rfc822
* DateTime.rfc822
* Date._jisx0301
* Date.jisx0301
* DateTime.jisx0301
https://github.com/ruby/date/commit/3959accef8
|
|
https://github.com/ruby/io-wait/commit/e8e1e99d4c
|
|
https://github.com/ruby/io-wait/commit/1f59f7b02f
|
|
Picked from https://github.com/rubygems/rubygems/commit/4b498709a015a94e14a3852a1841a7a3e669133d
|
|
|
|
https://github.com/ruby/net-http/commit/ca7bb8c51c
|
|
See https://bugs.ruby-lang.org/issues/18338
|
|
This reverts commit a698181021c11711dc56b74dacbdebc2895b5384.
It failed on macos for a unknown problem.
```
1) Error:
TestM17N#test_object_inspect_external:
Encoding::ConverterNotFoundError: code converter not found (US-ASCII to UTF-16BE)
/Users/runner/work/ruby/ruby/src/test/ruby/test_m17n.rb:312:in `encode'
/Users/runner/work/ruby/ruby/src/test/ruby/test_m17n.rb:312:in `inspect'
/Users/runner/work/ruby/ruby/src/test/ruby/test_m17n.rb:315:in `inspect'
/Users/runner/work/ruby/ruby/src/test/ruby/test_m17n.rb:315:in `<main>'
/Users/runner/work/ruby/ruby/src/test/ruby/test_m17n.rb:299:in `test_object_inspect_external'
```
https://github.com/ruby/ruby/runs/4207871418?check_suite_focus=true
|
|
The test uses `Encoding.default_external = Encoding::UTF_16BE`, which
may add a wrongly UTF_16BE-encoded path to $LOADED_FEATURES (depending
on the order of tests). Unfortunately this breaks another test:
http://ci.rvm.jp/results/trunk-test@ruby-sky1/3711615
```
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:11:in `===': incompatible encoding regexp match (US-ASCII regexp with UTF-16BE string) (Encoding::CompatibilityError)
```
According to @naruse-san, we don't pay effort to such a case, so this
change just avoids the issue by running the test in question under
another process.
Co-Authored-By: Koichi Sasada <ko1@atdot.net>
|
|
|
|
make test-all in parallel mode seems to hide stdout
|
|
It reports "opt_regexpmatch2 insn is not included", but actually it is
included. This is due to a known bug of ISeq#to_a on which this check
depends.
https://bugs.ruby-lang.org/issues/18269
|
|
to debug the following failure
http://ci.rvm.jp/results/trunk-test@ruby-sky1/3708240
```
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `===': incompatible encoding regexp match (US-ASCII regexp with UTF-16BE string) (Encoding::CompatibilityError)
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `each'
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `grep'
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `<class:TestIO_Console>'
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:9:in `<top (required)>'
<internal:/tmp/ruby/v3/src/trunk-test/lib/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/tmp/ruby/v3/src/trunk-test/lib/rubygems/core_ext/kernel_require.rb>:85:in `require'
/tmp/ruby/v3/src/trunk-test/tool/lib/test/unit/parallel.rb:122:in `run'
/tmp/ruby/v3/src/trunk-test/tool/lib/test/unit/parallel.rb:211:in `<main>'
running file: /tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb
```
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5109
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5109
|