| Age | Commit message (Collapse) | Author |
|
* Correct JIT entry points for optionals so each optional start with nil
before their initialization routine runs. Establish
`jit_entry_points[filled_opts_num]` gives the appropriate entry point
* Correct number of HIR block parameters for each JIT entry point
* Entry points that share the same ISEQ PC get separate entries since
they start with different state. No more deduplication.
* Reject post parameters. Was hidden behind check for optionals.
* Make sure to visit every BB in iseq_to_hir(). Some wasn't visited
when the initialization routine for an optional terminates the block
in a `SideExit`. Remove the now impossible `FailedOptionalArguments`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lobsters before:
```
Top-14 instructions with uncategorized fallback reason (100.0% of total 5,583,226):
invokesuper: 3,039,693 (54.4%)
invokeblock: 1,181,433 (21.2%)
sendforward: 572,612 (10.3%)
opt_eq: 464,760 ( 8.3%)
opt_plus: 169,904 ( 3.0%)
opt_minus: 77,487 ( 1.4%)
opt_send_without_block: 42,264 ( 0.8%)
opt_gt: 12,263 ( 0.2%)
opt_neq: 9,033 ( 0.2%)
opt_mult: 8,384 ( 0.2%)
opt_or: 4,792 ( 0.1%)
opt_lt: 404 ( 0.0%)
opt_and: 160 ( 0.0%)
opt_ge: 37 ( 0.0%)
Top-15 send fallback reasons (100.0% of total 33,316,627):
send_without_block_polymorphic: 12,847,877 (38.6%)
uncategorized: 5,583,226 (16.8%)
one_or_more_complex_arg_pass: 4,504,446 (13.5%)
send_not_optimized_method_type: 3,773,513 (11.3%)
send_without_block_no_profiles: 2,663,575 ( 8.0%)
send_no_profiles: 2,206,479 ( 6.6%)
send_without_block_not_optimized_method_type_optimized: 742,574 ( 2.2%)
send_polymorphic: 467,750 ( 1.4%)
send_without_block_megamorphic: 428,364 ( 1.3%)
send_without_block_direct_too_many_args: 33,097 ( 0.1%)
send_without_block_cfunc_array_variadic: 22,255 ( 0.1%)
obj_to_string_not_string: 19,435 ( 0.1%)
send_megamorphic: 17,153 ( 0.1%)
send_without_block_not_optimized_method_type: 5,922 ( 0.0%)
ccall_with_frame_too_many_args: 961 ( 0.0%)
```
lobsters after:
```
Top-4 instructions with uncategorized fallback reason (100.0% of total 4,835,995):
invokesuper: 3,039,692 (62.9%)
invokeblock: 1,181,427 (24.4%)
sendforward: 572,612 (11.8%)
opt_send_without_block: 42,264 ( 0.9%)
Top-17 send fallback reasons (100.0% of total 33,316,645):
send_without_block_polymorphic: 12,847,879 (38.6%)
uncategorized: 4,835,995 (14.5%)
one_or_more_complex_arg_pass: 4,502,767 (13.5%)
send_without_block_no_profiles: 2,663,578 ( 8.0%)
send_not_optimized_method_type: 2,381,743 ( 7.1%)
send_no_profiles: 2,206,481 ( 6.6%)
send_cfunc_variadic: 1,391,775 ( 4.2%)
send_without_block_operands_not_fixnum: 747,228 ( 2.2%)
send_without_block_not_optimized_method_type_optimized: 742,574 ( 2.2%)
send_polymorphic: 467,750 ( 1.4%)
send_without_block_megamorphic: 428,364 ( 1.3%)
send_without_block_direct_too_many_args: 33,097 ( 0.1%)
send_without_block_cfunc_array_variadic: 22,255 ( 0.1%)
obj_to_string_not_string: 19,440 ( 0.1%)
send_megamorphic: 17,153 ( 0.1%)
send_without_block_not_optimized_method_type: 7,605 ( 0.0%)
ccall_with_frame_too_many_args: 961 ( 0.0%)
```
|
|
|
|
This reverts commit 946695cdad874e91bc25bedc3c7b322934ca0f07.
Apparently this doesn't work for test-bundled-gems
|
|
$(RUBY_TESTOPTS) are used in $(TESTOPTS), so if you pass $(TESTOPTS),
it'd be ignored.
|
|
Previously because we did a stack_push before ccall, in some cases we
could end up pushing an uninitialized value to the VM stack when
spilling regs as part of the ccall.
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
|
|
|
|
Fixes [Bug #21661]
https://github.com/ruby/prism/commit/475fa46a82
|
|
While the latter creates an intermediate array of all method names
including all ancestors, the former just traverse the inheritance
chain and can stop if found once.
https://github.com/ruby/prism/commit/6da384dd0e
|
|
Should fail even with `-c` option.
|
|
and has_rdoc?
https://github.com/ruby/rubygems/commit/b043538576
|
|
https://github.com/ruby/rubygems/commit/9b19e1f555
|
|
https://github.com/ruby/rubygems/commit/de269cfbb6
|
|
Gem::DependencyInstaller#find_gems_with_sources
https://github.com/ruby/rubygems/commit/1b3f3bf194
|
|
https://github.com/ruby/rubygems/commit/94d4e633d1
|
|
https://github.com/ruby/rubygems/commit/728269cc4a
|
|
validate_dependencies and validate_permissions
https://github.com/ruby/rubygems/commit/fbf38fc190
|
|
https://github.com/ruby/rubygems/commit/84ceaff1b7
|
|
https://github.com/ruby/rubygems/commit/f4b4f12f91
|
|
https://github.com/ruby/rubygems/commit/96cef34041
|
|
Gem::BasicSpecification.default_specifications_dir
https://github.com/ruby/rubygems/commit/60f0b87d47
|
|
https://github.com/ruby/rubygems/commit/3f5330c9fc
|
|
https://github.com/ruby/rubygems/commit/be3b09c786
|
|
https://github.com/ruby/rubygems/commit/74c9eaf1f0
|
|
https://www.unicode.org/Public/emoji/ReadMe.txt
> This directory contains data files for versions 1.0 to 16.0 of Unicode Emoji.
> Starting with Unicode 17.0.0, the data files for Unicode Emoji are published in
> https://www.unicode.org/Public/<version>/emoji/
> together with the related files in
> https://www.unicode.org/Public/<version>/ucd/emoji/
|
|
|
|
While the latter creates an intermediate array of all method names
including all ancestors, the former just traverse the inheritance
chain and can stop if found once.
https://github.com/ruby/rubygems/commit/b291070b3b
|
|
If we are using multiple Ractors, other Ractors may allocate objects after
rb_gc_impl_before_fork is ran because it does not lock the VM. This can cause
the GC to be in a bad state since rb_gc_impl_before_fork may have terminated
GC threads so a GC cannot run until rb_gc_impl_after_fork is ran.
https://github.com/ruby/mmtk/commit/e4bea5676d
|
|
Fix the
```
write(2, "ruby: ZJIT has panicked. More info to follow...\n", 48) = 48
write(2, "\nthread '<unnamed>' panicked at zjit/src/backend/lir.rs:160:17:\nassertion failed: num_bits <= out_num_bits\n", 107) = 107
```
based on
```
#25 0x0000aaaaaae8fb14 in zjit::backend::lir::Opnd::mem (num_bits=64, base=..., disp=0) at zjit/src/backend/lir.rs:160
#26 zjit::backend::arm64::{impl#3}::arm64_split::split_memory_address (asm=<optimized out>,
opnd=<error reading variable: Cannot access memory at address 0x0>) at zjit/src/backend/arm64/mod.rs:260
#27 zjit::backend::arm64::{impl#3}::arm64_split::split_load_operand (asm=<optimized out>, opnd=...) at zjit/src/backend/arm64/mod.rs:273
```
|
|
|
|
|
|
|
|
`brace_block` is `'{' brace_body '}'` or `k_do do_body k_end`.
Both of them are not null so no need to check `$5`.
|
|
```
$ rake spec:regular
Successfully built RubyGem
Name: bundler
Version: 4.0.0.dev
File: bundler-4.0.0.dev.gem
```
https://github.com/ruby/rubygems/commit/8f0ca5eefa
|