| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
e7fc353f04 reverted vm_ic_hit_p's signature change made in 53babf35ef,
which broke JIT compilation of getinlinecache.
To make sure it doesn't happen again, I separated vm_inlined_ic_hit_p to
make the intention clear.
|
|
|
|
|
| |
Other `_mjit_compile_*.erb` files don't use goto. These files'd better
be consistent for readability.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constant cache `IC` is accessed by non-atomic manner and there are
thread-safety issues, so Ruby 3.0 disables to use const cache on
non-main ractors.
This patch enables it by introducing `imemo_constcache` and allocates
it by every re-fill of const cache like `imemo_callcache`.
[Bug #17510]
Now `IC` only has one entry `IC::entry` and it points to
`iseq_inline_constant_cache_entry`, managed by T_IMEMO object.
`IC` is atomic data structure so `rb_mjit_before_vm_ic_update()` and
`rb_mjit_after_vm_ic_update()` is not needed.
|
|
|
|
| |
Since commit:6537dc309962c7fefcb8d698bbebe4e4f78d0096.
|
| |
|
|
|
|
|
| |
Suggested by @hanachin at
https://github.com/rurema/doctree/pull/2425#discussion_r551327592
|
| |
|
| |
|
|
|
|
|
|
| |
`make-snapshot` with `-extlibs` (or `-extlibs=yes`) includes
extracted and patched external library sources that the extension
libraries depend on.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
[Feature #10499]
[Feature #15554]
|
| |
|
| |
|
|
|
|
|
|
| |
https://github.com/ruby/bigdecimal/commit/c2b22cc8b3
https://github.com/ruby/bigdecimal/commit/8cbca8481d
https://github.com/ruby/bigdecimal/commit/f05aecf673
|
|
|
|
| |
55634a8af18a52df86c4275d70fa1179118bcc20
|
|
|
|
| |
55634a8af18a52df86c4275d70fa1179118bcc20
|
| |
|
| |
|
|
|
|
|
|
|
| |
It is unnecessary because RUBY_EXTCONF_H has already been included in
ruby/internal/config.h.
This reverts commit 0644f466b0ef017202712882b557ba32863002c4.
|
| |
|
| |
|
|
|
|
| |
https://github.com/ruby/timeout/commit/f9a9758a41
|
|
|
|
| |
When a worker is stopped, nobody will JIT a method for you.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The count of rb_alloc_tmp_buffer_with_count is the allocation size
counted in VALUE size but not in the requested element size.
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
|
|
|
|
|
| |
Get rid of "present but cannot be compiled" headers, on some
multi-architecture platforms.
|
| |
|
|
|
|
| |
I simply can't tell which of compare-ruby and built-ruby is what.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Ruby 2.4 does not have RbConfig::LIMITS.
https://github.com/ruby/bigdecimal/commit/c8087523b0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change improves the conversion speed from small integers.
```
Comparison:
big_n9
master: 4003688.9 i/s
bigdecimal 3.0.0: 1270551.0 i/s - 3.15x slower
big_n19
master: 5410096.4 i/s
bigdecimal 3.0.0: 1000250.3 i/s - 5.41x slower
```
https://github.com/ruby/bigdecimal/commit/3429bd7e6f
|
| |
|
|
|
|
|
|
|
| |
Keep the default value of BigDecimal.limit by BigDecimal.save_limit
to avoid failures of the other test methods due to the unexpected limit.
https://github.com/ruby/bigdecimal/commit/bdc1cc6585
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem
===
Arguments information is missing for endless method without parens.
For example:
```ruby
# ok
pp RubyVM::AbstractSyntaxTree.parse(<<~RUBY).children[2]
def x() = 42
RUBY
# => (DEFN@1:0-1:12
# mid: :x
# body:
# (SCOPE@1:0-1:12
# tbl: []
# args:
# (ARGS@1:5-1:6
# pre_num: 0
# pre_init: nil
# opt: nil
# first_post: nil
# post_num: 0
# post_init: nil
# rest: nil
# kw: nil
# kwrest: nil
# block: nil)
# body: (LIT@1:10-1:12 42)))
# ok
pp RubyVM::AbstractSyntaxTree.parse(<<~RUBY).children[2]
def x() 42 end
RUBY
# => (DEFN@1:0-1:14
# mid: :x
# body:
# (SCOPE@1:0-1:14
# tbl: []
# args:
# (ARGS@1:5-1:6
# pre_num: 0
# pre_init: nil
# opt: nil
# first_post: nil
# post_num: 0
# post_init: nil
# rest: nil
# kw: nil
# kwrest: nil
# block: nil)
# body: (LIT@1:8-1:10 42)))
# It has a problem, the `args` is nil
pp RubyVM::AbstractSyntaxTree.parse(<<~RUBY).children[2]
def x = 42
RUBY
# => (DEFN@1:0-1:10
# mid: :x
# body: (SCOPE@1:0-1:10 tbl: [] args: nil body: (LIT@1:8-1:10 42)))
```
It causes an error if a program expects `args` node exists.
For example: https://github.com/ruby/rbs/issues/551
Solution
====
Call `new_args` on this case.
|
| |
|
| |
|
| |
|