summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2023-07-01Copy cvar table on cloneeileencodes
When a class with a class variable is cloned we need to also copy the cvar cache table from the original table to the clone. I found this bug while working on fixing [Bug #19379]. While this does not fix that bug directly it is still a required change to fix another bug revealed by the fix in https://github.com/ruby/ruby/pull/7265 This needs to be backported to 3.2.x and 3.1.x. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2023-07-01Merge URI-0.12.2Hiroshi SHIBATA
2023-06-25merge revision(s) 7bd7aee02e303de27d2cddfc5ef47e612d6782cb: [Backport #18464]nagachika
Fix interpreter crash caused by RUBY_INTERNAL_EVENT_NEWOBJ + Ractors When a Ractor is created whilst a tracepoint for RUBY_INTERNAL_EVENT_NEWOBJ is active, the interpreter crashes. This is because during the early setup of the Ractor, the stdio objects are created, which allocates Ruby objects, which fires the tracepoint. However, the tracepoint machinery tries to dereference the control frame (ec->cfp->pc), which isn't set up yet and so crashes with a null pointer dereference. Fix this by not firing GC tracepoints if cfp isn't yet set up. --- gc.c | 1 + test/objspace/test_ractor.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 test/objspace/test_ractor.rb
2023-06-25merge revision(s) bffadcd6d46ccfccade79ce0efb60ced8eac4483: [Backport #19529]nagachika
Add guard to compaction test in WeakMap Some platforms don't support compaction, so we should skip this test. --- test/ruby/test_weakmap.rb | 2 ++ 1 file changed, 2 insertions(+)
2023-06-25merge revision(s) ↵nagachika
548086b34e3dd125edabf5dc1e46b891fad3ea9c,3dc8cde70078ccb38f5f4b0818ad5eecded01bd5,e0cf80d666d4b5df3229f030a16d10d21323508e: [Backport #19529] ObjectSpace::WeakMap: fix compaction support [Bug #19529] `rb_gc_update_tbl_refs` can't be used on `w->obj2wmap` because it's not a `VALUE -> VALUE` table, but a `VALUE -> VALUE *` table, so we need some dedicated iterator. --- test/ruby/test_weakmap.rb | 8 ++++++++ weakmap.c | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) Fix crash during compaction [Bug #19529] The fix for [Bug #19529] in commit 548086b contained a bug that crashes on the following script: ``` wm = ObjectSpace::WeakMap.new obj = Object.new 100.times do wm[Object.new] = obj GC.start end GC.compact ``` --- test/ruby/test_weakmap.rb | 10 ++++++++++ weakmap.c | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) Fix incorrect size of WeakMap buffer In wmap_final_func, j is the number of elements + 1 (since j also includes the length at the 0th index), so we should resize the buffer to size j and the new length is j - 1. --- weakmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
2023-06-25merge revision(s) 1cdf8ab07b24ebd16e93621957196e8b1d67f2ba: [Backport #19323]nagachika
[Bug #19323] Raise `RangeError` instead of integer overflow --- bignum.c | 5 ++++- test/ruby/test_integer.rb | 18 ++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-)
2023-06-13[ruby/openssl] Relax error message check for OpenSSL 3.1Nobuyoshi Nakada
A tentative measures fo https://github.com/ruby/openssl/issues/606. With OpenSSL 3.1.0, the error message at connection using "self-signed certificate" seems to return `SSL_R_TLSV1_ALERT_UNKNOWN_CA` instead of `SSL_R_CERTIFICATE_VERIFY_FAILED`. https://github.com/ruby/openssl/commit/fc4629d246
2023-03-30Merge Time-0.2.2 (#7623)Hiroshi SHIBATA
2023-03-28Skip failing test on MSWinNobuyoshi Nakada
2023-03-28Merge RubyGems-3.4.10 and Bundler-2.4.10 (#7479)Hiroshi SHIBATA
* Merge RubyGems-3.4.7 and Bundler-2.4.7 * Merge RubyGems-3.4.8 and Bundler-2.4.8 * Skip failing test on MSWin * Merge RubyGems-3.4.9 and Bundler-2.4.9 * Merge RubyGems-3.4.10 and Bundler-2.4.10 --------- Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-03-28Use URI-0.12.1 for Ruby 3.2 (#7603)Hiroshi SHIBATA
* Merge URI-0.12.1 * Use URI-0.12.1 * Update core_assertions for using assert_linear_performance
2023-03-28merge revision(s) ↵NARUSE, Yui
2f916812a9b818b432ee7c299e021ec62d4727fb,ac458f6bc3c520c9f23364c85bfb033acda907a6: Skip test_europe_lisbon on macOS until we figure out why it's failing. --- test/ruby/test_time_tz.rb | 1 + 1 file changed, 1 insertion(+) Historical timezones of Lisbon in tzdata are unstable --- test/ruby/test_time_tz.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
2023-03-28merge revision(s) 680bd9027f8cb7977bbc216609db2f4e3cf199a8: [Backport #19471]NARUSE, Yui
[Bug #19471] `Regexp.compile` should handle keyword arguments As well as `Regexp.new`, it should pass keyword arguments to the `Regexp#initialize` method. --- re.c | 2 +- test/ruby/test_regexp.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-)
2023-03-23merge revision(s) cb22d78354e201ca74eba68a8b4edefb593e6754: [Backport #19536]NARUSE, Yui
Fix frozen status loss when moving objects [Bug #19536] When objects are moved between size pools, their frozen status is lost in the shape. This will cause the frozen check to be bypassed when there is an inline cache. For example, the following script should raise a FrozenError, but doesn't on Ruby 3.2 and master. class A def add_ivars @a = @b = @c = @d = 1 end def set_a @a = 10 end end a = A.new a.add_ivars a.freeze b = A.new b.add_ivars b.set_a # Set the inline cache in set_a GC.verify_compaction_references(expand_heap: true, toward: :empty) a.set_a --- shape.c | 2 +- test/ruby/test_gc_compact.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-)
2023-03-22merge revision(s) dddc542e9b61b292d80a96d0d0efbbf58719e3be: [Backport #19476]NARUSE, Yui
[Bug #19476]: correct cache index computation for repetition (#7457) --- regexec.c | 4 ++-- test/ruby/test_regexp.rb | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-)
2023-03-20merge revision(s) e22c4e8877677ff90805e4a4dcbdef80f4220136: [Backport #19467]NARUSE, Yui
[Bug #19467] correct cache points and counting failure on `OP_ANYCHAR_STAR_PEEK_NEXT` (#7454) --- regexec.c | 20 ++++++++++++++++---- test/ruby/test_regexp.rb | 10 ++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-)
2023-03-15merge revision(s) 0eb634ae73cb327ede833b72492f912792a4a9d5: [Backport #19464]NARUSE, Yui
YJIT: Detect and reject `send(:alias_for_send, :foo)` Previously, YJIT failed to put the stack into the correct shape when `BasicObject#send` calls an alias method for the send method itself. This can manifest as strange `NoMethodError`s in the final non-send receiver, as [seen][1] with the kt-paperclip gem. I also found a case where it makes YJIT fail the stack size assertion while compiling `leave`. YJIT's `BasicObject#__send__` implementation already rejects sends to `send`, but didn't detect sends to aliases of `send`. Adjust the detection and reject these cases. Fixes [Bug #19464] [1]: https://github.com/Shopify/yjit/issues/306 --- test/ruby/test_yjit.rb | 20 ++++++++++++++++++++ yjit/src/codegen.rs | 25 ++++++++++--------------- 2 files changed, 30 insertions(+), 15 deletions(-)
2023-03-08merge revision(s) dd28c55a7cd6780dad637b4d6a20507fbfc6af4a: [Backport #19445]NARUSE, Yui
[Bug#19445] Fix keyword splat in enumerator Extracted arguments do not have keyword hash to splat. --- numeric.c | 2 +- test/ruby/test_numeric.rb | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-)
2023-03-07merge revision(s) ↵NARUSE, Yui
c178926fbe879045fa711444a1fd9e906af23e3b,a4b7ec12298c78392797e5ba7704076550e4f100: [Backport #19444] YJIT: jit_prepare_routine_call() for String#+@ missing We saw SEGVs due to this when running with StackProf, which needs a correct PC for RUBY_INTERNAL_EVENT_NEWOBJ, the same event used for ObjectSpace allocation tracing. [Bug #19444] --- test/ruby/test_yjit.rb | 27 +++++++++++++++++++++++++++ yjit/src/codegen.rs | 5 ++++- 2 files changed, 31 insertions(+), 1 deletion(-) YJIT: Fix false assumption that String#+@ => ::String Could return a subclass. [Bug #19444] --- test/ruby/test_yjit.rb | 17 +++++++++++++++++ yjit/src/codegen.rs | 10 +++++++--- 2 files changed, 24 insertions(+), 3 deletions(-)
2023-03-04merge revision(s) ↵NARUSE, Yui
b78f871d838c168789648738e5c67b071beb8a19,ecd0cdaf820af789f355f1a18c31d6adfe8aad94: [Backport #19400] YJIT: Use the system page size when the code page size is too small (#7267) Previously on ARM64 Linux systems that use 64 KiB pages (`CONFIG_ARM64_64K_PAGES=y`), YJIT was panicking on boot due to a failed assertion. The assertion was making sure that code GC can free the last code page that YJIT manages without freeing unrelated memory. YJIT prefers picking 16 KiB as the granularity at which to free code memory, but when the system can only free at 64 KiB granularity, that is not possible. The fix is to use the system page size as the code page size when the system page size is 64 KiB. Continue to use 16 KiB as the code page size on common systems that use 16/4 KiB pages. Add asserts to code_gc() and free_page() about code GC's assumptions. Fixes [Bug #19400] --- yjit/src/asm/mod.rs | 78 ++++++++++++++++++++++++++++++++------------------ yjit/src/codegen.rs | 2 -- yjit/src/virtualmem.rs | 13 +++++++++ 3 files changed, 63 insertions(+), 30 deletions(-) YJIT: Fix assertion for partially mapped last pages (#7337) Follows up [Bug #19400] --- test/ruby/test_yjit.rb | 19 +++++++++++++++++++ yjit/src/asm/mod.rs | 2 +- yjit/src/virtualmem.rs | 18 +++++++++++++----- 3 files changed, 33 insertions(+), 6 deletions(-)
2023-03-02merge revision(s) ↵NARUSE, Yui
8ce2fb9bbbaea14737c84385b1573f743a30f773,3a0f6ce1d31eefd8af01b50f3632a64d64e8f8c1: [Backport #19415] Only emit circular dependency warning for owned thread shields [Bug #19415] If multiple threads attemps to load the same file concurrently it's not a circular dependency issue. So we check that the existing ThreadShield is owner by the current fiber before warning about circular dependencies. --- internal/thread.h | 1 + load.c | 3 ++- spec/ruby/core/kernel/shared/require.rb | 11 +++++++++++ spec/ruby/fixtures/code/concurrent_require_fixture.rb | 4 ++++ test/ruby/test_require.rb | 3 --- thread.c | 11 +++++++++++ 6 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 spec/ruby/fixtures/code/concurrent_require_fixture.rb Use Thread.pass until thread.stop? to wait for thread to block [Bug #19415] It should be more reliable --- spec/ruby/fixtures/code/concurrent_require_fixture.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
2023-02-07merge revision(s) 3a7367ccc319499127ead147e5a08f769e44208e: [Backport #19403]NARUSE, Yui
mkconfig: Map `includedir` only for system ruby Only when installing to the system path on macOS, prepend '$(SDKROOT)' and remap `includedir`. Fix https://github.com/rbenv/ruby-build/discussions/2123 --- test/mkmf/test_config.rb | 4 ++-- test/test_rbconfig.rb | 9 --------- tool/mkconfig.rb | 4 +++- 3 files changed, 5 insertions(+), 12 deletions(-)
2023-02-07merge revision(s) fad48fefe19cc282a5b209944244a3713359b47f: [Backport #19399]NARUSE, Yui
[Bug #19399] Parsing invalid heredoc inside block parameter Although this is of course invalid as Ruby code, allow to just parse and tokenize. --- ext/ripper/lib/ripper/lexer.rb | 2 +- test/ripper/test_lexer.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-)
2023-02-06merge revision(s) c6f84e918943a0bf8db6fee556fc53180d257510: [Backport #19398]NARUSE, Yui
[Bug #19398] Memory leak in WeakMap There's a memory leak in ObjectSpace::WeakMap due to not freeing the `struct weakmap`. It can be seen in the following script: ``` 100.times do 10000.times do ObjectSpace::WeakMap.new end # Output the Resident Set Size (memory usage, in KB) of the current Ruby process puts `ps -o rss= -p #{$$}` end ``` --- gc.c | 1 + test/ruby/test_weakmap.rb | 9 +++++++++ 2 files changed, 10 insertions(+)
2023-02-01Merge RubyGems 3.4.6 and Bundler 2.4.6 (#7214)Hiroshi SHIBATA
Merge RubyGems-3.4.6 and Bundler-2.4.6
2023-01-31merge revision(s) eccfc978fd6f65332eb70c9a46fbb4d5110bbe0a: [Backport #19379]NARUSE, Yui
Fix parsing of regexps that toggle extended mode on/off inside regexp This was broken in ec3542229b29ec93062e9d90e877ea29d3c19472. That commit didn't handle cases where extended mode was turned on/off inside the regexp. There are two ways to turn extended mode on/off: ``` /(?-x:#y)#z /x =~ '#y' /(?-x)#y(?x)#z /x =~ '#y' ``` These can be nested inside the same regexp: ``` /(?-x:(?x)#x (?-x)#y)#z /x =~ '#y' ``` As you can probably imagine, this makes handling these regexps somewhat complex. Due to the nesting inside portions of regexps, the unassign_nonascii function needs to be recursive. In recursive mode, it needs to track both opening and closing parentheses, similar to how it already tracked opening and closing brackets for character classes. When scanning the regexp and coming to `(?` not followed by `#`, scan for options, and use `x` and `i` to determine whether to turn on or off extended mode. For `:`, indicting only the current regexp section should have the extended mode switched, recurse with the extended mode set or unset. For `)`, indicating the remainder of the regexp (or current regexp portion if already recursing) should turn extended mode on or off, just change the extended mode flag and keep scanning. While testing this, I noticed that `a`, `d`, and `u` are accepted as options, in addition to `i`, `m`, and `x`, but I can't see where those options are documented. I'm not sure whether or not handling `a`, `d`, and `u` as options is a bug. Fixes [Bug #19379] --- re.c | 153 +++++++++++++++++++++++++++++++++++++---------- test/ruby/test_regexp.rb | 56 +++++++++++++++++ 2 files changed, 176 insertions(+), 33 deletions(-)
2023-01-31merge revision(s) 3f54d09a5b8b6e4fd734abc8911e170d5967b5b0: [Backport #19390]NARUSE, Yui
bignum.c: rb_int_parse_cstr handle `0` strings [Bug #19390] We shouldn't check the string length when skipping zeros, as the string might only contains zero characters, resulting in an empty string. --- bignum.c | 1 - test/ruby/test_time.rb | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-)
2023-01-31merge revision(s) 21dced8b01823a991829b66ffdc8ffc635965c76: [Backport #19389]NARUSE, Yui
[ruby/stringio] [Bug #19389] Fix chomping with longer separator https://github.com/ruby/stringio/commit/eb322a9716 --- ext/stringio/stringio.c | 5 +++-- test/stringio/test_stringio.rb | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-)
2023-01-25Merge the latest stable versions of RubyGems and Bundler to Ruby 3.2.x (#7061)Hiroshi SHIBATA
[Bug #19350] * Merge RubyGems-3.4.2 and Bundler-2.4.2 * Merge RubyGems-3.4.3 and Bundler-2.4.3 * Generate parser-text.rb of racc when sync it * Ignore LICENSE files of libraries vendored in rubygems [ci skip] * Adjust spec of bundler like as `sync_default_gems` [ci skip] * Fixed a typo * Removed vendored LICENSE file. * Update LEGAL sections for pub_grub * Merge RubyGems-3.4.4 and Bundler-2.4.4 * Merge RubyGems-3.4.5 and Bundler-2.4.5 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-01-25merge revision(s) ↵NARUSE, Yui
2c93c554019ebdc394d3c51c6d925620d3005f84,f5ea43a2e61789357e9c4b374b4bc6756abeae17: [Backport #19360] Ensure main file has default coverage if required. (#7169) * Extract common code for coverage setup. --- iseq.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) More coverage tests & specs. (#7171) * Add spec for eval and line coverage. * Add test for main file coverage. --- spec/ruby/library/coverage/start_spec.rb | 8 +++++++- test/coverage/autostart.rb | 2 ++ test/coverage/main.rb | 1 + test/coverage/test_coverage.rb | 7 +++++++ 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 test/coverage/autostart.rb create mode 100644 test/coverage/main.rb
2023-01-20merge revision(s) ed6fbb79e19bf401db0e85447fee955fd10a25c7: [Backport #19339]NARUSE, Yui
Fix crash when defining ivars on special constants [Bug #19339] --- test/ruby/test_variable.rb | 6 ++++++ vm_insnhelper.c | 5 +++++ 2 files changed, 11 insertions(+)
2023-01-20merge revision(s) f7b72462aa27716370c6bea1f2c240983aca9a55: [Backport #19356]NARUSE, Yui
String#bytesplice should return self In Feature #19314, we concluded that the return value of String#bytesplice should be changed from the source string to the receiver, because the source string is useless and confusing when extra arguments are added. This change should be included in Ruby 3.2.1. --- string.c | 4 ++-- test/ruby/test_string.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
2023-01-19merge revision(s) 3be2acfafd3b3c6168e2266c7c6561d143d7ae5c: [Backport #19327]NARUSE, Yui
Fix re-embedding of strings during compaction The reference updating code for strings is not re-embedding strings because the code is incorrectly wrapped inside of a `if (STR_SHARED_P(obj))` clause. Shared strings can't be re-embedded so this ends up being a no-op. This means that strings can be moved to a large size pool during compaction, but won't be re-embedded, which would waste the space. --- gc.c | 16 +++++++++------- string.c | 12 ++++++++---- test/ruby/test_gc_compact.rb | 8 ++++---- 3 files changed, 21 insertions(+), 15 deletions(-)
2023-01-19Fix test when Ruby is verbosePeter Zhu
The test added in 90a80eb0 fails if Ruby is verbose, it outputs the following line to stderr: RUBY_GC_HEAP_INIT_SLOTS=100 (default value: 10000)
2023-01-19merge revision(s) 979dd02e2f0a70f3f30d47c6115780d8fac6147e: [Backport #19262]NARUSE, Yui
Check if the argument is Thread::Backtrace::Location object [Bug #19262] --- ast.c | 5 +++++ test/ruby/test_ast.rb | 6 ++++++ 2 files changed, 11 insertions(+)
2023-01-18merge revision(s) 837ef8911c638c3e2bdb6af710de7c1fac7b5f90: [Backport #19305]NARUSE, Yui
Fix crash in TracePoint c_call for removed method trace_arg->id is the ID of the original method of an aliased method. If the original method is removed, then the lookup will fail. We should use trace_arg->called_id instead, which is the ID of the aliased method. Fixes [Bug #19305] --- test/ruby/test_settracefunc.rb | 23 +++++++++++++++++++++++ vm_trace.c | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-)
2023-01-18merge revision(s) aeddc19340c7116d48fac3080553fbb823857d16: [Backport #19316]NARUSE, Yui
YJIT: Save PC and SP before calling leaf builtins (#7090) Previously, we did not update `cfp->sp` before calling the C function of ISEQs marked with `Primitive.attr! "inline"` (leaf builtins). This caused the GC to miss temporary values on the stack in case the function allocates and triggers a GC run. Right now, there is only a few leaf builtins in numeric.rb on Integer methods such as `Integer#~`. Since these methods only allocate when operating on big numbers, we missed this issue. Fix by saving PC and SP before calling the functions -- our usual protocol for calling C functions that may allocate on the GC heap. [Bug #19316] --- test/ruby/test_yjit.rb | 16 ++++++++++++++++ yjit/src/codegen.rs | 4 ++++ 2 files changed, 20 insertions(+)
2023-01-18merge revision(s) 43ff0c2c488c80aaf83b486d45bcd4a92ebe3848: [Backport #19299]NARUSE, Yui
YJIT: Fix `yield` into block with >=30 locals on ARM It's a register spill issue. Fix by moving the Qnil fill snippet to after registers are released. [Bug #19299] --- test/ruby/test_yjit.rb | 14 ++++++++++++++ yjit/src/codegen.rs | 29 ++++++++++++++--------------- 2 files changed, 28 insertions(+), 15 deletions(-)
2023-01-18merge revision(s) ↵NARUSE, Yui
291a4098cf649c027cb50c16b872455f26ad1dfb,5be0d42d2c4dc765230c76738289560f9ee37f09: [Backport #19296] Add missing assertion --- test/ruby/test_time.rb | 3 +++ 1 file changed, 3 insertions(+) [Bug #19296] Precheck bits of time components --- test/ruby/test_time.rb | 15 +++++++++++++++ time.c | 14 ++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-)
2023-01-17merge revision(s) 542e984d82fa25098eb15398d716d907acc52b93: [Backport #19292]NARUSE, Yui
[Bug #19292] Re-initialize tm when wday or yday is not set --- test/ruby/test_time.rb | 3 ++- time.c | 31 ++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 10 deletions(-)
2023-01-17merge revision(s) 90a80eb076429978e720e11fb17a3cbb96de3454: [Backport #19284]NARUSE, Yui
Fix integer underflow when using HEAP_INIT_SLOTS There is an integer underflow when the environment variable RUBY_GC_HEAP_INIT_SLOTS is less than the number of slots currently in the Ruby heap. [Bug #19284] --- gc.c | 25 +++++++++++++------------ test/ruby/test_gc.rb | 5 +++++ 2 files changed, 18 insertions(+), 12 deletions(-)
2022-12-29merge revision(s) b726d60c986bf951d13e7a2ab5f5e58f58657b03: [Backport #19273]NARUSE, Yui
Fix [Bug 19273], set correct value to `outer_repeat` on `OP_REPEAT` (#7035) --- regexec.c | 2 +- test/ruby/test_regexp.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-)
2022-12-27merge revision(s) fc03ba50f1ff6c30f7c654f564b4dffbed0844ef: [Backport #19263]NARUSE, Yui
MJIT: Fix JIT code for multiple values in a single case [Bug #19263] --- lib/ruby_vm/mjit/compiler.rb | 2 +- test/ruby/test_mjit.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-)
2022-12-24Test of environment variables order for HOME on WindowsNobuyoshi Nakada
2022-12-24Add Dir.home test with encodingNobuyoshi Nakada
2022-12-24MJIT: Cancel all on disastrous situations (#7019)Takashi Kokubun
I noticed this while running test_yjit with --mjit-call-threshold=1, which redefines `Integer#<`. When Ruby is monkey-patched, MJIT itself could be broken. Similarly, Ruby scripts could break MJIT in many different ways. I prepared the same set of hooks as YJIT so that we could possibly override it and disable it on those moments. Every constant under RubyVM::MJIT is private and thus it's an unsupported behavior though. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-12-24Merge RubyGems-3.4.0 and Bundler-2.4.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6987
2022-12-24Extract setup of environment variablesNobuyoshi Nakada
2022-12-24Fix missing handling of offset argument in `IO::Buffer` `pread` and ↵Samuel Williams
`pwrite`. (#7012) Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-12-24test/test_trick.rb: Add tests for TRICK 2022 entriesYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/7014