Age | Commit message (Collapse) | Author |
|
This makes the binary 272 bytes smaller on -O3 GCC 10.2.0.
Notes:
Merged: https://github.com/ruby/ruby/pull/3494
|
|
`rm_rf` does not support globbing, so not all files get deleted.
Notes:
Merged: https://github.com/ruby/ruby/pull/3497
|
|
automatically
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Do not repeat yourself.
Notes:
Merged: https://github.com/ruby/ruby/pull/3405
|
|
A single quote "is representable either by itself or by the escape
sequence", according to ISO/IEC 9899 (checked all versions). So this is
not a bug fix. But the generated output is a bit readable without
backslashes.
Notes:
Merged: https://github.com/ruby/ruby/pull/3405
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3351
|
|
|
|
Requested by ko1.
Notes:
Merged: https://github.com/ruby/ruby/pull/3314
|
|
|
|
Was my bad to assume sp_inc was positive. Real criteria is the
calculated sp is non-negative. We have to assert that.
|
|
Stacks are emulated in MJIT, must not touch the original VM stack.
See also http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3061353
|
|
Instead of doubling the invokebuiltin logic here and there, use the same
insns.def definition for both MJIT/non-JIT situations.
Notes:
Merged: https://github.com/ruby/ruby/pull/3305
|
|
This commit fixes compiler error on MSVC. %p on that platform is not
suitable to represent a compile-time constant.
https://ci.appveyor.com/project/ruby/ruby/builds/34017163/job/vj2a8uk3gwv9yxak#L24381
Notes:
Merged: https://github.com/ruby/ruby/pull/3305
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3305
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3305
|
|
We can obtain the verbatim source code of Primitive.cexpr!. Why not
paste that content into the JITed program.
Notes:
Merged: https://github.com/ruby/ruby/pull/3305
|
|
Noticed that struct rb_builtin_function is a purely compile-time
constant. MJIT can eliminate some runtime calculations by statically
generate dedicated C code generator for each builtin functions.
Notes:
Merged: https://github.com/ruby/ruby/pull/3305
|
|
* removed out-of-date and duplicate list
* stated that everything synced from github
|
|
|
|
|
|
|
|
|
|
which is checked by the first guard. When JIT-inlined cc and operand
cd->cc are different, the JIT-ed code might wrongly dispatch cd->cc even
while class check is done with another cc inlined by JIT.
This fixes SEGV on railsbench.
|
|
|
|
|
|
|
|
Recent changes break Primitive.cinit!(c_code) so fix it.
|
|
Fix CI failure like
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3043247
introduced by a69dd699ee630dd1086627dbca15a218a8538b6f
|
|
Primitve.cexpr! and .cstmt! can access Ruby's parameter and
*local variables* (note that local parameters are also local
variables). However recent changes only allow to access
parameters. This patch fix it.
For example, the following code can work:
def foo a, b, k: :kw, **kwrest
c = a + b
d = k
e = kwrest
p Primitive.cstmt!(%q(rb_p(rb_ary_new_from_args(5, a, b, c, d, e));
return Qnil;))
end
|
|
when an ISeq has multiple ivar accesses.
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
Use ID instead of GENTRY for gvars.
Global variables are compiled into GENTRY (a pointer to struct
rb_global_entry). This patch replace this GENTRY to ID and
make the code simple.
We need to search GENTRY from ID every time (st_lookup), so
additional overhead will be introduced.
However, the performance of accessing global variables is not
important now a day and this simplicity helps Ractor development.
Notes:
Merged-By: ko1 <ko1@atdot.net>
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3272
|
|
|
|
|