Commit graph

16449 commits

Author SHA1 Message Date
nagachika
a048f7882a merge revision(s) 1cdf8ab07b: [Backport #19323]
[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-25 11:52:21 +09:00
Nobuyoshi Nakada
f89101fa36 [ruby/openssl] Relax error message check for OpenSSL 3.1
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`.

fc4629d246
2023-06-13 14:01:57 +09:00
Hiroshi SHIBATA
34d5d10517
Merge Time-0.2.2 (#7623) 2023-03-30 10:54:12 +00:00
Nobuyoshi Nakada
00041131e2 Skip failing test on MSWin 2023-03-28 22:47:23 +09:00
Hiroshi SHIBATA
c3c461c4ff
Merge RubyGems-3.4.10 and Bundler-2.4.10 (#7479)
* 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-28 11:36:47 +00:00
Hiroshi SHIBATA
f8c775cb41
Use URI-0.12.1 for Ruby 3.2 (#7603)
* Merge URI-0.12.1

* Use URI-0.12.1

* Update core_assertions for using assert_linear_performance
2023-03-28 11:36:36 +00:00
NARUSE, Yui
582aadb390 merge revision(s) 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-28 17:02:53 +09:00
NARUSE, Yui
fb4ffce0dd merge revision(s) 680bd9027f: [Backport #19471]
[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-28 14:25:13 +09:00
NARUSE, Yui
400ccb16ee merge revision(s) cb22d78354: [Backport #19536]
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-23 08:11:23 +09:00
NARUSE, Yui
ad6fe84dfa merge revision(s) dddc542e9b: [Backport #19476]
[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-22 10:34:12 +09:00
NARUSE, Yui
4b4087dce3 merge revision(s) e22c4e8877: [Backport #19467]
[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-20 15:06:34 +09:00
NARUSE, Yui
b73a073597 merge revision(s) 0eb634ae73: [Backport #19464]
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-15 16:36:32 +09:00
NARUSE, Yui
59eb18037f merge revision(s) dd28c55a7c: [Backport #19445]
[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-08 12:02:22 +09:00
NARUSE, Yui
4d75035e17 merge revision(s) 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-07 19:48:32 +09:00
NARUSE, Yui
f93c7b9f58 merge revision(s) 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-04 15:39:47 +09:00
NARUSE, Yui
53f6173cfc merge revision(s) 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-03-02 09:29:38 +09:00
NARUSE, Yui
3decf7df6f merge revision(s) 3a7367ccc3: [Backport #19403]
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-07 15:15:17 +09:00
NARUSE, Yui
7246cd0081 merge revision(s) fad48fefe1: [Backport #19399]
[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-07 13:46:36 +09:00
NARUSE, Yui
3426ebd048 merge revision(s) c6f84e9189: [Backport #19398]
[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-06 16:41:23 +09:00
Hiroshi SHIBATA
f4e6e78410
Merge RubyGems 3.4.6 and Bundler 2.4.6 (#7214)
Merge RubyGems-3.4.6 and Bundler-2.4.6
2023-02-01 12:05:19 +09:00
NARUSE, Yui
ca75332f46 merge revision(s) eccfc978fd: [Backport #19379]
Fix parsing of regexps that toggle extended mode on/off inside regexp

	This was broken in ec3542229b. 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-31 15:28:01 +09:00
NARUSE, Yui
5a2b28909e merge revision(s) 3f54d09a5b: [Backport #19390]
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-31 13:39:13 +09:00
NARUSE, Yui
1689d8bb48 merge revision(s) 21dced8b01: [Backport #19389]
[ruby/stringio] [Bug #19389] Fix chomping with longer separator

	eb322a9716
	---
	 ext/stringio/stringio.c        | 5 +++--
	 test/stringio/test_stringio.rb | 2 ++
	 2 files changed, 5 insertions(+), 2 deletions(-)
2023-01-31 11:08:50 +09:00
Hiroshi SHIBATA
a22eca8231
Merge the latest stable versions of RubyGems and Bundler to Ruby 3.2.x (#7061)
[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-25 23:32:01 +09:00
NARUSE, Yui
fee5b8f263 merge revision(s) 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-25 16:34:24 +09:00
NARUSE, Yui
c0df0a85de merge revision(s) ed6fbb79e1: [Backport #19339]
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-20 17:01:47 +09:00
NARUSE, Yui
373e62248c merge revision(s) f7b72462aa: [Backport #19356]
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-20 12:24:24 +09:00
NARUSE, Yui
6a8fcb5021 merge revision(s) 3be2acfafd: [Backport #19327]
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-19 21:52:47 +09:00
Peter Zhu
98abe4a0be Fix test when Ruby is verbose
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-19 15:50:58 +09:00
NARUSE, Yui
1a2447ac99 merge revision(s) 979dd02e2f: [Backport #19262]
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-19 11:05:29 +09:00
NARUSE, Yui
d7fb4629b4 merge revision(s) 837ef8911c: [Backport #19305]
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-18 20:15:28 +09:00
NARUSE, Yui
1fb5eb5740 merge revision(s) aeddc19340: [Backport #19316]
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-18 18:56:51 +09:00
NARUSE, Yui
97c32b49e2 merge revision(s) 43ff0c2c48: [Backport #19299]
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-18 17:18:44 +09:00
NARUSE, Yui
52ea5ea990 merge revision(s) 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-18 17:17:27 +09:00
NARUSE, Yui
89cd61890f merge revision(s) 542e984d82: [Backport #19292]
[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-17 11:21:00 +09:00
NARUSE, Yui
49cf0896a2 merge revision(s) 90a80eb076: [Backport #19284]
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(-)
2023-01-17 11:20:40 +09:00
NARUSE, Yui
a7d467a792 merge revision(s) b726d60c98: [Backport #19273]
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-29 15:59:52 +09:00
NARUSE, Yui
5c551ac59f merge revision(s) fc03ba50f1: [Backport #19263]
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-27 14:56:51 +09:00
Nobuyoshi Nakada
4378de02f9
Test of environment variables order for HOME on Windows 2022-12-24 23:49:27 +09:00
Nobuyoshi Nakada
6a55b4601a
Add Dir.home test with encoding 2022-12-24 22:55:12 +09:00
Takashi Kokubun
b9332ac8e7
MJIT: Cancel all on disastrous situations (#7019)
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.
2022-12-24 01:13:40 -08:00
Hiroshi SHIBATA
f6620037ba Merge RubyGems-3.4.0 and Bundler-2.4.0 2022-12-24 16:57:07 +09:00
Nobuyoshi Nakada
d5635dfe36
Extract setup of environment variables 2022-12-24 11:29:11 +09:00
Samuel Williams
11ad9a42d7
Fix missing handling of offset argument in IO::Buffer pread and pwrite. (#7012) 2022-12-24 07:52:10 +13:00
Yusuke Endoh
a8485291bb test/test_trick.rb: Add tests for TRICK 2022 entries 2022-12-24 03:19:45 +09:00
Peter Zhu
1876cda972 Add tests for compacting shared arrays 2022-12-23 11:21:14 -05:00
Peter Zhu
7891f94071 Don't allow re-embedding frozen arrays
Frozen arrays should not move from heap allocated to embedded because
frozen arrays could be shared roots for other (shared) arrays. If the
frozen array moves from heap allocated to embedded it would cause issues
since the shared array would no longer know where to set the pointer
in the shared root.
2022-12-23 11:21:14 -05:00
Nobuyoshi Nakada
17b63ab6b1
[ruby/rdoc] Fix fragile tests
When the temporary path is long enough, the formatter may fold the
path and may hit a hyphen at the end of line, and miscounted.

5f46479543
2022-12-23 20:31:25 +09:00
Nobuyoshi Nakada
9c1f03a38a
Debug for zlinux CI [ci skip] 2022-12-23 16:57:15 +09:00
Nobuyoshi Nakada
792c50e917 [ruby/rdoc] Clean up home directories for each test
f067c174da
2022-12-23 11:05:09 +09:00