| Age | Commit message (Collapse) | Author |
|
1ab7c412d2e3880a7ad233c32e93961888f8145c, fd549b229b0822198ddc847703194263a2186ed1: [Backport #20515]"
This reverts commit dc4ca25e0a01e072ba3cf1fc47612aff72c980af.
|
|
1ab7c412d2e3880a7ad233c32e93961888f8145c, fd549b229b0822198ddc847703194263a2186ed1: [Backport #20515]
ci: Test whether GMP is working in compilers.yml (#10875)
Avoid reoccurence of [Bug #20515]
Requires https://github.com/ruby/ruby/pull/10876 since 18eaf0be905e3e251423b42d6f4e56b7cae1bc3b
bug: https://bugs.ruby-lang.org/issues/20515
RUBY_CHECK_HEADER didn't define HAVE_{header-file} (#10876)
--with-gmp is not working at all because HAVE_GMP_H
was missing since 18eaf0be90. [Bug #20515]
bug: https://bugs.ruby-lang.org/issues/20515
follow-up: https://bugs.ruby-lang.org/issues/20494
follow-up: 18eaf0be905e3e251423b42d6f4e56b7cae1bc3b
follow-up: https://github.com/ruby/ruby/pull/10805
test_bignum: defined? returns String (#10880)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
didn't verify the test is working properly due to mistaken auto-merge… [Bug #20515]
bug: https://bugs.ruby-lang.org/issues/20515
follow-up: 22e4eeda6561693367fc7a00b92b90f46b09cabd
follow-up: https://github.com/ruby/ruby/pull/10875
|
|
[Bug #20494] Search non-default directories for GMP
Co-Authored-by: lish82 (Hiroki Katagiri)
|
|
There's an exhaustive explanation of this in the linked redmine bug, but
the short version is as follows:
blocking_region_begin can spill callee-saved registers to the stack for
its own use. That means they're not saved to ec->machine by the call to
setjmp, since by that point they're already on the stack and new,
different values are in the real registers. ec->machine's end-of-stack
pointer is also bumped to accomodate this, BUT, after
blocking_region_begin returns, that points past the end of the stack!
As far as C is concerned, that's fine; the callee-saved registers are
restored when blocking_region_begin returns. But, if another thread
triggers GC, it is relying on finding references to Ruby objects by
walking the stack region pointed to by ec->machine.
If the C code in exec; subsequently does things that use that stack
memory, then the value will be overwritten and the GC might prematurely
collect something it shouldn't.
[Bug #20493]
|
|
[Bug #20180]
Backports #9624.
|
|
[Bug #20569]
`putobject RubyVM::FrozenCore`, is not serializable, we
have to use `putspecialobject VM_SPECIAL_OBJECT_VMCORE`.
|
|
README.ja.md: Remove Cirrus CI badge image. folloup for 15ee9c7c1b693f29b6b2dbe7b47488bf154e481c.
|
|
Cirrus CI has been removed [ci skip]
|
|
[DOC] README.md: Remove Cirrus CI badge image. (#8785)
We removed the `.cirrus.yml` at the commit
<01b5d1d2ff6ca91b2909dfa67295f59b53e6f065>.
Let's remove the badge image too.
|
|
YJIT: Add a cargo job for Arm64 and remove .cirrus.yml (#8679)
* YJIT: Add a cargo job for Arm64
* YJIT: Use command names as job names
They look more consistent with jobs that use the command name as a job
name, such as `make (check)`, `make (test-bundled-gems)`, etc.
* Remove .cirrus.yml
|
|
70ad58cb62b195ba86a5ef07a565b22b02a040ea: [Backport #20516]"
This reverts commit 519ac9c5fd7bfa75655231188ac1da9589563618.
|
|
9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516]"
This reverts commit 0de1ff12973ffc04bc9a8b0799e963922986d1eb.
|
|
9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516]
Clear runtime dependencies if default gems is specified.
The current build system uses runtime dependencies from only
`.bundle` directory. We shouldn't install runtime dependencies
from rubygems.org when `make test-bundled-gems` is invoked.
Fixed dependencies list format
Re-use strscan with ruby repo
|
|
[Backport #20516]
Update bundled_gems
|
|
This is a combination of main Ruby commit
https://github.com/ruby/ruby/commit/aefc98891c42024039f19ef45bdfe93fbc590b7c
and my PR correcting the regex https://github.com/ruby/ruby/pull/10819.
Upstream Ruby requests that changes to this test go to readline-ext repo
before being backported to 3.2 branch.
https://github.com/ruby/readline-ext/commit/868f873a78
|
|
* Fix `io_buffer_get_string` default length computation.
When an offset bigger than the size is given, the resulting length will be
computed incorrectly. Raise an argument error in this case.
* Validate all arguments.
|
|
- Fix IO::Buffer `read`/`write` to use a minimum length.
|
|
|
|
|
|
Alias init functions
The extension library has each initialization function named "Init_" +
basename. If multiple extensions have the same base name (such as
cgi/escape and erb/escape), the same function will be registered for
both names.
To fix this conflict, rename the initialization functions under sub
directories using using parent names, when statically linking.
|
|
[Bug #20421]
The bug was fixed in Ruby 3.3 via 9dcdffb8bf8a3654fd78bf1a58b30c8e13888a7a
|
|
Because `optflags` is pasted into the invocation line after `CC`, we were
building with -O1 unintentionally. You can see this in the configuration
summary: https://github.com/ruby/ruby/actions/runs/3933391169/jobs/6727044423#step:9:753
The check actually fails with -O2. To make it pass, upstream suggest
that we use the annocheck GCC plugin. Since it requires building from
source as the debian package for it isn't ready yet, punt on it for now
and use `--skip-gaps`.
Co-authored-by: Jun Aruga <jaruga@redhat.com>
|
|
without second.
This commit fixes the following errors in the tests.
Because the OpenSSL project changed the code to make the time string format
without second invalid. So, we drop the assertions.
```
1) Error: test_generalizedtime(OpenSSL::TestASN1): OpenSSL::ASN1::ASN1Error: generalizedtime is too short
/home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode'
/home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode_test'
/home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:433:in `test_generalizedtime'
430: OpenSSL::ASN1::GeneralizedTime.new(Time.utc(9999, 9, 8, 23, 43, 39))
431: # LibreSSL 3.6.0 requires the seconds element
432: return if libressl?
=> 433: decode_test B(%w{ 18 0D }) + "201612081934Z".b,
434: OpenSSL::ASN1::GeneralizedTime.new(Time.utc(2016, 12, 8, 19, 34, 0))
435: # not implemented
436: # decode_test B(%w{ 18 13 }) + "https://github.com/ruby/openssl/commit/201612081934+0930".b,
2) Error: test_utctime(OpenSSL::TestASN1): OpenSSL::ASN1::ASN1Error: utctime is too short
/home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode'
/home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode_test'
/home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:411:in `test_utctime'
408: end
409: # Seconds is omitted. LibreSSL 3.6.0 requires it
410: return if libressl?
=> 411: decode_test B(%w{ 17 0B }) + "1609082343Z".b,
412: OpenSSL::ASN1::UTCTime.new(Time.utc(2016, 9, 8, 23, 43, 0))
413: # not implemented
414: # decode_test B(%w{ 17 11 }) + "https://github.com/ruby/openssl/commit/500908234339+0930".b,
```
https://github.com/ruby/openssl/commit/2e826d5715
|
|
OpenSSL 3.3.0 9 Apr 2024 is also broken.
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
https://github.com/ruby/net-http/commit/ab525c956d
|
|
|
|
Fix Use-After-Free issue for Regexp
Co-authored-by: Isaac Peka <7493006+isaac-peka@users.noreply.github.com>
---
regexec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Fix handling of reg->dmin in Regex matching
---
regexec.c | 10 ++++++++++
1 file changed, 10 insertions(+)
|
|
Merged into master in 7ba2506232d3fa6c4e82e3708c0ff746a1a8de5c
[Bug #20050]
|
|
[Bug #20327] Do not count subsecond to calculate UTC offset
Assume that there will never be any time zones with UTC offsets that
are subseconds. Historically, UTC offset has only been used down to
the second.
---
test/ruby/test_time_tz.rb | 8 ++++++++
time.c | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
|
|
[Bug #19592] Fix ext/Setup support
After [1], using ext/Setup to link some, but not all extensions failed
during linking. I did not know about this option, and had assumed that
only `--with-static-linked-ext` builds can include statically linked
extensions.
Include the support code for statically linked extensions in all
configurations like before [1]. Initialize the table lazily to minimize
footprint on builds that have no statically linked extensions.
[1]: 790cf4b6d0475614afb127b416e87cfa39044d67 "Fix autoload status of
statically linked extensions"
---
load.c | 28 +++++++++++++++++-----------
vm.c | 3 ---
vm_core.h | 6 ------
3 files changed, 17 insertions(+), 20 deletions(-)
|
|
ac0163949a6ee678dfccec9f6e56422b91e5f0a9,01fd262e62076277a41af72ea13f20deb1b462a2: [Backport #20245]
Compile code without Symbol GC always
---
symbol.c | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)
Fix crash when checking symbol encoding
[Bug #20245]
We sometimes pass in a fake string to sym_check_asciionly. This can crash
if sym_check_asciionly raises because it creates a CFP with the fake
string as the receiver which will crash if GC tries to mark the CFP.
For example, the following script crashes:
GC.stress = true
Object.const_defined?("\xC3")
---
symbol.c | 17 ++++++++++-------
test/ruby/test_module.rb | 8 ++++++++
2 files changed, 18 insertions(+), 7 deletions(-)
|
|
Fix coderange of invalid_encoding_string.<<(ord)
Appending valid encoding character can change coderange from invalid to valid.
Example: "\x95".force_encoding('sjis')<<0x5C will be a valid string "\x{955C}"
---
string.c | 6 +++++-
test/ruby/test_string.rb | 3 +++
2 files changed, 8 insertions(+), 1 deletion(-)
|
|
Memory leak with TracePoint on bmethod
[Bug #20194]
When disabling the TracePoint on bmethod, the hooks list is not freed.
For example:
obj = Object.new
obj.define_singleton_method(:foo) {}
bmethod = obj.method(:foo)
tp = TracePoint.new(:return) {}
10.times do
100_000.times do
tp.enable(target: bmethod) {}
end
puts `ps -o rss= -p #{$$}`
end
Before:
18208
22832
26528
29728
34000
37776
40864
44400
47680
51504
After:
16688
17168
17168
17248
17696
17760
17824
17824
17856
17920
---
test/ruby/test_settracefunc.rb | 13 +++++++++++++
vm_trace.c | 1 +
2 files changed, 14 insertions(+)
|
|
Don't wait in `io_binwrite_string` if not necessary. (#9792)
---
io.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
|
|
|
|
Fix test session reuse but expire (#9824)
* OpenSSL 3.2.1 30 Jan 2024 is also broken
Import 45064610725ddd81a5ea3775da35aa46985bc789 from ruby_3_3 branch
tentatively.
---
test/net/http/test_https.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
[ruby/openssl] pkey/ec: constify
https://github.com/ruby/openssl/commit/6fb3499a7b
---
ext/openssl/ossl_pkey_ec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
Fix stack trace for rescued StopIteration
---
enumerator.c | 15 +++++++++++++--
test/ruby/test_enumerator.rb | 20 ++++++++++++++++++++
2 files changed, 33 insertions(+), 2 deletions(-)
|
|
[Backport #19973]"
This reverts commit 24dd529750c08b5603fb418a4f34998b9bf6c8f9.
|
|
[Bug #19973] Warn duplicated keyword arguments after keyword splat
---
parse.y | 11 +++++++----
test/ruby/test_syntax.rb | 6 ++++++
2 files changed, 13 insertions(+), 4 deletions(-)
|
|
665b4c5b2a31078d7db0173ad60daad0b463c1fd,642875e474b4e6a13770b1dbbc33d466ba5e0718,54b9b80b84760717aadb8bf67f638785ed895a58,361bce8d2c4c90a01eb3b7365a87dec0d93bb2b6: [Backport #19967]
[Bug #19967] Reset `LIBPATHENV` env after started
Not to affect other tools invoked as child processes.
---
common.mk | 3 ++-
template/Makefile.in | 3 +++
template/fake.rb.in | 3 +++
tool/fake.rb | 8 ++++++++
4 files changed, 16 insertions(+), 1 deletion(-)
[Bug #19967] Revert "configure.ac: LIBPATHENV on macOS"
This reverts commit 1961c786aab243b3eb60e7238224e87975d88056. These
environment variables should no longer propagate to child processes.
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Bug #19967] Delete real path
---
tool/fake.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[Bug #19967] Ignore library before build
---
tool/fake.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Skip the test_interrupt_in_other_thread test failing on Travis arm32.
The failing test is not a new issue. It had already been skipped in .travis.yml
before updating .travis.yml.
https://github.com/ruby/ruby/blob/7b05cb8dbbd637910757f402e64da3908b4bb809/.travis.yml#L99-L101
Note that RUBY_PLATFORM is "armv8l-linux-eabihf" on Travis arm32 pipeline.
And the readline was deleted in both master and ruby_3_3 branches.
https://github.com/ruby/ruby/commit/59fd67fc3d405e529e038172e769ff20a8fb5535
So, we only need this commit on ruby_3_2 and older Ruby version branches.
|
|
Update the .travis.yml file copied from the latest ruby_3_3 branch
<5124f9ac7513eb590c37717337c430cb93caa151>.
|
|
|
|
Fix crash in tracing object allocations
ObjectSpace.trace_object_allocations_start could crash since it adds a
TracePoint for when objects are freed. However, TracePoint could crash
since it modifies st tables while inside the GC that is trying to free
the object. This could cause a memory allocation to happen which would
crash if it triggers another GC.
See a crash log: http://ci.rvm.jp/results/trunk@ruby-sp1/4373707
---
ext/objspace/depend | 1 +
ext/objspace/object_tracing.c | 7 +++++++
gc.h | 4 ++--
3 files changed, 10 insertions(+), 2 deletions(-)
|
|
RJIT: Do nothing on jit_cont_free
if cont is NULL.
---
cont.c | 2 ++
1 file changed, 2 insertions(+)
|
|
Fix memory overread in registry.rb
The terminator is not actually getting filled in; we're simply passing
(two) bytes of empty memory as the NUL terminator. This can lead to
garbage characters getting written to registry values.
Fix this by explicitly putting a WCHAR_NUL character into the string to
be sent to the registry API, like we do in the MULTI_SZ case.
[Bug #20096]
---
ext/win32/lib/win32/registry.rb | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
|
|
Fix memory leak in regexp grapheme clusters
[Bug #20161]
The cc->mbuf gets overwritten, so we need to free it to not leak memory.
For example:
str = "hello world".encode(Encoding::UTF_32LE)
10.times do
1_000.times do
str.grapheme_clusters
end
puts `ps -o rss= -p #{$$}`
end
Before:
15536
15760
15920
16144
16304
16480
16640
16784
17008
17280
After:
15584
15584
15760
15824
15888
15888
15888
15888
16048
16112
---
regparse.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
Fix memory leak in grapheme clusters
[Bug #20150]
String#grapheme_cluters and String#each_grapheme_cluster leaks memory
because if the string is not UTF-8, then the created regex will not
be freed.
For example:
str = "hello world".encode(Encoding::UTF_32LE)
10.times do
1_000.times do
str.grapheme_clusters
end
puts `ps -o rss= -p #{$$}`
end
Before:
26000
42256
59008
75792
92528
109232
125936
142672
159392
176160
After:
9264
9504
9808
10000
10128
10224
10352
10544
10704
10896
---
string.c | 98 +++++++++++++++++++++++++++++++-----------------
test/ruby/test_string.rb | 11 ++++++
2 files changed, 75 insertions(+), 34 deletions(-)
|