summaryrefslogtreecommitdiff
path: root/spec/ruby/core
AgeCommit message (Collapse)Author
2022-10-01Re-enable example for Europe/Amsterdam pre-1970 timeHiroshi SHIBATA
* https://github.com/ruby/spec/pull/939 * https://github.com/ruby/ruby/pull/6393
2022-10-01merge revision(s) ↵nagachika
94cea3e4d0a60326bd95be762819eed8ccd59ca6,aa53d69aa21c4dfa2a78a1cec5cb34e9697b3d30,6b7d32a5e54088b6b4014529bbf2b4b8c1a96029,c6319026caa6c8f0f569f80011e8502349a04b14,aa490f9442c32cd0e1e449ac817f410bd5924c8b: [Backport #18435] Fix {Method,UnboundMethod}#super_method for zsuper methods * We need to resolve the zsuper method first, and then look the super method of that. --- proc.c | 25 ++++++++++++----------- spec/ruby/core/method/super_method_spec.rb | 15 +++----------- spec/ruby/core/unboundmethod/super_method_spec.rb | 16 ++++++--------- 3 files changed, 22 insertions(+), 34 deletions(-) Add specs for {Method,UnboundMethod}#owner of a zsuper method --- spec/ruby/core/method/owner_spec.rb | 6 ++++++ spec/ruby/core/unboundmethod/owner_spec.rb | 7 +++++++ 2 files changed, 13 insertions(+) Resolve zsuper method during lookup but preserve owner separately * See https://bugs.ruby-lang.org/issues/18729#note-34 * See [Bug #18729] --- proc.c | 109 +++++++++++++++++++++++++---------------------- test/ruby/test_method.rb | 66 +++++++++++++++++++++++----- 2 files changed, 114 insertions(+), 61 deletions(-) Extend tests for a zsuper method of which the method it resolved to has been removed --- test/ruby/test_method.rb | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) Reduce diff to proc.c @ b0b9f7201acab05c2a3ad92c3043a1f01df3e17f * So it's easy to review https://github.com/ruby/ruby/pull/6242 + https://github.com/ruby/ruby/pull/6467 and there are less changes overall. --- proc.c | 76 ++++++++++++++++++------------------------------ test/ruby/test_method.rb | 7 +++-- 2 files changed, 34 insertions(+), 49 deletions(-)
2022-09-10merge revision(s) b7577b4d9e0fd92522fc30e10fe712e245adee8c:nagachika
The tzdata 2022c removed Amsterdam Mean Time --- spec/ruby/core/time/shared/local.rb | 2 ++ 1 file changed, 2 insertions(+)
2022-09-03merge revision(s) ↵nagachika
8212aab81a77a2a91fb7c1681b4968171193b48f,209631a45f9682dedf718f4b4a140efe7d21a6fc: [Backport #18435] Make Object#method and Module#instance_method not skip ZSUPER methods Based on https://github.com/jeremyevans/ruby/commit/c95e7e5329140f640b6497905485761f3336d967 Among other things, this fixes calling visibility methods (public?, protected?, and private?) on them. It also fixes #owner to show the class the zsuper method entry is defined in, instead of the original class it references. For some backwards compatibility, adjust #parameters and #source_location, to show the parameters and source location of the method originally defined. Also have the parameters and source location still be shown by #inspect. Clarify documentation of {Method,UnboundMethod}#owner. Add tests based on the description of https://bugs.ruby-lang.org/issues/18435 and based on https://github.com/ruby/ruby/pull/5356#issuecomment-1005298809 Fixes [Bug #18435] [Bug #18729] Co-authored-by: Benoit Daloze <eregontp@gmail.com> --- proc.c | 63 +++++++++++++++++++++++++++++++++++------------- test/ruby/test_method.rb | 59 +++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 100 insertions(+), 22 deletions(-) Consider resolved-through-zsuper methods equal for compatibility * Fixes https://bugs.ruby-lang.org/issues/18751 --- proc.c | 65 +++++++++++------------- spec/ruby/core/unboundmethod/equal_value_spec.rb | 37 ++++++++++++++ test/ruby/test_method.rb | 18 +++++++ 3 files changed, 86 insertions(+), 34 deletions(-)
2021-12-20Remove Class#descendantsJeremy Evans
Notes: Merged: https://github.com/ruby/ruby/pull/5309
2021-12-16Restore the global random seedNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5281
2021-12-16Fix Kernel#srand and Kernel#rand descriptions [ci skip]Nobuyoshi Nakada
Actually used methods are all instance method, not the singleton method. Notes: Merged: https://github.com/ruby/ruby/pull/5281
2021-12-16Refine wording about the default random seed [ci skip]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5281
2021-12-16Use `to_s` and `puts` in testsNobuyoshi Nakada
`to_s` has the explict specification while `inspect` is often vague.
2021-12-13Prepare for removing RubyVM::JIT (#5262)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-11-30Fix `GC.total_time` exampleNobuyoshi Nakada
The result may increase actually or not, since GC can finish shorter than the timer granularity. Notes: Merged: https://github.com/ruby/ruby/pull/5193 Merged-By: nobu <nobu@ruby-lang.org>
2021-11-29Update to ruby/spec@7f22a0bBenoit Daloze
2021-11-23Add Class#subclassesJean Boussier
Implements [Feature #18273] Returns an array containing the receiver's direct subclasses without singleton classes. Notes: Merged: https://github.com/ruby/ruby/pull/5045
2021-11-18Make Module#{public,private,protected,module_function} return argumentsJeremy Evans
Previously, each of these methods returned self, but it is more useful to return arguments, to allow for simpler method decorators, such as: ```ruby cached private def foo; some_long_calculation; end ``` Where cached sets up caching for the method. For each of these methods, the following behavior is used: 1) No arguments returns nil 2) Single argument is returned 3) Multiple arguments are returned as an array The single argument case is really the case we are trying to optimize for, for the same reason that def was changed to return a symbol for the method. Idea and initial patch from Herwin Quarantainenet. Implements [Feature #12495] Notes: Merged: https://github.com/ruby/ruby/pull/5037
2021-11-18Expect bool as `sort:` option at glob [Feature #18287]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5084 Merged-By: nobu <nobu@ruby-lang.org>
2021-11-02Fix typosNobuyoshi Nakada
2021-10-29Cleanup GC.auto_compact specBenoit Daloze
* Make the supported check more obvious.
2021-10-29Skip GC.auto_compact= spec for platforms not supporting itBenoit Daloze
* See https://github.com/ruby/spec/pull/891
2021-10-28Update to ruby/spec@21a48d9Benoit Daloze
2021-10-26pack.c: add an offset argument to unpack and unpack1Jean Boussier
[Feature #18254] This is useful to avoid repeteadly copying strings when parsing binary formats
2021-10-26Add Class#descendantsJeremy Evans
Doesn't include receiver or singleton classes. Implements [Feature #14394] Co-authored-by: fatkodima <fatkodima123@gmail.com> Co-authored-by: Benoit Daloze <eregontp@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/4974 Merged-By: jeremyevans <code@jeremyevans.net>
2021-10-25fix typo [ci skip]180909
Notes: Merged: https://github.com/ruby/ruby/pull/4972 Merged-By: nobu <nobu@ruby-lang.org>
2021-10-25Fix `Enumerable#each_cons` and `Enumerable#each_slice` to return a receiverTSUYUSATO Kitsune
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/1509 Merged-By: nobu <nobu@ruby-lang.org>
2021-10-22Refinement#include and Refinement#prepend have been deprecatedNobuyoshi Nakada
2021-10-22Refinement#include and Refinement#prepend have been deprecatedNobuyoshi Nakada
2021-10-20Update to ruby/spec@254c380Benoit Daloze
2021-10-20Update to ruby/spec@d6921efBenoit Daloze
2021-10-18Not all environment variables can be convertible to IBM-437Nobuyoshi Nakada
2021-10-08Remove autoload for constant if the autoload failsJeremy Evans
Previously, if an autoload failed (the file was loaded, but the constant was not defined by the autoloaded file). Ruby will try to autoload again if you delete the autoloaded file from $LOADED_FEATURES. With this change, the autoload and the constant itself are removed as soon as it fails. To handle cases where multiple threads are autoloading, when deleting an autoload, handle the case where another thread already deleted it. Fixes [Bug #15790] Notes: Merged: https://github.com/ruby/ruby/pull/4715 Merged-By: jeremyevans <code@jeremyevans.net>
2021-10-06Remove the useless platform guardNobuyoshi Nakada
2021-10-06Fix filesystem dependent testsNobuyoshi Nakada
Ruby cannot guarantee the resolutions of underlying filesystems.
2021-10-05Update to ruby/spec@ccf0d85Benoit Daloze
2021-10-05marshal.c Marshal.load accepts a freeze: true option.Jean Boussier
Fixes [Feature #18148] When set, all the loaded objects are returned as frozen. If a proc is provided, it is called with the objects already frozen.
2021-09-30marshal.c: don't call the proc with partially initialized objects. (#4866)Jean byroot Boussier
For cyclic objects, it requires to keep a st_table of the partially initialized objects. Notes: Merged-By: byroot <jean.boussier@gmail.com>
2021-09-17Removed Module.allocate [Bug #17048]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4858
2021-09-17Add spec for MatchData#match and MatchData#match_length [Feature #18172]Nobuyoshi Nakada
2021-09-15Marshal.load: do not call the proc until strings have their encodingJean Boussier
Ref: https://bugs.ruby-lang.org/issues/18141 Notes: Merged: https://github.com/ruby/ruby/pull/4797
2021-09-07Update to ruby/spec@b1e93a2Benoit Daloze
2021-08-22Fix failures on non-UTF-8 environment [Bug #18077]Nobuyoshi Nakada
Call `IOSpecs.io_fixture` with the default encoding explicitly. `IOSpecs.closed_io` calls the method without optional `mode` which is set to UTF-8 by default, while the default external encoding depends on the locale environment variables.
2021-08-22Fix Marshal.dump(closed_io) to raise TypeError and allow encoding on closed IOLars Kanis
Mashalling a closed IO object raised "closed stream (IOError)" before instead of TypeError. This changes IO#(in|ex)ternal_encoding to still return the encoding even if the underlying FD is closed. Fixes bug #18077 Notes: Merged: https://github.com/ruby/ruby/pull/4758
2021-08-21Allow tracing of optimized methodsJeremy Evans
This updates the trace instructions to directly dispatch to opt_send_without_block. So this should cause no slowdown in non-trace mode. To enable the tracing of the optimized methods, RUBY_EVENT_C_CALL and RUBY_EVENT_C_RETURN are added as events to the specialized instructions. Fixes [Bug #14870] Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/4739 Merged-By: jeremyevans <code@jeremyevans.net>
2021-08-13Update to ruby/spec@330c641Benoit Daloze
2021-07-29Make RubyVM::AbstractSyntaxTree.of raise for method/proc created in evalJeremy Evans
This changes Thread::Location::Backtrace#absolute_path to return nil for methods/procs defined in eval. If the realpath of an iseq is nil, that indicates it was defined in eval, in which case you cannot use RubyVM::AbstractSyntaxTree.of. Fixes [Bug #16983] Co-authored-by: Koichi Sasada <ko1@atdot.net> Notes: Merged: https://github.com/ruby/ruby/pull/4519
2021-07-29Update to ruby/spec@b65d01fBenoit Daloze
2021-07-20Remove meaningless IO#close_on_exec= spec [Feature #17745]Nobuyoshi Nakada
2021-07-17Fix a spec failureKazuhiro NISHIYAMA
``` 1) Warning.[]= :experimental emits and suppresses warnings for :experimental FAILED Expected "" =~ /is experimental/ to be truthy but was nil ```
2021-07-16Add Integer.try_convert [Feature #15211]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4654
2021-06-29[WIP] add error_squiggle gemYusuke Endoh
``` $ ./local/bin/ruby -e '1.time {}' -e:1:in `<main>': undefined method `time' for 1:Integer (NoMethodError) 1.time {} ^^^^^ Did you mean? times ``` https://bugs.ruby-lang.org/issues/17930 Notes: Merged: https://github.com/ruby/ruby/pull/4586
2021-06-02Update to ruby/spec@a0b7d0dBenoit Daloze
2021-06-02Skip a `File.atime` test randomly failing on Travis ppc64le.Jun Aruga
See <https://bugs.ruby-lang.org/issues/17926>. Notes: Merged: https://github.com/ruby/ruby/pull/4546