90212 Commits

Author SHA1 Message Date
Peter Zhu
b74077c19e [ruby/mmtk] Set Immix as the default plan
https://github.com/ruby/mmtk/commit/e52b973611
2025-02-10 20:37:10 +00:00
Peter Zhu
50469809b8 [ruby/mmtk] Use RUBY_TEST_TIMEOUT_SCALE for tests
RUBY_TEST_TIMEOUT_SCALE is set for debug builds because they are slower
to run. We should respect this environment variable in MMTk tests too.

https://github.com/ruby/mmtk/commit/0a66c518bf
2025-02-10 19:33:04 +00:00
Burdette Lamar
b4bf3ed130
[DOC] Adds section "Hash Inclusion" (#12634) 2025-02-10 14:32:25 -05:00
Burdette Lamar
7fd589c7fc
[DOC] Tweaks for Hash#assoc (#12726) 2025-02-10 14:31:41 -05:00
Burdette Lamar
57b9b92193
[DOC] Tweaks for Hash#clear (#12727) 2025-02-10 14:31:04 -05:00
Burdette Lamar
35afc0d6e1
[DOC] Tweaks for Hash#any? 2025-02-10 14:23:42 -05:00
Daisuke Aritomo
c7e35e5534 gc.c: Remove no-op code
In this context, `vm_locked` is a argument variable, and is not used
later in the function.
2025-02-10 14:21:10 -05:00
Peter Zhu
3fb455adab Move global symbol reference updating to rb_sym_global_symbols_update_references 2025-02-10 08:47:44 -05:00
Peter Zhu
8d0416ae0b Make ruby_global_symbols movable
The `ids` array and `dsymbol_fstr_hash` were pinned because they were
kept alive by rb_vm_register_global_object. This prevented the GC from
moving them even though there were reference updating code.

This commit changes it to be marked movable by marking it as a root object.
2025-02-10 08:47:44 -05:00
Nobuyoshi Nakada
397bb7e42c
Do not overwrite GEM_PATH if already set
The bundler's test sets the `GEM_PATH` and `GEM_HOME` environment
variables by itself.  Overwriting them results in tons of errors.
2025-02-10 18:04:25 +09:00
Naoto Ono
cd27c580fa
Launchable: Add a workflow name as a flavor (#12720)
Adding a workflow name would be easier to understand the connection between a test session and GitHub workflow.
2025-02-10 16:55:02 +09:00
David Rodríguez
135479a58d [rubygems/rubygems] Allocate strings from Requirement match only once
https://github.com/rubygems/rubygems/commit/c65b8644e6

Co-authored-by:  Samuel Giddins <segiddins@segiddins.me>
2025-02-10 09:27:18 +09:00
Peter Zhu
5232c86ffc Use the default MMTk plan
The default MMTk plan is no longer MarkSweep, so we shouldn't force it
to be MarkSweep.
2025-02-09 17:11:30 -05:00
Peter Zhu
5fcbf3e8ad Remove MMTk configuration for debug builds
We are no longer running debug builds of MMTk here, so we don't need this
configuration anymore.
2025-02-09 17:11:30 -05:00
Kazuki Yamaguchi
7d10c22a86 [ruby/openssl] Revert "Skip a new test when old OpenSSL"
This reverts commit https://github.com/ruby/openssl/commit/8c96a69b0d47.

This is no longer necessary since we do not support OpenSSL 1.1.0
anymore.

https://github.com/ruby/openssl/commit/4987688cb4
2025-02-09 10:26:07 +00:00
Kazuki Yamaguchi
581dbcec79 [ruby/openssl] ssl: prefer SSLContext#max_version= in tests
Avoid using the deprecated OpenSSL::SSL::SSLContext#ssl_version= outside
the tests specifically written for it.

https://github.com/ruby/openssl/commit/93a564dec2
2025-02-09 10:26:07 +00:00
Kazuki Yamaguchi
64a98decf2 [ruby/openssl] ssl: fix misuse of assert_handshake_error in tests
assert_handshake_error is useful for checking handshake failures
triggered by the peer, as the underlying socket may be closed
prematurely, leading to different exceptions depending on the platform
and timing.

However, when the local end aborts a handshake, the only possible
exception is OpenSSL::SSL::SSLError. Use stricter assertions in such
cases.

https://github.com/ruby/openssl/commit/637ba65818
2025-02-09 10:26:07 +00:00
Kazuki Yamaguchi
5791c93f8e [ruby/openssl] ssl: refactor test case test_verify_mode_server_cert
Minimize the amount of code inside the assert_raise block to avoid
accidentally catching a wrong exception.

https://github.com/ruby/openssl/commit/5089b2d311
2025-02-09 10:26:06 +00:00
Kazuki Yamaguchi
a8b36314ec [ruby/openssl] ssl: fix test case test_npn_advertised_protocol_too_long
The list of NPN protocols is validated in SSLContext#setup.

The assert_handshake_error is misleading. The client is unable to start
a handshake at all because the server is not running.

https://github.com/ruby/openssl/commit/e8db6ffd9e
2025-02-09 10:26:06 +00:00
Kazuki Yamaguchi
1f4fc2e608 [ruby/openssl] ssl: remove start_server_version from tests
Use start_server instead of start_server_version.

start_server_version is a wrapper around start_server that forces the
server to a specific protocol version using the now-deprecated method
SSLSocket#ssl_version=, but it does more than that. The slightly
different method signature and default values are confusing. Let's
use start_server directly.

https://github.com/ruby/openssl/commit/22ed31d77e
2025-02-09 10:26:06 +00:00
Kazuki Yamaguchi
237c71fc29 [ruby/openssl] ssl: remove start_immediately kwarg from test helper start_server
The keyword argument is no longer used by any test cases.

https://github.com/ruby/openssl/commit/2f31605d47
2025-02-09 10:26:05 +00:00
git
b4865b14cd Update bundled gems list as of 2025-02-07 2025-02-08 06:59:12 +00:00
Peter Zhu
e12f5259e4 Add timeout to compilers workflow
The default timeout on GitHub Actions is 360 minutes, the job usually takes
around 20 to 30 minutes to complete. This commit sets the timeout to be
40 minutes so jobs that hang will timeout faster.
2025-02-07 15:44:54 -05:00
Andrew Konchin
5454188f6b Retry on IO::EAGAINWaitReadable when a closed socket is still not available for reading 2025-02-07 21:13:14 +01:00
Hiroshi SHIBATA
7178593558
Simplified to find gemspecs for bundled gems (#12709)
* Simplified to find gemspecs for bundled gems

Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>
2025-02-07 18:40:07 +09:00
git
8dbbc79e8b Update bundled gems list as of 2025-02-06 2025-02-07 07:00:32 +00:00
Hiroshi SHIBATA
e776efdc70 Support git ls-files ....split style for file list of gemspec 2025-02-07 11:47:48 +09:00
卜部昌平
2ed1962cbe [CI] add CI matrix for clang-21
see also https://github.com/llvm/llvm-project/pull/124870
2025-02-07 08:49:26 +09:00
Nobuyoshi Nakada
9baa0f8c8c
Enable bundled gems in ruby-runner 2025-02-06 23:12:03 +09:00
Jun Aruga
adbf9c5b36 [ruby/openssl] test_ssl.rb: Test respecting system default min.
https://github.com/ruby/openssl/commit/7de5ff583a
2025-02-06 14:10:34 +00:00
Hiroshi SHIBATA
ec8e3e376c
Only modified LOAD_PATH for RJIT with fiddle provided by bundled gems 2025-02-06 16:44:23 +09:00
Étienne Barrié
b4bfbcaddc
Optimize Symbol generation in strict mode
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
2025-02-06 16:02:03 +09:00
Étienne Barrié
f865148e19
Fix JSON::Coder to call as_json proc for NaN and Infinity
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
2025-02-06 16:02:03 +09:00
yuuji.yaginuma
dd1fe03b8a [rubygems/rubygems] Add irb to a Gemfile for a newly created gem
I think we need this to silence the following warning when running
`bin/console` with Ruby 3.4

```
./bin/console:10: warning: irb was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add irb to your Gemfile or gemspec to silence this warning.
```

https://github.com/rubygems/rubygems/commit/c46230c856
2025-02-06 15:58:01 +09:00
David Rodríguez
ac093f4350 [rubygems/rubygems] Auto-heal empty installation directory
https://github.com/rubygems/rubygems/commit/9720a9b980
2025-02-06 15:58:00 +09:00
David Rodríguez
78ef59acf7 [rubygems/rubygems] Refine messages about gem installations being missing
The previous wording was too specific, there may be situations when the
gem has actually never installed (so never deleted either).

https://github.com/rubygems/rubygems/commit/e4a0d71fbe
2025-02-06 15:57:59 +09:00
David Rodríguez
385dc5dc16 [rubygems/rubygems] Don't potentially load remote metadata when expanding dependencies
For installed specifications, we can ignore any constraints they may
have, since we know they match the current version of Ruby or otherwise
would not be installed.

For remote specifications, we already resolve optimistically without
metadata and retry force-fetching it if necessary.

If in the future we support resolving against a Ruby version different
that the one being run, we'll probably need to change this but now it's
unnecessary and saves some memory.

### Before

Total allocated: 262.99 MB (3177437 objects)
Total retained:  115.91 MB (1297821 objects)

### After

Total allocated: 259.89 MB (3134199 objects)
Total retained:  115.05 MB (1283779 objects)

https://github.com/rubygems/rubygems/commit/201c1863fc
2025-02-06 15:57:57 +09:00
David Rodríguez
a1716e2365 [rubygems/rubygems] Move expanding dependencies with metadata to specification classes
https://github.com/rubygems/rubygems/commit/7f921aa46e
2025-02-06 15:57:57 +09:00
David Rodríguez
24f5e3010f [rubygems/rubygems] Metadata dependencies can be Gem::Dependency instances
They use less memory that way.

When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, I get the following results:

### Before

Total allocated: 265.06 MB (3186053 objects)
Total retained:  116.98 MB (1302280 objects)

### After

Total allocated: 262.99 MB (3177437 objects)
Total retained:  115.91 MB (1297821 objects)

https://github.com/rubygems/rubygems/commit/a4ef9c5f56
2025-02-06 15:57:56 +09:00
David Rodríguez
7fed6c887d [rubygems/rubygems] Remove unnecessary remapping of dependencies
Sometimes we'll resolve using bare `Gem::Dependency` instances rather
than `Bundler::Dependency` instances, which is fine, simpler, and saves
some memory.

When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, I get the following results:

### Before

Total allocated: 277.48 MB (3384318 objects)
Total retained:  117.53 MB (1338657 objects)

### After

Total allocated: 265.06 MB (3186053 objects)
Total retained:  116.98 MB (1302280 objects)

https://github.com/rubygems/rubygems/commit/c6dc2966c5
2025-02-06 15:57:55 +09:00
David Rodríguez
4c0cf2deed [rubygems/rubygems] Make Bundler::Dependency more memory efficient
When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, I get the following results:

### Before

Total allocated: 288.21 MB (3498515 objects)
Total retained:  119.10 MB (1357976 objects)

### After

Total allocated: 277.44 MB (3383182 objects)
Total retained:  117.55 MB (1338622 objects)

https://github.com/rubygems/rubygems/commit/2d3d6e5015
2025-02-06 15:57:55 +09:00
David Rodríguez
8e7883011a [rubygems/rubygems] Lazily parse dependencies in EndpointSpecification
Since not every dependency gets referenced.

When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, I get the following results:

### Before

Total allocated: 295.01 MB (3624335 objects)
Total retained:  119.31 MB (1364474 objects)

### After
Total allocated: 288.21 MB (3498515 objects)
Total retained:  119.10 MB (1357976 objects)

https://github.com/rubygems/rubygems/commit/61eee39d81

Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
2025-02-06 15:57:54 +09:00
David Rodríguez
c83370671b Improve bundled gems warning messages
Currently evenn if the require actually fails, they suggest that the
file was actually loaded, which is confusing. I reworded them to reduce
this confusion.
2025-02-06 13:07:55 +09:00
David Rodríguez
03a0c4e079 Rename "gem" to "name"
The name "gem" could be confused with RubyGems activation method.
2025-02-06 13:07:55 +09:00
David Rodríguez
433f4e30b3 Simplify bundled gems warnings implementation
Most of the stuff is not actually necessary.
2025-02-06 13:07:55 +09:00
David Rodríguez
68bb6ceeaf Remove unnecessary SINCE_FAST_PATH constant
If anything, I think this may be causing some false positives.
2025-02-06 13:07:55 +09:00
Daisuke Aritomo
15b77a09a7 [DOC] ractor.md: Remove link to Complex class 2025-02-06 09:49:23 +09:00
Naoto Ono
6ca8bc8562
Launchable: Fix broken links by passing GITHUB_SERVER_URL (#12704)
@peterzhu2118 mentioned that "View workflow run" button is broken in Launchable. It's because invalid URL is sent from compilers/actions.yaml. Launchable CLI builds URL based on the environment variables. In those variables, GITHUB_SERVER_URL is not set in this case.

Hence, I set GITHUB_SERVER_URL in compilers/actions.yaml in this PR.
2025-02-06 08:57:46 +09:00
Hiroshi SHIBATA
141f2924ee The test of net-smtp-0.5.1 is working with Windows platform now 2025-02-05 17:15:30 +09:00
git
7796db2493 Update bundled gems list at ae026ff65b85cd4ebea891825e9ced [ci skip] 2025-02-05 06:20:59 +00:00