| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
YJIT: Skip type checks on splat args and expandarray
if possible
|
|
|
|
|
|
|
|
| |
I have this as a shell command and Maxime told me that she finds it
useful, too. I tested this on a release build and a dev build.
Note I intentional didn't put `$(Q)` in front of everything so `make`
echos the command it runs.
|
|
|
|
|
|
| |
(https://github.com/ruby/net-http/pull/125)
https://github.com/ruby/net-http/commit/2ea20380fc
|
|
|
|
| |
[Feature #18498]
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/118d28ad27
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/de3b69f1a7
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/2ea2ead1b3
|
|
|
|
|
|
| |
load unexpected class
https://github.com/rubygems/rubygems/commit/795e796a9e
|
|
|
|
|
|
| |
attempting load unexpected class
https://github.com/rubygems/rubygems/commit/9798718b3b
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/3a772125b8
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/4909d071d2
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/5c5d0c5350
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/23880353c1
|
|
|
|
|
| |
`length` is a required argument for `IO::Buffer#read` and
`IO::Buffer#write` methods, and `argc` is already checked with
`rb_check_arity`. Also fix the call-seq of `IO::Buffer#read`.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We shouldn't run gc_verify_internal_consistency after every GC step
when RGENGC_CHECK_MODE >= 2, only when GC has finished. Running it
on every GC step makes it too slow.
|
| |
|
|
|
|
|
|
| |
(https://github.com/ruby/net-http/pull/124)
https://github.com/ruby/net-http/commit/aaf26b21d6
|
| |
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/38ee82c297
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/5fa0ebf09b
|
|
|
|
|
|
| |
Gem.path_separator can also be a regexp...
https://github.com/rubygems/rubygems/commit/7e6e56a5f3
|
|
|
|
|
|
| |
Will save on an error if it would be nil from an exception happening during that line
https://github.com/rubygems/rubygems/commit/d6797a04e9
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/3135ad91d4
|
|
|
|
|
|
| |
For ruby-core compat
https://github.com/rubygems/rubygems/commit/c8f85c91a8
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/f6877c29b9
|
|
|
|
|
|
| |
for gem exec gem
https://github.com/rubygems/rubygems/commit/13a6dd4992
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/a767f7b9be
|
|
|
|
|
|
| |
Also fix native extensions that load dependencies
https://github.com/rubygems/rubygems/commit/a06f9870c7
|
|
|
|
|
|
| |
gem exec
https://github.com/rubygems/rubygems/commit/664f3e1e5f
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/dac1609fd5
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/3078e5834e
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/ca69a317f3
|
| |
|
|
|
|
|
|
|
|
|
| |
* vm_dump.c: Dump machine registers on loongarch64 Linux.
* coroutines: Support for native loongarch64 coroutines.
---------
Co-authored-by: zangruochen <zangruochen@loongson.cn>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.5 to 3.2.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/6998d139ddd3e68c71e9e398d8e40b71a2f39812...69d9d449aced6a2ede0bc19182fadc3a0a42d2b0)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
| |
|
| |
|
|
|
|
| |
Partly reverted 1ddda4c0d7d2b83658ab149e36e088961ca0b2dc
|
|
|
|
| |
https://github.com/ruby/readline-ext/commit/9245965ecd
|
|
|
|
| |
https://github.com/ruby/readline-ext/commit/efe2be6e4c
|
|
|
|
| |
https://github.com/ruby/readline-ext/commit/f034697a48
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when we have a lot of ivars defined, we would exit via
`jit_chain_guard` for megamorphic ivars. Now if we have more than the
max depth of ivars we can call `rb_ivar_set` instead of exiting.
Using the following script:
```ruby
class A
def initialize
@a = 1
end
def a
@a
end
end
N = 30
N.times do |i|
eval <<-eorb
class A#{i} < A
def initialize
@a#{i} = 1
super
end
end
eorb
end
klasses = N.times.map { Object.const_get(:"A#{_1}") }
1000.times do
klasses.each do |k|
k.new.a
end
end
```
Exits before this change show exits for `setinstancevariable`:
```
***YJIT: Printing YJIT statistics on exit***
method call exit reasons:
klass_megamorphic: 24,975 (100.0%)
invokeblock exit reasons:
(all relevant counters are zero)
invokesuper exit reasons:
(all relevant counters are zero)
leave exit reasons:
interp_return: 26,948 (100.0%)
se_interrupt: 1 ( 0.0%)
getblockparamproxy exit reasons:
(all relevant counters are zero)
getinstancevariable exit reasons:
megamorphic: 13,986 (100.0%)
setinstancevariable exit reasons:
megamorphic: 19,980 (100.0%)
opt_aref exit reasons:
(all relevant counters are zero)
expandarray exit reasons:
(all relevant counters are zero)
opt_getinlinecache exit reasons:
(all relevant counters are zero)
invalidation reasons:
(all relevant counters are zero)
num_send: 155,823
num_send_known_class: 0 ( 0.0%)
num_send_polymorphic: 119,880 (76.9%)
bindings_allocations: 0
bindings_set: 0
compiled_iseq_count: 36
compiled_block_count: 158
compiled_branch_count: 240
block_next_count: 10
defer_count: 70
freed_iseq_count: 0
invalidation_count: 0
constant_state_bumps: 0
inline_code_size: 29,216
outlined_code_size: 27,948
freed_code_size: 0
code_region_size: 65,536
live_context_size: 8,322
live_context_count: 219
live_page_count: 4
freed_page_count: 0
code_gc_count: 0
num_gc_obj_refs: 130
object_shape_count: 295
side_exit_count: 58,942
total_exit_count: 85,890
yjit_insns_count: 1,023,581
avg_len_in_yjit: 11.2
Top-4 most frequent exit ops (100.0% of exits):
opt_send_without_block: 24,975 (42.4%)
setinstancevariable: 19,980 (33.9%)
getinstancevariable: 13,986 (23.7%)
leave: 1 ( 0.0%)
```
Exits after this change show we have no exits for `setinstancevariable`.
```
***YJIT: Printing YJIT statistics on exit***
method call exit reasons:
klass_megamorphic: 24,975 (100.0%)
invokeblock exit reasons:
(all relevant counters are zero)
invokesuper exit reasons:
(all relevant counters are zero)
leave exit reasons:
interp_return: 60,912 (100.0%)
se_interrupt: 3 ( 0.0%)
getblockparamproxy exit reasons:
(all relevant counters are zero)
getinstancevariable exit reasons:
(all relevant counters are zero)
setinstancevariable exit reasons:
(all relevant counters are zero)
opt_aref exit reasons:
(all relevant counters are zero)
expandarray exit reasons:
(all relevant counters are zero)
opt_getinlinecache exit reasons:
(all relevant counters are zero)
invalidation reasons:
(all relevant counters are zero)
num_send: 155,823
num_send_known_class: 0 ( 0.0%)
num_send_polymorphic: 119,880 (76.9%)
bindings_allocations: 0
bindings_set: 0
compiled_iseq_count: 36
compiled_block_count: 179
compiled_branch_count: 240
block_next_count: 11
defer_count: 70
freed_iseq_count: 0
invalidation_count: 0
constant_state_bumps: 0
inline_code_size: 31,032
outlined_code_size: 29,708
freed_code_size: 0
code_region_size: 65,536
live_context_size: 8,360
live_context_count: 220
live_page_count: 4
freed_page_count: 0
code_gc_count: 0
num_gc_obj_refs: 130
object_shape_count: 295
side_exit_count: 24,978
total_exit_count: 85,890
yjit_insns_count: 1,076,966
avg_len_in_yjit: 12.2
Top-2 most frequent exit ops (100.0% of exits):
opt_send_without_block: 24,975 (100.0%)
leave: 3 ( 0.0%)
```
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
|
|
|
|
| |
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
Co-authored-by: Jimmy Miller <jimmy.miller@shopify.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(https://github.com/ruby/irb/pull/484)
* Improve assert_indenting helper
Instead of putting assertions inside the `auto_indent` block, we
can just make `auto_indent` return the calculated space count, and use
it for assertion outside of the `auto_indent` block call.
This simplifies the setup code and makes the intention easier to
understand.
* Introduce assert_row_indenting helper
1. Helper users shouldn't need to write 2 assertions for the current and
the next line's indentation.
2. With this new approach, we can generate clearer error message for
both cases:
When the current line's space count doesn't match
```
Incorrect spaces calculation for line:
```
> def each_top_level_statement
```
All lines:
```
def each_top_level_statement
```
<0> expected but was
<nil>
```
When the next line's space count doesn't match
```
Incorrect spaces calculation for line after the current line:
```
def each_top_level_statement
>
```
All lines:
```
def each_top_level_statement
```
<3> expected but was
<2>
```
* Replace assert_indenting with assert_row_indenting
|
|
|
|
|
|
|
|
|
| |
* YJIT: Fix clippy issues and remove unused params
* Remove an unnecessary whitespace
---------
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
|
| |
|