| Age | Commit message (Collapse) | Author |
|
This commit does a bunch of stuff to try to eliminate as many
unnecessary mov instructions as possible.
First, it introduces the Insn::LoadInto instruction. Previously
when we needed a value to go into a specific register (like in
Insn::CCall when we're putting values into the argument registers
or in Insn::CRet when we're putting a value into the return
register) we would first load the value and then mov it into the
correct register. This resulted in a lot of duplicated work with
short live ranges since they basically immediately we unnecessary.
The new instruction accepts a destination and does not interact
with the register allocator at all, making it much more efficient.
We then use the new instruction when we're loading values into
argument registers for AArch64 or X86_64, and when we're returning
a value from AArch64. Notably we don't do it when we're returning
a value from X86_64 because everything can be accomplished with a
single mov anyway.
A couple of unnecessary movs were also present because when we
called the split_load_opnd function in a lot of split passes we
were loading all registers and instruction outputs. We no longer do
that.
This commit also makes it so that UImm(0) passes through the
Insn::Store split without attempting to be loaded, which allows it
can take advantage of the zero register. So now instead of mov-ing
0 into a register and then calling store, it just stores XZR.
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6328
|
|
classic console(conhost.exe) reports an input with ALT+NUMPAD as VK_MENU, KeyUp, and uChar!=0.
additional fix for #5634
Notes:
Merged: https://github.com/ruby/ruby/pull/6328
|
|
UnicodeChar with lower byte == 0 has dropped accidentaly
this is additional fix for #5634
Notes:
Merged: https://github.com/ruby/ruby/pull/6328
|
|
Get rid of the conflict with system-provided small `off_t`.
Notes:
Merged: https://github.com/ruby/ruby/pull/6329
|
|
Already using `rb_w32_truncate` and `rb_w32_ftruncate`, and
`HAVE_FTRUNCATE` has been added 14 years ago.
Notes:
Merged: https://github.com/ruby/ruby/pull/6329
|
|
We don't need it, and in string interpolation context
that's the common case.
Notes:
Merged: https://github.com/ruby/ruby/pull/6334
|
|
That's about 1.30x faster.
Notes:
Merged: https://github.com/ruby/ruby/pull/6334
|
|
https://github.com/rubygems/rubygems/commit/ca8d47e53a
|
|
Fixes id.h error during updating ripper.c by `make after-update`.
While it used to update id.h in the build directory, but was trying to
update ripper.c in the source directory. In principle, files in the
source directory can or should not depend on files in the build
directory.
|
|
Separate the logic accross the tables from the template view for
id.h.
|
|
The current code would define ruby_qsort as a wrapper of qsort_s
when it is available. When both qsort_s and POSIX (GNU) qsort_r
are available, we should call qsort_r directly instead, and
the qsort_s wrapper is redundant.
Notes:
Merged: https://github.com/ruby/ruby/pull/6332
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Ractor-compliance
https://github.com/ruby/forwardable/commit/c91f41f4fa
|
|
https://github.com/ruby/ipaddr/commit/73461724e5
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6331
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6331
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6330
|
|
|
|
|
|
|
|
I meant the other one. Otherwise this option doesn't make sense.
|
|
to let mjit_add_iseq_to_process work
|
|
|
|
|
|
fixing the behavior of b726c06e7eeafff52e368179dbe79a11b1aff975
|
|
|
|
|
|
Resolves CVE-2022-25857, among other fixes.
https://github.com/ruby/psych/commit/918cd25d37
|
|
Fix ruby/psych#572
https://github.com/ruby/psych/commit/92304269bc
|
|
we should handle ensure block when omit this test
|
|
|
|
https://github.com/rubygems/rubygems/commit/e4cee1f975
|
|
and add another useful one instead.
|
|
|
|
|
|
https://github.com/rubygems/rubygems/commit/c5b2960388
|
|
https://github.com/rubygems/rubygems/commit/f9a51e4380
|
|
http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220902T063002Z.fail.html.gz
|
|
http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220906T043002Z.fail.html.gz
http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220905T103002Z.fail.html.gz
|
|
|
|
|
|
I'm thinking about Ruby builtin code instead of doing this.
It'll be hopefully more portable and easier because the same C code could
handle both 32bit and 64bit.
|
|
The interface is similar to RubyVM::ISeq.translate; it's used if defined.
Same as --mjit=pause, this is an undocumented feature for MJIT experiments.
|
|
for performance
|
|
You may use `RUBYOPT=--mjit=pause irb` to play with RubyVM::MJIT::C,
control the boot timing of MJIT, or customize the implementation while
paused. It's an undocumented feature for such experiments.
|
|
fork is for parallel compilation, but --mjit-wait cancels it.
It's more useful to not fork it for binding.irb, debugging, etc.
|