summaryrefslogtreecommitdiff
path: root/test/ruby
AgeCommit message (Collapse)Author
2021-01-13Rename RubyVM::MJIT to RubyVM::JITTakashi Kokubun
because the name "MJIT" is an internal code name, it's inconsistent with --jit while they are related to each other, and I want to discourage future JIT implementation-specific (e.g. MJIT-specific) APIs by this rename. [Feature #17490]
2021-01-13Guard callinfoAaron Patterson
Callinfo was being written in to an array and the GC would not see the reference on the stack. `new_insn_send` creates a new callinfo object, then it calls `new_insn_core`. `new_insn_core` allocates a new INSN linked list item, which can end up calling `xmalloc` which will trigger a GC: https://github.com/ruby/ruby/blob/70cd351c7c71c48ee18d7c01e851a89614086f8f/compile.c#L968-L969 Since the callinfo object isn't on the stack, the GC won't see it, and it can get collected. This patch just refactors `new_insn_send` to keep the object on the stack Co-authored-by: John Hawthorn <john@hawthorn.email> Notes: Merged: https://github.com/ruby/ruby/pull/4066
2021-01-13Capture to reserved name variables if already defined [Bug #17533]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4059
2021-01-13Positional and keyword arguments for timezone are exclusiveNobuyoshi Nakada
[Feature #17485] Notes: Merged: https://github.com/ruby/ruby/pull/4010
2021-01-13Added `in:` timezone option to `Time.new` [Feature #17485]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4010
2021-01-13Make warning values consistent [Bug #17523]Nobuyoshi Nakada
They should be affected, as well as `$VERBOSE`, by `-w`/`-W` options, not only in the main script but in scripts loaded by `-r` option too. Notes: Merged: https://github.com/ruby/ruby/pull/4042
2021-01-13Revert "[Bug #11213] let defined?(super) call respond_to_missing?"Nobuyoshi Nakada
This reverts commit fac2498e0299f13dffe4f09a7dd7657fb49bf643 for now, due to [Bug #17509], the breakage in the case `super` is called in `respond_to?`. Notes: Merged: https://github.com/ruby/ruby/pull/4057
2021-01-13Allow UTC offset without colons per ISO-8601 [Bug #17504]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4020
2021-01-12Remove "." and ".." from Dir.glob with FNM_DOTMATCH [Bug #17280]Nobuyoshi Nakada
Co-authored-by: Jeremy Evans <code@jeremyevans.net> Notes: Merged: https://github.com/ruby/ruby/pull/4052
2021-01-12Convert time component strings to integers more strictlyNobuyoshi Nakada
https://bugs.ruby-lang.org/issues/17485#change-89871
2021-01-12Show seconds of utc_offset if not zeroNobuyoshi Nakada
2021-01-11Suppress constant redefinition warningsNobuyoshi Nakada
2021-01-09Get rid of defining methods for tests in core classesNobuyoshi Nakada
Not to interfere in other tests. Notes: Merged: https://github.com/ruby/ruby/pull/4043
2021-01-04Fix broken JIT of getinlinecacheTakashi Kokubun
e7fc353f04 reverted vm_ic_hit_p's signature change made in 53babf35ef, which broke JIT compilation of getinlinecache. To make sure it doesn't happen again, I separated vm_inlined_ic_hit_p to make the intention clear.
2021-01-05enable constant cache on ractorsKoichi Sasada
constant cache `IC` is accessed by non-atomic manner and there are thread-safety issues, so Ruby 3.0 disables to use const cache on non-main ractors. This patch enables it by introducing `imemo_constcache` and allocates it by every re-fill of const cache like `imemo_callcache`. [Bug #17510] Now `IC` only has one entry `IC::entry` and it points to `iseq_inline_constant_cache_entry`, managed by T_IMEMO object. `IC` is atomic data structure so `rb_mjit_before_vm_ic_update()` and `rb_mjit_after_vm_ic_update()` is not needed. Notes: Merged: https://github.com/ruby/ruby/pull/4022
2021-01-04Fixed error message when % at EOFNobuyoshi Nakada
2021-01-03Added tests for Time#getlocal with UTC offsetNobuyoshi Nakada
2021-01-03Avoid hanging on --jit-wait after MJIT.pauseTakashi Kokubun
When a worker is stopped, nobody will JIT a method for you.
2021-01-02Add Enumerable#compact and Enumerator::Lazy#compactzverok
Notes: Merged: https://github.com/ruby/ruby/pull/3851
2021-01-01Added AST assertions for method definition arguments [Bug #17495]Nobuyoshi Nakada
2021-01-01Added AST tests for endless method definitionsNobuyoshi Nakada
2020-12-31Make any hash values fixable [Bug #17488]Nobuyoshi Nakada
As hnum is an unsigned st_index_t, the result of RSHIFT may not be in the fixable range. Co-authored-by: NeoCat <neocat@neocat.jp>
2020-12-28Dup kwrest hash when merging other keyword arguments [Bug #17481]Nobuyoshi Nakada
2020-12-24Store errno in struct rb_process_statusNobuyoshi Nakada
To propagate errno in the fiber thread scheduler hook. Returns nil when no terminated process. Notes: Merged: https://github.com/ruby/ruby/pull/3998
2020-12-24Remove unneeded codeMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3993
2020-12-24dir.c: chdir conflict should raise only when called in different threadYusuke Endoh
... and keep it as a warning (like 2.7) when it is called in the same thread. [Bug #15661] Notes: Merged: https://github.com/ruby/ruby/pull/3990
2020-12-24shareable_constant_value: experimental_copyKoichi Sasada
"experimental_everything" makes the assigned value, it means the assignment change the state of assigned value. "experimental_copy" tries to make a deep copy and make copyied object sharable. Notes: Merged: https://github.com/ruby/ruby/pull/3989
2020-12-23Fix class of method in Method#inspect for singleton classes of classesJeremy Evans
Previously, due to a change to fix bug 15608, Method#inspect output changed for class methods: Ruby 2.7 "#<Method: String.prepend(*)>" Before change: "#<Method: #<Class:Object>(Module)#prepend(*)>" This is wrong because the Method object was created from String and not Object. This is because the fix for bug 15608 assumed it was being called on the singleton class of a instance, and would skip the first singleton class until it got to the class itself. For class methods, this results in always using the superclass. Fix behavior to not skip until the superclass if the singleton class is the singleton class of a module or class. After change: "#<Method: #<Class:Object>(Module)#prepend(*)>" Fixes [Bug #17428] Notes: Merged: https://github.com/ruby/ruby/pull/3984
2020-12-24test/ruby/test_module.rb: not depend on the order of method definitionsYusuke Endoh
2020-12-24Reset paren_nest at tAREF and tASET [Bug #17431]Nobuyoshi Nakada
2020-12-24Module#public_class_method also accepts a symbol array as an argumentYusuke Endoh
I'm unsure if this is intentional, but add a document anyway. [Feature #17314]
2020-12-23Ensure non-literal expressions shareable if `leteral`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3950
2020-12-23Update rb_ractor_ensure_shareableNobuyoshi Nakada
* Fixed use of rb_ractor_shareable_p * Raise Ractor::IsolationError Notes: Merged: https://github.com/ruby/ruby/pull/3950
2020-12-23Split the testNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3950
2020-12-23Added assertionsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3950
2020-12-23Added dedicated helper methodsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3950
2020-12-23Changed shareable literal semantics [Feature #17397]Nobuyoshi Nakada
When `literal`, check if the literal about to be assigned to a constant is ractor-shareable, otherwise raise `Ractor::Error` at runtime instead of `SyntaxError`. Notes: Merged: https://github.com/ruby/ruby/pull/3950
2020-12-23[memory_view][fiddle] Rename len to byte_size in rb_memory_view_tKenta Murata
2020-12-23Make NoMatchingPatternError a subclass of StandardErrorKazuki Tsujimoto
2020-12-22Enumerator.new: raise unless block given卜部昌平
Has been deprecated since c73b6bd7ebd01133538c645566944132dbde4d13. [Feature #17116] [ruby-dev:50945] Notes: Merged: https://github.com/ruby/ruby/pull/3968
2020-12-22reset cache before iteratingKoichi Sasada
cee02d754d76563635c1db90d2ab6c01f8492470 resets pCMC and `me` will be a invalidated and continuing the invalidated `me`, it will break the data structure. This patch tris to clear all methods of specified class before manipulating the `me`s. [Issue #17417] Notes: Merged: https://github.com/ruby/ruby/pull/3964
2020-12-20win32: Use UTF-8 as filesystem encoding [Feature #12654]Nobuyoshi Nakada
Co-Authored-By: Dāvis Mosāns <davispuh@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/3948
2020-12-19test/ruby/test_module.rb: Avoid "warning: method redefined"Yusuke Endoh
2020-12-19Recommit 34f06062174882a98ebef998c50ad8d4f7fc0f2eYusuke Endoh
2020-12-19Partially reintroduce e042e8460bb9a63c05f938d51e8c7c5345a6f3a4 and ...Yusuke Endoh
34f06062174882a98ebef998c50ad8d4f7fc0f2e Add a test for alias_method
2020-12-19Added missing tests for public, private, protected and alias_methodNobuyoshi Nakada
2020-12-19fix refinements/prepend bugKoichi Sasada
replaced method entry should be invalidated. [Bug #17386]
2020-12-19Added tests for [Feature #17314]Yusuke Endoh
Partially reintroduce 34f06062174882a98ebef998c50ad8d4f7fc0f2e
2020-12-18Use category: :deprecated in warnings that are related to deprecationJeremy Evans
Also document that both :deprecated and :experimental are supported :category option values. The locations where warnings were marked as deprecation warnings was previously reviewed by shyouhei. Comment a couple locations where deprecation warnings should probably be used but are not currently used because deprecation warning enablement has not occurred at the time they are called (RUBY_FREE_MIN, RUBY_HEAP_MIN_SLOTS, -K). Add assert_deprecated_warn to test assertions. Use this to simplify some tests, and fix failing tests after marking some warnings with deprecated category. Notes: Merged: https://github.com/ruby/ruby/pull/3917
2020-12-19Fixed not to make non-literal expression shareable [Feature #17273]Nobuyoshi Nakada
Non-literal expression which is not a part of a literal expression is not a subject of `shareable_literal_value: literal`.