Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
And not depend on the state of rack's master branch, in particular, on
their Ruby support range.
|
|
`RSpec::Mocks::ArgumentListMatcher#args_match?` fails when a
non-keywords hash is passed while a keyword hash is expected.
This is a change in `rspec-mocks` 3.10.3, so we need to adapt to it.
|
|
|
|
|
|
Update zlib version to 1.2.12
---
.appveyor.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
zlib-1.2.12.
|
|
zlib-1.2.12.
|
|
|
|
|
|
|
|
|
|
d0d6227a0da5925acf946a09191f172daf53baf2,fff1edf23ba28267bf57097c269f7fa87530e3fa: [Backport #17529]
alen should be actions number on ractor_select()
alen was number of rs, but it should be actions number
(taking ractors + receiving + yielding).
---
ractor.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
fix Ractor.yield(obj, move: true)
Ractor.yield(obj, move: true) and
Ractor.select(..., yield_value: obj, move: true) tried to yield a
value with move semantices, but if the trial is faild, the obj
should not become a moved object.
To keep this rule, `wait_moving` wait status is introduced.
New yield/take process:
(1) If a ractor tried to yield (move:true), make taking racotr's
wait status `wait_moving` and make a moved object by
`ractor_move(obj)` and wakeup taking ractor.
(2) If a ractor tried to take a message from a ractor waiting fo
yielding (move:true), wakeup the ractor and wait for (1).
---
bootstraptest/test_ractor.rb | 25 +++++++++++++++
ractor.c | 73 +++++++++++++++++++++++++++++++++++---------
ractor_core.h | 1 +
3 files changed, 84 insertions(+), 15 deletions(-)
|
|
|
|
environments.
|
|
[Bug #18627] Fix crash when including module
During lazy sweeping, the iclass could be a dead object that has not yet
been swept. However, the chain of superclasses of the iclass could
already have been swept (and become a new object), which would cause a
crash when trying to read the object.
---
class.c | 48 ++++++++++++++++++++++++++++++------------------
1 file changed, 30 insertions(+), 18 deletions(-)
|
|
st.c: Do not clear entries_bound when calling Hash#shift for empty
hash
tab->entries_bound is used to check if the bins are full in
rebuild_table_if_necessary.
Hash#shift against an empty hash assigned 0 to tab->entries_bound, but
didn't clear the bins. Thus, the table is not rebuilt even when the bins
are full. Attempting to add a new element into full-bin hash gets stuck.
This change stops clearing tab->entries_bound in Hash#shift.
[Bug #18578]
---
st.c | 1 -
test/ruby/test_hash.rb | 13 +++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
|
|
#17788] [Backport #18574]
Get `ruby_nonempty_memcpy` to have C linkage
Fixes [Bug #17788]
---
include/ruby/internal/memory.h | 2 ++
1 file changed, 2 insertions(+)
|
|
Fix TAG_THROW through require [Bug #18562]
Previously this was being incorrectly swapped with TAG_RAISE in the next
line. This would end up checking the T_IMEMO throw_data to the exception
handling (which calls Module#===). This happened to not break existing
tests because Module#=== returned false when klass is NULL.
This commit handles throw from require correctly by jumping to the tag
retaining the TAG_THROW state.
---
load.c | 2 +-
test/ruby/test_exception.rb | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
|
|
Do not use `fcopyfile` if appending to non-empty file [Bug #18388]
`fcopyfile` appends `src` to `to` and then truncates `to` to it's
original size.
---
io.c | 7 +++++++
test/ruby/test_io.rb | 12 ++++++++++++
2 files changed, 19 insertions(+)
|
|
7ff1bf317887c0d7b21e91ad548d07b9f05c540c,e89d80702bd98a8276243a7fcaa2a158b3bfb659: [Backport #18516]
An alias can suppress method redefinition warning
---
test/ruby/test_alias.rb | 11 +++++++++++
1 file changed, 11 insertions(+)
Fix memory leak at the same named alias [Bug #18516]
When aliasing a method to the same name method, set a separate bit
flag on that method definition, instead of the reference count
increment. Although this kind of alias has no actual effect at
runtime, is used as the hack to suppress the method re-definition
warning.
---
method.h | 1 +
test/ruby/test_alias.rb | 18 ++++++++++++++++++
vm_method.c | 9 ++++++++-
3 files changed, 27 insertions(+), 1 deletion(-)
|
|
Shifting zero always results in zero [Bug #18517]
---
numeric.c | 2 ++
1 file changed, 2 insertions(+)
|
|
5c7af72304d0ad33cd3f21b24a4bc44e8acd5b2c,d650b17686d49c2ce8e6a87039861154e93d4621: [Backport #18497]
Assuming EXIT_SUCCESS equals 0 is not portable
---
test/ruby/test_fiber.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
`rb_fiber_terminate` must not return [Bug #18497]
In a forked process from a fiber, the fiber becomes the only
fiber, `fiber_switch` does nothing as there is no other fibers,
`rb_fiber_terminate` does not terminate the fiber. In that case,
reaches the end of `fiber_entry` finaly, which is declared as
"COROUTINE" and should never return.
---
cont.c | 3 ++-
eval_intern.h | 2 +-
test/fiber/test_process.rb | 15 +++++++++++++++
test/ruby/test_fiber.rb | 5 +++++
4 files changed, 23 insertions(+), 2 deletions(-)
|
|
thread.c: Convert TAG_BREAK to a normal exception at thread top-level
[Bug #18475]
---
test/ruby/test_enum.rb | 11 +++++++++++
thread.c | 3 +++
2 files changed, 14 insertions(+)
|
|
Don't segfault if Warning.warn is undefined
Check that there is a method entry for the method before passing
it to rb_method_entry_arity.
Fixes [Bug #18458]
---
error.c | 3 ++-
test/ruby/test_exception.rb | 8 ++++++++
2 files changed, 10 insertions(+), 1 deletion(-)
|
|
Fix stack buffer overflow
https://hackerone.com/reports/1306859
---
include/ruby/internal/memory.h | 6 +++---
random.c | 7 ++-----
2 files changed, 5 insertions(+), 8 deletions(-)
|
|
Empty and return the buffer if zero size is given [Bug #18421]
In `IO#readpartial` and `IO#read_nonblock`, as well as `IO#read`.
---
io.c | 8 ++++++--
test/ruby/test_io.rb | 21 +++++++++++++++++++++
2 files changed, 27 insertions(+), 2 deletions(-)
|
|
d6c5a30cfdf658280338dbb8c8b17fab3190b928,a2d4e1cda68a49980a4f9f353f400efbde7e7884: [Backport #18392]
ObjectSpace::WeakMap#inspect: check if living object [Bug #18392]
---
gc.c | 29 +++++++++++++++++++++++------
test/ruby/test_weakmap.rb | 9 +++++++++
2 files changed, 32 insertions(+), 6 deletions(-)
Fixed the check order in wmap_live_p [Bug #18392]
Check if the object is a pointer to heap before check the flag in
that object.
---
gc.c | 35 ++++++++++++++++++++++-------------
1 file changed, 22 insertions(+), 13 deletions(-)
|
|
configure: add -Wl,--no-as-needed
It is reported that combination of `--enable-shared --with-jemalloc`
breaks on Debian bullseye (testig). Deeper investigation revealed that
this system's `ld(1)` is patched, to turn `ld --as-needed` on by
default.
This linker flag strips "unnecessary" library dependencies from an
executable. In case of `ruby(1)` (of `--enable-shared`), because
everything is in `libruby.so`, the binary itself doesn't include any
calls to `malloc(3)` at all. So in spite of our explicit `-ljemalloc`
flag, it is ignored. Libc's one is chosen instead.
This is not what we want. Let's force our `ruby(1)` link what we want.
Fixes https://github.com/ruby/ruby/pull/4627
The author would like to acknowledge
Akihiko Odaki <akihiko.odaki@gmail.com> for their contributions.
---
configure.ac | 5 +++++
1 file changed, 5 insertions(+)
|
|
[DOC] How to get the longest last match [Bug #18415]
---
string.c | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
|
|
0130e17a410d60a10e7041ce98748b8de6946971,32b7dcfb56a417c1d1c354102351fc1825d653bf,79cc566ab4cdf75f125ecf413a27d353a9756c08: [Backport #18394]
Always enabled read barrier even on GC.compact
Some objects can survive the GC before compaction, but get collected in
the second compaction. This means we could have objects reference
T_MOVED during "free" in the second, compacting GC. If that is the
case, we need to invalidate those "moved" addresses. Invalidation is
done via read barrier, so we need to make sure the read barrier is
active even during `GC.compact`.
This also means we don't actually need to do one GC before compaction,
we can just do the compaction and GC in one step.
---
gc.c | 20 +++-----------------
1 file changed, 3 insertions(+), 17 deletions(-)
Fix more assumptions about the read barrier
This is a continuation of 0130e17a410d60a10e7041ce98748b8de6946971. We
need to always use the read barrier
---
gc.c | 10 ----------
1 file changed, 10 deletions(-)
Make during_compacting flag in GC one bit
Commit c32218de1ba094223420a4ea017707f48d0009c5 turned during_compacting
flag to 2 bits to support the case when there is no write barrier. But
commit 32b7dcfb56a417c1d1c354102351fc1825d653bf changed compaction to
always enable the write barrier. This commit cleans up some of the
leftover code.
---
gc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
intern/select/posix.h: remove unused parameter from rb_fd_dup
This unused parameter seems to be accidently introduced by https://github.com/ruby/ruby/commit/9e6e39c
---
include/ruby/internal/intern/select/posix.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
[Bug #18382] Fix crash in compaction for
ObjectSpace.trace_object_allocations
ObjectSpace.trace_object_allocations can crash when auto-compaction is
enabled.
---
ext/objspace/object_tracing.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
[ruby/zlib] [Bug #18358] Fix crash in zlib when in progress
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
---
ext/zlib/zlib.c | 117 ++++++++++++++++++++++++++++++++-----------------
test/zlib/test_zlib.rb | 10 ++++-
2 files changed, 85 insertions(+), 42 deletions(-)
|
|
[ruby/zlib] Synchronize access to zstream to prevent segfault in
multithreaded use
I'm not sure whether this handles all multithreaded use cases,
but this handles the example that crashes almost immediately
and does 10,000,000 total deflates using 100 separate threads.
To prevent the tests from taking forever, the committed test
for this uses only 10,000 deflates across 10 separate threads,
which still causes a segfault in the previous implementation
almost immediately.
Fixes [Bug #17803]
https://github.com/ruby/zlib/commit/4b1023b3f2
---
ext/zlib/zlib.c | 33 ++++++++++++++++++++++++++-
test/zlib/test_zlib.rb | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 93 insertions(+), 1 deletion(-)
|
|
cf831f49189c4a890da6845e39199a5dfaf4fb48,3260602fa3d905ba310b9afbc5365ee52cb53d62:
zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE file
---
ext/zlib/zlib.c | 18 ++++++++++++++----
test/zlib/test_zlib.rb | 21 +++++++++++++++++++++
2 files changed, 35 insertions(+), 4 deletions(-)
Adjusted indents [ci skip]
---
ext/zlib/zlib.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
Fix -Wundef warnings for HAVE_RB_EXT_RACTOR_SAFE
* See [Feature #17752]
---
ext/cgi/escape/escape.c | 2 +-
ext/monitor/monitor.c | 2 +-
ext/racc/cparse/cparse.c | 2 +-
ext/zlib/zlib.c | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
|
|
[ruby/zlib] Resume zstream if available [Bug #10961]
---
ext/zlib/zlib.c | 6 ++++++
1 file changed, 6 insertions(+)
|
|
|
|
|
|
f18a0b7654d471101b207e7fe553e12a25398e45,77e1b477297a48e285d34b21e8d30ab4b46bf90c,c483aa8394fc26e341666db66938b1d6fc2cbb8e,f2e39e5fed498b51ae914ed42ec51ae578330583,6aaa1c4d09249baae93d5bb7fba585be420c4fee,923b3652247aa17ac99dc45cb1cd0654fa08d976,950c7a12efa19d73bed10d377368a50664cae32c,69ce9e4187589335124077029496ee293d4e9189,ddb87396349fa4699153d5c4c7569c2e0186adfc,09e7a0c4a4fba18e3308e4f8cb4b8b5b52b41d20,298d65b1e4f3019af7fc9b905390b56736f5fd0e,2f3edf28f3a251bac2cf3b47b46b372faac71e8e:
[ruby/rdoc] Follow-up rubygems
Use test-unit assertions instead of minitest.
https://github.com/ruby/rdoc/commit/d6a6209d7f
---
test/rdoc/test_rdoc_rubygems_hook.rb | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
[ruby/rdoc] Add an alias for test-unit with older versions of
RubyGems
https://github.com/ruby/rdoc/commit/b8d68fdd87
---
test/rdoc/test_rdoc_rubygems_hook.rb | 3 +++
1 file changed, 3 insertions(+)
[ruby/rdoc] Rwrite test-case for rubygems_hook without Gem::TestCase
https://github.com/ruby/rdoc/commit/f8d1087ce5
---
test/rdoc/test_rdoc_rubygems_hook.rb | 38 +++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 18 deletions(-)
[ruby/rdoc] Update test/rdoc/test_rdoc_rubygems_hook.rb
https://github.com/ruby/rdoc/commit/fb264c4cc4
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
---
test/rdoc/test_rdoc_rubygems_hook.rb | 4 ++++
1 file changed, 4 insertions(+)
[ruby/rdoc] Use pend instead of skip
https://github.com/ruby/rdoc/commit/8460a36d84
---
test/rdoc/test_rdoc_rubygems_hook.rb | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Close UserInteraction for tests to fix leaked file descriptors
---
test/rdoc/test_rdoc_rubygems_hook.rb | 2 ++
1 file changed, 2 insertions(+)
Make temporary directory under the regular location
---
test/rdoc/test_rdoc_rubygems_hook.rb | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
Clear default configurations
Remove environment variables which can affect the default
configurations.
---
test/rdoc/test_rdoc_rubygems_hook.rb | 13 +++++++++++++
1 file changed, 13 insertions(+)
Clear rdoc options in the global rubygems configuration
---
test/rdoc/test_rdoc_rubygems_hook.rb | 2 ++
1 file changed, 2 insertions(+)
Dispose the global rubygems configuration wholely
---
test/rdoc/test_rdoc_rubygems_hook.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Discard RDOCOPT environment variable to make tests stable
---
test/rdoc/test_rdoc_rubygems_hook.rb | 1 +
1 file changed, 1 insertion(+)
[ruby/rdoc] Prefer omit to pend
These conditions are not temporary, rather platform dependent.
https://github.com/ruby/rdoc/pull/815#discussion_r654660411
https://github.com/ruby/rdoc/commit/92545fa250
---
test/rdoc/test_rdoc_rubygems_hook.rb | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
Bacause the GitHub Actions workflow for MinGW failed on 'where check'
|
|
[Actions] mingw - use ruby/setup-ruby@v1 again
---
.github/workflows/mingw.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
The `include`d set should be expanded values [ci skip]
While the `matrix` level values are expanded from the production
of each arrays, `include`d set should be consist from expanded
single values.
---
.github/workflows/mingw.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
Fix weird MinGW failure notifications
It's been "MinGW / Array", but it will be "MinGW MINGW64 / check" or
"MinGW UCRT64 / check" by this.
---
.github/workflows/mingw.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
e0a5c3d2b71dfad038d7562fdd33f02ffd79232d,7d55f1b6b6b9777a8bd665f6c5ed6a64c7fa2e9b:
[MinGW] Set job names
---
.github/workflows/mingw.yml | 1 +
1 file changed, 1 insertion(+)
[Actions] use windows-2022 for mingw
MSP-Greg/ruby-setup-ruby@win-ucrt-1
---
.github/workflows/mingw.yml | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
|
|
ec032e86faf9ac128ac51e3394d9b4001a374b38,8acb2a9b4069f55f71a80c747fc7c6bcb686abb7:
[MinGW] Clear prefix and move the directory to DESTDIR
Also the destination will be created at the installation.
---
.github/workflows/mingw.yml | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
[MinGW] Use autogen
---
.github/workflows/mingw.yml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
These failures are caused by the incompatibility in keyword argument
treatment in rspec-mocks.
I fix the expectations in the bundler/rubygems_integration_spec.rb.
These tests are not touched in the master branch.
It seems that the following patch also fix the failures.
But I believe the expectations in these tests are wrong. We should pass a Hash literal explicitly.
--- a/common.mk
+++ b/common.mk
@@ -1365,7 +1365,7 @@ yes-test-bundler-precheck: main
no-test-bundler-prepare: no-test-bundler-precheck
yes-test-bundler-prepare: yes-test-bundler-precheck
$(XRUBY) -C "$(srcdir)" bin/gem install --no-document \
- --install-dir .bundle --conservative "rspec:~> 3.8" "rake:~> 13.0" "parallel_tests:~> 2.29"
+ --install-dir .bundle --conservative "rspec-core:= 3.10.1" "rspec-expectations:= 3.10.1" "rspec-mocks:= 3.10.2" "rake:~> 13.0" "parallel_tests:~> 2.29"
RSPECOPTS =
BUNDLER_SPECS =
|