| Age | Commit message (Collapse) | Author |
|
|
|
v0.8.0 is mistake of release workflow. This version is same as v0.7.0
https://github.com/ruby/optparse/commit/9a467d10d4
|
|
|
|
https://github.com/ruby/optparse/commit/a394ca4878
|
|
https://github.com/ruby/optparse/commit/94de48b47e
|
|
|
|
https://github.com/ruby/net-http/commit/ec9c70a6fb
|
|
|
|
https://github.com/ruby/uri/commit/c41903b3e4
|
|
https://github.com/ruby/uri/commit/1c6e81b721
|
|
Currently, some methods' behavior(e.g. `URI.parse`) don't change
when switching a parser. This is because some methods use
`DEFAULT_PARSER`, but `parser=` doesn't change `DEFAULT_PARSER`.
This PR introduces a constant to keep a parser's instance and
change it when switching a parser. Also, change to use it in
methods.
https://github.com/ruby/uri/commit/aded210709
|
|
URI::RFC2396_PARSER.escape
https://github.com/ruby/uri/commit/72e7d6b364
|
|
from that
https://github.com/ruby/uri/commit/1fc4f0496a
|
|
|
|
|
|
https://github.com/ruby/English/commit/c921886aaf
|
|
https://github.com/ruby/mmtk/commit/9876d8f0a1
|
|
|
|
|
|
instead of repository_dispatch.
Only that workflow reacts to repository_dispatch, so just using
workflow_dispatch should be enough. We want to use workflow_dispatch for
manual triggers, and I don't want to maintain two different dispatch
methods in the workflow.
|
|
These count caller-side features we don't support. But because we side
exit when we see them through unhandled_call_type(), these new counters
currently don't trigger.
|
|
`send_fallback_fancy_call_feature`
In cases we fall back when the callee has an unsupported signature, it
was a little inaccurate to use `send_fallback_send_not_optimized_method_type`.
We do support the method type in other situations.
Add a new `send_fallback_fancy_call_feature` for these situations. Also,
`send_fallback_bmethod_non_iseq_proc` so we can stop using
`not_optimized_method_type` completely for bmethods.
Add accompanying `fancy_arg_pass_*` counters. These don't sum to the number
of unoptimized calls that run, but establishes the level of support the
optimizer provides for a given workload.
|
|
|
|
Before, the 50% load factor was not working correctly with the new capacity
calculation on resize and too many resizes were seen.
Before this change
------------------
Example:
old_capacity = 32
old_size = 16
deleted_entries = 2 (almost all live)
That means we have:
expected_size = 14
We'll see that 64 > 14 * 4
We'll end up using 32 as the new capacity (same as old) even though that only
leaves us two elements free before we'd have to rebuild again.
Co-authored-by: John Hawthorn <john.hawthorn@shopify.com>
|
|
|
|
|
|
We can see send/block call/struct aref/... e.g. on lobsters:
```
Top-9 not optimized method types for send_without_block (100.0% of total 3,133,812):
iseq: 2,004,557 (64.0%)
optimized_struct_aref: 496,232 (15.8%)
alias: 268,579 ( 8.6%)
optimized_call: 224,883 ( 7.2%)
optimized_send: 120,531 ( 3.8%)
bmethod: 12,011 ( 0.4%)
null: 4,636 ( 0.1%)
optimized_block_call: 1,930 ( 0.1%)
cfunc: 453 ( 0.0%)
```
railsbench:
```
Top-8 not optimized method types for send_without_block (100.0% of total 5,735,608):
iseq: 2,854,551 (49.8%)
optimized_struct_aref: 871,459 (15.2%)
optimized_call: 862,185 (15.0%)
alias: 588,486 (10.3%)
optimized_send: 482,171 ( 8.4%)
null: 39,942 ( 0.7%)
bmethod: 36,784 ( 0.6%)
cfunc: 30 ( 0.0%)
```
shipit:
```
Top-10 not optimized method types for send_without_block (100.0% of total 4,844,304):
iseq: 2,881,206 (59.5%)
optimized_struct_aref: 1,158,935 (23.9%)
optimized_call: 472,898 ( 9.8%)
alias: 208,010 ( 4.3%)
optimized_send: 55,479 ( 1.1%)
null: 47,273 ( 1.0%)
bmethod: 12,608 ( 0.3%)
optimized_block_call: 7,860 ( 0.2%)
cfunc: 31 ( 0.0%)
optimized_struct_aset: 4 ( 0.0%)
```
|
|
|
|
Right now we have a subtle type system bug around `types::Class`. Until
that is resolved, stop marking `Kernel#class` as returning
`types::Class`, which fixes Rubocop.
Re: https://github.com/Shopify/ruby/issues/850
|
|
It is already declared as:
> This behavior is slated to be removed in Ruby 4.0
|
|
|
|
In the case of attribute writes, there are use cases where you want
to know the location of the = sign. (Internally we actually need
this for translation to the writequark AST.)
https://github.com/ruby/prism/commit/bfc798a7ec
|
|
Followup to https://github.com/ruby/prism/pull/2213
Before:
```sh
$ ruby -ve "puts 42.~@"
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/prism/commit/dbd83256b1) +PRISM [x86_64-linux]
-e:1:in '<main>': undefined method '~@' for an instance of Integer (NoMethodError)
Did you mean? ~
```
After (matches parse.y):
```sh
$ ./miniruby -ve "puts 42.~@"
ruby 3.5.0dev (2025-10-16T03:40:45Z master https://github.com/ruby/prism/commit/1d95d75c3f) +PRISM [x86_64-linux]
-43
```
https://github.com/ruby/prism/commit/a755bf228f
|
|
|
|
|
|
|
|
https://github.com/ruby/json/commit/9c4db31908
Co-Authored-By: Jean Boussier <jean.boussier@gmail.com>
|
|
https://github.com/ruby/json/commit/965ba6c5d4
|
|
|
|
This value is dword, not a string.
Amends https://github.com/ruby/resolv/commit/720e25034042.
https://github.com/ruby/resolv/commit/bf00ed8585
|
|
|
|
|
|
`cross_ractor_require` is sharable object but it refers
to unsharable objects.
To fix it, make the process simple.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Bug #21645]
win32-registory can't load fiddle if Gemfile didn't have that dependency.
https://github.com/ruby/resolv/commit/1319183a4b
|