92815 Commits

Author SHA1 Message Date
Burdette Lamar
64d4e7727e
[DOC] Tweaks for String#delete_suffix! (#13872) 2025-07-14 10:05:00 -04:00
BurdetteLamar
07a3ab53a2 [DOC] Tweaks for String#delete_suffix 2025-07-14 09:58:35 -04:00
BurdetteLamar
55dd2022fd [DOC] Tweaks for String#delete_prefix! 2025-07-14 09:58:12 -04:00
BurdetteLamar
d38bb4ad1c [DOC] Tweaks for String#delete_prefix 2025-07-14 09:57:19 -04:00
Nobuyoshi Nakada
8f54b5bb93 [ruby/uri] [DOC] Update old use of URI::Parser
https://github.com/ruby/uri/commit/d2a79c6343
2025-07-14 05:11:58 +00:00
Nobuyoshi Nakada
d147091418 [ruby/uri] [DOC] Document private visibility too
For the references to URI::RFC2396_Parser private methods.

https://github.com/ruby/uri/commit/372fbb455d
2025-07-14 05:11:58 +00:00
Nobuyoshi Nakada
1a03270a7e [ruby/uri] [DOC] Fix references
These are instance methods, not class methods.  And `URI::Parser` was
moved to URI::RFC2396_Parser at [r46491]

[r46491]: https://github.com/ruby/ruby/commit/bb83f32dc3e0

https://github.com/ruby/uri/commit/452d74390c
2025-07-14 05:11:58 +00:00
David Rodríguez
7a03a02bee
[rubygems/rubygems] Fix more warnings when running old Bundler with latest RubyGems
Also fix platform warnings when Bundler's entrypoint is bundler's
binstub.

https://github.com/rubygems/rubygems/commit/4b1df58403
2025-07-14 11:52:14 +09:00
David Rodríguez
c3d41492e1
[rubygems/rubygems] Avoid more warnings when using RubyGems with old Bundler
We were only avoiding them when the RUBYGEMS_GEMDEPS variable is used.
Avoid the warnings in general, whenever the entrypoint to Bundler is
`require`.

https://github.com/rubygems/rubygems/commit/8683faef36
2025-07-14 11:52:14 +09:00
David Rodríguez
a93c684077
[rubygems/rubygems] Change helper to load only Bundler extensions to RubyGems
We'll want to reuse this helper in other situations where we don't want
all Bundler loaded.

https://github.com/rubygems/rubygems/commit/9e7018b0a1
2025-07-14 11:52:14 +09:00
David Rodríguez
1c48aa6f4a
[rubygems/rubygems] Move loading Bundler without platform warnings to a method
https://github.com/rubygems/rubygems/commit/e068f0649a
2025-07-14 11:52:14 +09:00
David Rodríguez
4651d235db
[rubygems/rubygems] No need to detect ancient binstubs either
https://github.com/rubygems/rubygems/commit/346d491a11
2025-07-14 11:52:14 +09:00
David Rodríguez
15751af90b
[rubygems/rubygems] Improve some heredoc indentations
https://github.com/rubygems/rubygems/commit/6ee3a33048
2025-07-14 11:52:13 +09:00
David Rodríguez
f1cbd58acc
[rubygems/rubygems] Stop generating binstubs with support for RubyGems before 2.6.2
RubyGems generated binstubs still provide support for this ancient
version. This makes no sense since we prevent downgrades to such old
versions.

https://github.com/rubygems/rubygems/commit/089cdc3b77
2025-07-14 11:52:13 +09:00
David Rodríguez
51e890030f
[rubygems/rubygems] Reset tmp directories before spec suite
If you abort running test suite with a quick double Ctrl-C, tmp files
will be left around, and they will interfere with the next test run.

To avoid this, make sure to clear them once at the beginning of the test
suite.

### Before

```
$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
.............................................................................................^C^C

Finished in 19.45 seconds (files took 0.42722 seconds to load)
94 examples, 0 failures

(... turbo tests backtrace ...)

$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
.F....F....F...F......^C

Failures:

(... failures' details ...)
```

### After

```
$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
.................................................................................^C^C

Finished in 18.18 seconds (files took 0.4383 seconds to load)
82 examples, 0 failures

(... turbo tests backtrace ...)

$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
................................................................................^C^C

Finished in 8.79 seconds (files took 0.45187 seconds to load)
80 examples, 0 failures

(... turbo tests backtrace ...)
```

https://github.com/rubygems/rubygems/commit/6767a52711
2025-07-14 11:52:13 +09:00
David Rodríguez
7dc284189a
[rubygems/rubygems] Load RubyGems extensions in the first place
This is not currently causing any issues, but I think the most correct
thing to do is that Bundler loads the extensions to RubyGems in the
first place, so that they are available from the beginning.

https://github.com/rubygems/rubygems/commit/88faa5c7bb
2025-07-14 11:52:13 +09:00
Nobuyoshi Nakada
55baf026ac
Fix an indent [ci skip] 2025-07-14 11:19:10 +09:00
Nobuyoshi Nakada
f03cc0b514 [ruby/uri] Repeat matching to reduce deviations
https://github.com/ruby/uri/commit/fa49e5b8ae
2025-07-13 04:37:15 +00:00
Nobuyoshi Nakada
9c166d26b2 [ruby/uri] Test in exponential scale with rehearsal
https://github.com/ruby/uri/commit/be35e0b4d8
2025-07-13 04:37:15 +00:00
BurdetteLamar
b438915f0a [DOC] TWeaks for String#delete! 2025-07-12 14:22:57 -04:00
BurdetteLamar
e1bc92d00b [DOC] Tweaks for String#delete 2025-07-12 13:08:14 -04:00
Burdette Lamar
b0db93c002
[DOC] Tweaks for String#count 2025-07-12 10:55:33 -04:00
Nobuyoshi Nakada
9e7a985c6d
[Bug #21509] [DOC] Correct IO#wait description 2025-07-12 22:34:52 +09:00
Nobuyoshi Nakada
dbf7a0c713 [ruby/io-wait] [Bug #21509] [DOC] Correct IO#wait description
https://github.com/ruby/io-wait/commit/c65af887a1
2025-07-12 13:32:33 +00:00
Kazuki Yamaguchi
753e3b7ae3 [ruby/openssl] asn1: align UTCTime year range with RFC 5280
ASN.1 UTCTime uses two-digit years. While X.680 does not specify how to
map them as far as I can tell, X.509/PKIX uses this type to represent
dates between year 1950-2049.

OpenSSL::ASN1.decode has used 1969-2068 since the initial
implementation. Given that ASN1::UTCTime#to_der relies on OpenSSL
ASN1_UTCTIME type, which assumes the 1950-2049 range, this was likely
unintentional.

Use the range 1950-2049 consistently, and fix decoding of X.509
certificates with dates in 1950-1968.

https://github.com/ruby/openssl/commit/b8b38e1438
2025-07-12 13:25:24 +00:00
Nobuyoshi Nakada
cf7b871a94 [ruby/uri] Improve performance of URI::MailTo::EMAIL_REGEXP
Fix the performance regression at #172 for valid emails.

``` yml
prelude: |
  require 'uri/mailto'
  n = 1000
  re = URI::MailTo::EMAIL_REGEXP
benchmark:
  n.t..t.: re.match?("n.t..t.@docomo.ne.jp")
  example: re.match?("example@example.info")
```

|         |released| 788274b| c5974f0|    this|
|:--------|-------:|-------:|-------:|-------:|
|n.t..t.  |  3.795M|  4.864M|  4.993M|  8.739M|
|         |       -|   1.28x|   1.32x|   2.30x|
|example  |  3.911M|  3.740M|  2.838M|  3.880M|
|         |   1.38x|   1.32x|       -|   1.37x|

https://github.com/ruby/uri/commit/7363a134ac
2025-07-12 10:32:48 +00:00
Jeremy Evans
22b81b5bf5 [ruby/uri] Do not allow empty host names, as they are not allowed by RFC 3986
Pointed out by John Hawthorn.

Fixes [Bug #20686]

https://github.com/ruby/uri/commit/c0cfa04a66
2025-07-12 07:07:39 +00:00
Nobuyoshi Nakada
1add45e2a6 [ruby/uri] Prohibit successive dots in email
https://github.com/ruby/uri/commit/32335923bf
2025-07-12 07:07:05 +00:00
Nobuyoshi Nakada
859d74279a [ruby/uri] More tests for check_to
https://github.com/ruby/uri/commit/b1b5f9a476
2025-07-12 07:07:05 +00:00
Nikita Levchuk
c97eba9bcd [ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): use assertions surrounding the local part instead of a character class
https://github.com/ruby/uri/commit/2d7d2d9988
2025-07-12 03:31:54 +00:00
Nikita Levchuk
0685e8caf9 [ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): the local part should not contain leading or trailing dots
https://github.com/ruby/uri/commit/618e2bb640
2025-07-12 03:31:53 +00:00
Nobuyoshi Nakada
f1764623db [ruby/uri] Make URI::regexp schemes case sensitive
(https://github.com/ruby/uri/pull/38)

https://github.com/ruby/uri/commit/0c2b6468fa
2025-07-12 03:24:15 +00:00
Nobuyoshi Nakada
c47a92b63d [ruby/uri] Fix the message for unexpected argument
Use just `self` instead of `self.class`, in `URI::Generic.build`.
Since this is a class method, `self.class` is always `Class` even in
inherited sub classes, and does not have `#component` method.

https://github.com/ruby/uri/commit/6f44d3d40e
2025-07-12 03:05:25 +00:00
Takashi Kokubun
3ec46aad37
ZJIT: Mark objects baked in JIT code (#13862) 2025-07-11 13:24:08 -07:00
Peter Zhu
c592cbd616 [DOC] Fix links to RDoc in documentation_guide.md
Since RDoc's documentation is built separately now, the references will
no longer work.
2025-07-11 14:07:10 -04:00
Peter Zhu
482eeb7da6 [DOC] Remove doc/rdoc/markup_reference.rb
RDoc has been moved from a default gem to a bundled gem, which means that
the source code is no longer in the ruby/ruby repository. We should also
remove doc/rdoc/markup_reference.rb.
2025-07-11 14:07:10 -04:00
John Hawthorn
1582bd9382 Add Timeout message when bootstraptest times out 2025-07-11 10:20:50 -07:00
Max Bernstein
b0b1712b52
ZJIT: Use Vec instead of HashMap for profiling (#13809)
This is notably faster: no need to hash indices.

Before:

```
plum% samply record ~/.rubies/ruby-zjit/bin/ruby --zjit benchmarks/getivar.rb
ruby 3.5.0dev (2025-07-10T14:40:49Z master 51252ef8d7) +ZJIT dev +PRISM [arm64-darwin24]
itr:   time
 #1: 5311ms
 #2:   49ms
 #3:   49ms
 #4:   48ms
```

After:

```
plum% samply record ~/.rubies/ruby-zjit/bin/ruby --zjit benchmarks/getivar.rb
ruby 3.5.0dev (2025-07-10T15:09:06Z mb-benchmark-compile 42ffd3c1ee) +ZJIT dev +PRISM [arm64-darwin24]
itr:   time
 #1: 1332ms
 #2:   49ms
 #3:   48ms
 #4:   48ms
```
2025-07-11 16:55:06 +00:00
Takashi Kokubun
b760afe2b7
ZJIT: Improve asm comments for side exits (#13853)
* ZJIT: Improve asm comments for side exits

* Use GuardType(Type) and GuardBitEquals(VALUE)
2025-07-11 09:49:25 -07:00
Stan Lo
77de6b4eb1 [DOC] Add ZJIT glossary table 2025-07-11 12:41:10 -04:00
Stan Lo
c0b9480bbc [DOC] Add a few new terms to Ruby glossary 2025-07-11 12:41:10 -04:00
Max Bernstein
bd162dc0cb ZJIT: Run validation between compiler passes in debug mode 2025-07-11 12:30:46 -04:00
Max Bernstein
e53bfe217e ZJIT: Fix missing find!() for SetIvar 2025-07-11 12:30:46 -04:00
Max Bernstein
0d7d87b40f ZJIT: Gracefully handle iseq_name with NULL ISEQ 2025-07-11 12:30:46 -04:00
Max Bernstein
e3456d6180 ZJIT: Don't stringify Function in ValidationError
That's not the validator's responsibility; the caller can choose to
later.
2025-07-11 12:30:46 -04:00
Nobuyoshi Nakada
12d44dbc49
Use an invariant condition
Cannot rule out the possibility that `crr->silent` is modified during
`func`.
2025-07-11 19:45:37 +09:00
Nobuyoshi Nakada
9760ec6f57
[DOC] Move document only source to doc 2025-07-11 17:32:17 +09:00
Jeremy Evans
0b23a8db60 Update dependencies for addition of set.h to public headers 2025-07-11 15:24:23 +09:00
Jeremy Evans
2ab38691a2 Add Set C-API
This should be a minimal C-API needed to deal with Set objects. It
supports creating the sets, checking whether an element is the set,
adding and removing elements, iterating over the elements, clearing
a set, and returning the size of the set.

Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>
2025-07-11 15:24:23 +09:00
Jeremy Evans
08d4f7893e Rename some set_* functions to set_table_*
These functions conflict with the planned C-API functions. Since they
deal with the underlying set_table pointers and not Set instances,
this seems like a more accurate name as well.
2025-07-11 15:24:23 +09:00