| Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6622
|
|
|
|
|
|
Not only powerpc64le, also s390x and arm32 seem failing too. These
failures are probably caused by filesystem settings on Travis, but
unrelated to CPUs.
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6616
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6616
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6618
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6564
Merged-By: nobu <nobu@ruby-lang.org>
|
|
`Complex.polar` accepts Complex values as arguments for the polar form as long
as the value of the complex has no imaginary part (ie it is 'real'). In
`f_complex_polar` this is handled by extracting the real part of the arguments.
However in the case `polar` is called with only a single argument, the absolute
value (abs), then the Complex is created without applying a check on the type
of abs, meaning it is possible to create a Complex where the real part is itself
an instance of a Complex. This change removes the short circuit for the single
argument case meaning the real part extraction is performed correctly
(by f_complex_polar).
Also adds an example to `spec/ruby/core/complex/polar_spec.rb` to check that
the real part of a complex argument is correctly extracted and used in the
resulting Complex real and imaginary parts.
Notes:
Merged: https://github.com/ruby/ruby/pull/6568
Merged-By: nobu <nobu@ruby-lang.org>
|
|
|
|
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
jruby-head (which will be JRuby 9.4.0.0) can now properly process
the keywords to Kernel#warn. I cannot think of any capability based
test for this so I constrained it using a version guard. Only JRuby
will ever hit the version guard.
https://github.com/rubygems/rubygems/commit/cd468c7e0f
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6614
|
|
`iv_count` is a misleading name because when IVs are unset, the new
shape doesn't decrement this value. `next_iv_count` is an accurate, and
more descriptive name.
Notes:
Merged: https://github.com/ruby/ruby/pull/6608
|
|
Before object shapes, we were using class serial to invalidate
inline caches. Now that we use shape_id for inline cache keys,
the class serial is unnecessary.
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/6605
|
|
Previously, we found the current page by rounding the current pointer to
the closest smaller page size. This is incorrect because pages are
relative to the start of the address we reserve. For example, if the
starting address is 12KiB modulo the 16KiB page size, once we have more
than 4KiB of code, calculating with the address would incorrectly give
us page 1 when we're actually still on page 0.
Previously, I can reproduce crashes with:
make btest RUN_OPTS=--yjit-code-page-size=32
on ARM64 macOS, where system page sizes are 16KiB.
Notes:
Merged: https://github.com/ruby/ruby/pull/6607
Merged-By: XrXr
|
|
This patch makes sure that we're not accidentally reading rb_num_t
instruction arguments as VALUE and accidentally baking them into
code and marking them. Some of these are simply moving the cast earlier,
but some of these avoid potential problems for flag and ID arguments.
Follow-up for 39f7eddec4c55711d56f05b085992a83bf23159e.
Notes:
Merged: https://github.com/ruby/ruby/pull/6606
|
|
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
GC uses shapes to determine IV buffer width. Since allocation can
trigger GC, we need to ensure we only set the shape once we've fully
allocated new memory for the IV buffer, otherwise the GC can end up
trying to mark invalid memory.
Notes:
Merged: https://github.com/ruby/ruby/pull/6601
|
|
(https://github.com/ruby/stringio/pull/36)
Treats:
- #each_codepoint
- #gets
- #readline (shows up in doc for module IO::generic_readable, not class
StringIO)
- #each_line
https://github.com/ruby/stringio/commit/659aca7fe5
|
|
This reverts commit https://github.com/ruby/net-http/commit/753cae3bbccc.
https://github.com/ruby/net-http/commit/98caa38204
|
|
Fixes [Bug #18983]
Notes:
Merged: https://github.com/ruby/ruby/pull/6604
|
|
The commit 575ae50d16a03ed23357ec4ea0dbf7167fc26c8c was for debugging
the failure triggered by f55212bce939f736559709a8cd16c409772389c8, and
it was fixed at the commit 39f7eddec4c55711d56f05b085992a83bf23159e.
|
|
The expandarray instruction interpreters its arguments as rb_num_t.
YJIT was treating the num argument as a VALUE previously and when
it has a certain bit pattern, it can look like a GC pointer. The
argument is not a pointer, so YJIT crashed when trying to mark those
pointers.
This bug existed previously, but our test suite didn't expose it until
f55212bce939f736559709a8cd16c409772389c8. TestArgf#test_to_io has a
line like:
a1, a2, a3, a4, a5, a6, a7, a8 = array
Which maps to an expandarray with an argument of 8. Qnil happened to
be defined as 8, which masked the issue.
Fix it by not using the argument as a VALUE.
Notes:
Merged: https://github.com/ruby/ruby/pull/6603
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6600
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6600
|
|
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/6595
|
|
Implements [Feature #12084]
Returns the object for which the receiver is the singleton class, or
raises TypeError if the receiver is not a singleton class.
Notes:
Merged: https://github.com/ruby/ruby/pull/6450
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6599
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6599
|
|
|
|
This patch pushes dummy frames when loading code for the
profiling purpose.
The following methods push a dummy frame:
* `Kernel#require`
* `Kernel#load`
* `RubyVM::InstructionSequence.compile_file`
* `RubyVM::InstructionSequence.load_from_binary`
https://bugs.ruby-lang.org/issues/18559
Notes:
Merged: https://github.com/ruby/ruby/pull/6572
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6598
|
|
|
|
Upper bits than the least significant 4 bits need not be 0.
|
|
YJIT: Respect writable_addrs on --yjit-dump-iseq-disasm
as well
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
|
|
* Ensure that blocked fibers don't prevent valid wakeups.
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
This solves multiple problems.
First, RB_VM_LOCK_ENTER/LEAVE is a barrier. We could at least use the
_NO_BARRIER variant.
Second, this doesn't need to interfere with GC or other GVL users when
multiple Ractors are used. This needs to be used in very few places, so
the benefit of fine-grained locking would outweigh its small maintenance
cost.
Third, it fixes a crash for YJIT. Because YJIT is never disabled until a
process exits unlike MJIT that finishes earlier, we could call jit_cont_free
when EC no longer exists, which crashes RB_VM_LOCK_ENTER.
|
|
YJIT: Skip dumping code for the other cb
on --yjit-dump-disasm
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
|
|
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/6590
|
|
Previously, enabling only "disasm" didn't actually build. Since these
two features are closely related and we don't really use one without the
other, let's simplify and merge the two features together.
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
(https://github.com/ruby/stringio/pull/35)
Treated:
- #getc
- #getbyte
- #ungetc
- #ungetbyte
- #readchar
- #readbyte
- #each_char
https://github.com/ruby/stringio/commit/6400af8d9f
|
|
Shapes gives us an almost exact count of instance variables on an
object. Since we know the number of instance variables that have been
set, we will never access slots that haven't been initialized with an
IV.
Notes:
Merged: https://github.com/ruby/ruby/pull/6585
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6589
|
|
|