summaryrefslogtreecommitdiff
path: root/test/ruby
AgeCommit message (Collapse)Author
2021-12-30Add support for anonymous rest and keyword rest argument forwardingJeremy Evans
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
2021-12-29Use omit instead of skip: test/ruby/enc/**/*.rbHiroshi SHIBATA
2021-12-28Removed deprecated Dir.exists? and File.exists?Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5352
2021-12-27Fix test_rubyoptions for MinGW (#5363)Takashi Kokubun
* 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>
2021-12-27Now YJIT can be enabled on mswin64U.Nakamura
2021-12-26Initialize Struct by calling with keyword argumentsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5348
2021-12-26Remove Refinement#include and Refinement#prependNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5348
2021-12-26Remove tainted and trusted featuresNobuyoshi Nakada
Already these had been announced to be removed in 3.2. Notes: Merged: https://github.com/ruby/ruby/pull/5348
2021-12-26Make RubyVM::AST.of work with code written in `-e` command-line optionYusuke Endoh
[Bug #18434] Notes: Merged: https://github.com/ruby/ruby/pull/5347
2021-12-25Raise proper exception when month argument is not a nameNobuyoshi Nakada
https://bugs.ruby-lang.org/issues/17485#change-89871 Notes: Merged: https://github.com/ruby/ruby/pull/5344
2021-12-23Add fiber scheduler hooks for `pread`/`pwrite`, and add support to `IO::Buffer`.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5249 Merged-By: ioquatix <samuel@codeotaku.com>
2021-12-22Empty and return the buffer if zero size is given [Bug #18421]Nobuyoshi Nakada
In `IO#readpartial` and `IO#read_nonblock`, as well as `IO#read`. Notes: Merged: https://github.com/ruby/ruby/pull/5323
2021-12-22Extended interface for IO::Buffer & documentation.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5314 Merged-By: ioquatix <samuel@codeotaku.com>
2021-12-21`mandatory_only_cme` should not be in `def`Koichi Sasada
`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
2021-12-21Rename IMMUTABLE to READONLY.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Improve interface for get/set/copy.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Mark non-private mapped files as external.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Default `IO::Buffer#get_string` to use BINARY encoding.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Add tests for `IO::Buffer` `get`/`set`.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Rename `to_str` -> `get_string` and add support for encodings.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Improved exception usage/classes.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Fix handling of frozens strings.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Fix mapping invalid non-file object.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-20Remove Class#descendantsJeremy Evans
Notes: Merged: https://github.com/ruby/ruby/pull/5309
2021-12-20test/ruby/test_ast.rb: Avoid a "method redefined" warningYusuke Endoh
2021-12-20Improve IO::Buffer resize and introduce ownership transfer.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5301
2021-12-19Default size for IO::Buffer.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5300
2021-12-18YJIT: Implement internDaniel Colson
`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
2021-12-19Make AST.of possible even under eval when keep_script_lines is enabledYusuke Endoh
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)) ```
2021-12-19Make RubyVM::AbstractSyntaxTree.of raise for backtrace location in evalYusuke Endoh
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.
2021-12-17YJIT: Allow iseq with both opt and kwargsJohn Hawthorn
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
2021-12-17`ENV` ivars should not be accessible from ractorsKoichi Sasada
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
2021-12-17Send the message for s390x to stderr [ci skip]Nobuyoshi Nakada
Parallel worker's stdout is captured as the control protocol. Notes: Merged: https://github.com/ruby/ruby/pull/5286
2021-12-16Use `to_s` and `puts` in testsNobuyoshi Nakada
`to_s` has the explict specification while `inspect` is often vague.
2021-12-15ucrt can raise `Errno::EINVAL`Koichi Sasada
`ENV[key] = long_str` can raise `Errno::EINVAL` also on ucrt env. Notes: Merged: https://github.com/ruby/ruby/pull/5263
2021-12-15fix testKoichi Sasada
Notes: Merged: https://github.com/ruby/ruby/pull/5263
2021-12-15Removed traling spaces [ci skip]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5263
2021-12-15Add Ractor tests for ENVRohit Menon
Notes: Merged: https://github.com/ruby/ruby/pull/5263
2021-12-15Fix arg_forward without parentheses [Bug #18267]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5269
2021-12-13Prepare for removing RubyVM::JIT (#5262)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-12-14[ruby/securerandom] Use String#unpack1Nobuyoshi Nakada
https://github.com/ruby/securerandom/commit/5460a18c35
2021-12-13Rename --jit to --mjit (#5248)Takashi Kokubun
* 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>
2021-12-13Pass UnboundMethod to 2nd arg of define_methodKoichi Sasada
Notes: Merged: https://github.com/ruby/ruby/pull/5252
2021-12-13fix Struct's setter arityKoichi Sasada
https://github.com/ruby/ruby/pull/5131/files#diff-b2553d23e6b1fe76e20608d06c25f6acca06279100f1a9c24febcd79a82fac3cR2689 Notes: Merged: https://github.com/ruby/ruby/pull/5252
2021-12-13Struct setter's parameters == `[:req, :_]`Koichi Sasada
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
2021-12-09Add {Method,UnboundMethod}#{public?,private?,protected?}Jeremy Evans
These methods allow for checking whether the method has that visibility. Implements [Feature #11689] Notes: Merged: https://github.com/ruby/ruby/pull/5040
2021-12-10`TracePoint.allow_reentry`Koichi Sasada
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
2021-12-09Check month overflow when marshalNobuyoshi Nakada
https://hackerone.com/reports/1244185 Notes: Merged: https://github.com/ruby/ruby/pull/5238
2021-12-09[ruby/securerandom] Split Random::Formatter from SecureRandom [Feature #18190]Nobuyoshi Nakada
https://github.com/ruby/securerandom/commit/1e57277b9e Notes: Merged: https://github.com/ruby/ruby/pull/5237
2021-12-09`Ractor.make_shareable` checks proc's seflKoichi Sasada
`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