| Age | Commit message (Collapse) | Author |
|
This allows for the following syntax:
```ruby
def foo(*)
bar(*)
end
def baz(**)
quux(**)
end
```
This is a natural addition after the introduction of anonymous
block forwarding. Anonymous rest and keyword rest arguments were
already supported in method parameters, this just allows them to
be used as arguments to other methods. The same advantages of
anonymous block forwarding apply to rest and keyword rest argument
forwarding.
This has some minor changes to #parameters output. Now, instead
of `[:rest], [:keyrest]`, you get `[:rest, :*], [:keyrest, :**]`.
These were already used for `...` forwarding, so I think it makes
it more consistent to include them in other cases. If we want to
use `[:rest], [:keyrest]` in both cases, that is also possible.
I don't think the previous behavior of `[:rest], [:keyrest]` in
the non-... case and `[:rest, :*], [:keyrest, :**]` in the ...
case makes sense, but if we did want that behavior, we'll have to
make more substantial changes, such as using a different ID in the
... forwarding case.
Implements [Feature #18351]
Notes:
Merged: https://github.com/ruby/ruby/pull/5148
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5352
|
|
* Fix test_rubyoptions for MinGW
follows up a74a2f456ad549025861be80f50cc3f0dd6646dd
* Require jit_support
* Fix MinGW platform
* Handle MinGW UCRT
and fix the prefix
* Make it more robust
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5348
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5348
|
|
Already these had been announced to be removed in 3.2.
Notes:
Merged: https://github.com/ruby/ruby/pull/5348
|
|
[Bug #18434]
Notes:
Merged: https://github.com/ruby/ruby/pull/5347
|
|
https://bugs.ruby-lang.org/issues/17485#change-89871
Notes:
Merged: https://github.com/ruby/ruby/pull/5344
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5249
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
In `IO#readpartial` and `IO#read_nonblock`, as well as `IO#read`.
Notes:
Merged: https://github.com/ruby/ruby/pull/5323
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5314
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
`def` (`rb_method_definition_t`) is shared by multiple callable
method entries (cme, `rb_callable_method_entry_t`).
There are two issues:
* old -> young reference: `cme1->def->mandatory_only_cme = monly_cme`
if `cme1` is young and `monly_cme` is young, there is no problem.
Howevr, another old `cme2` can refer `def`, in this case, old `cme2`
points young `monly_cme` and it violates gengc assumption.
* cme can have different `defined_class` but `monly_cme` only has
one `defined_class`. It does not make sense and `monly_cme`
should be created for a cme (not `def`).
To solve these issues, this patch allocates `monly_cme` per `cme`.
`cme` does not have another room to store a pointer to the `monly_cme`,
so this patch introduces `overloaded_cme_table`, which is weak key map
`[cme] -> [monly_cme]`.
`def::body::iseqptr::monly_cme` is deleted.
The first issue is reported by Alan Wu.
Notes:
Merged: https://github.com/ruby/ruby/pull/5311
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5303
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5309
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5301
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5300
|
|
`intern` showed up in the top 20 most frequent exit ops (granted with a
fairly small percentage) in a benchmark run by @jhawthorn on
github/github.
This implementation is similar to gen_anytostring, but with 1
stack pop instead of 2.
Co-authored-by: John Hawthorn <jhawthorn@github.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/5291
|
|
Now the following code works without an exception.
```
RubyVM.keep_script_lines = true
eval(<<END)
def foo
end
END
p RubyVM::AbstractSyntaxTree.of(method(:foo))
```
|
|
This check is needed to fix a bug of error_highlight when NameError
occurred in eval'ed code.
https://github.com/ruby/error_highlight/pull/16
The same check for proc/method has been already introduced since
64ac984129a7a4645efe5ac57c168ef880b479b2.
|
|
Previously we mirrored the fast paths the interpreter had for having
only one of kwargs or optional args. This commit aims to combine the
cases and reduce complexity.
Though this allows calling iseqs which have have both optional and
keyword arguments, it requires that all optional arguments are specified
when there are keyword arguments, since unspecified optional arguments
appear before the kwargs. Support for this can be added a in a future
PR.
Notes:
Merged: https://github.com/ruby/ruby/pull/5285
|
|
The `ENV` object can have instance variables like other objects,
but they should be accessed only on the main ractor.
fix https://github.com/ruby/ruby/pull/5263#issuecomment-995585766
Notes:
Merged: https://github.com/ruby/ruby/pull/5288
|
|
Parallel worker's stdout is captured as the control protocol.
Notes:
Merged: https://github.com/ruby/ruby/pull/5286
|
|
`to_s` has the explict specification while `inspect` is often
vague.
|
|
`ENV[key] = long_str` can raise `Errno::EINVAL` also on ucrt env.
Notes:
Merged: https://github.com/ruby/ruby/pull/5263
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5263
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5263
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5263
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5269
|
|
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
https://github.com/ruby/securerandom/commit/5460a18c35
|
|
* Rename --jit to --mjit
[Feature #18349]
* Fix a few more --jit references
* Fix MJIT Actions
* More s/jit/mjit/ and re-introduce --disable-jit
* Update NEWS.md
* Fix test_bug_reporter_add
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5252
|
|
https://github.com/ruby/ruby/pull/5131/files#diff-b2553d23e6b1fe76e20608d06c25f6acca06279100f1a9c24febcd79a82fac3cR2689
Notes:
Merged: https://github.com/ruby/ruby/pull/5252
|
|
fix [Bug #18405]
Note that the parameter name `_` is not a spec, so we shouldn't
rely on this behavior.
Notes:
Merged: https://github.com/ruby/ruby/pull/5252
|
|
These methods allow for checking whether the method has that
visibility.
Implements [Feature #11689]
Notes:
Merged: https://github.com/ruby/ruby/pull/5040
|
|
In general, while TracePoint callback is running,
other registerred callbacks are not called to avoid
confusion by reentrace.
This method allow the reentrace. This method should be
used carefully, otherwize the callback can be easily called
infinitely.
[Feature #15912]
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/5231
|
|
https://hackerone.com/reports/1244185
Notes:
Merged: https://github.com/ruby/ruby/pull/5238
|
|
https://github.com/ruby/securerandom/commit/1e57277b9e
Notes:
Merged: https://github.com/ruby/ruby/pull/5237
|
|
`Ractor.make_shareable(proc_obj)` raises an `IsolationError`
if the self of `proc_obj` is not a shareable object.
[Bug #18243]
Notes:
Merged: https://github.com/ruby/ruby/pull/5232
|