aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* YJIT: Skip type checks on splat args and expandarray if possible (#7363)Takashi Kokubun2023-02-231-48/+46
| | | | | YJIT: Skip type checks on splat args and expandarray if possible
* YJIT: Add `make yjit-smoke-test` [ci skip]Alan Wu2023-02-231-0/+9
| | | | | | | | 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.
* [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTPBurdette Lamar2023-02-231-43/+87
| | | | | | (https://github.com/ruby/net-http/pull/125) https://github.com/ruby/net-http/commit/2ea20380fc
* Implement ObjectSpace::WeakKeyMap basic allocatorJean Boussier2023-02-235-2/+447
| | | | [Feature #18498]
* [rubygems/rubygems] lint fix againMercedes Bernard2023-02-231-1/+1
| | | | https://github.com/rubygems/rubygems/commit/118d28ad27
* [rubygems/rubygems] lint fixMercedes Bernard2023-02-231-7/+7
| | | | https://github.com/rubygems/rubygems/commit/de3b69f1a7
* [rubygems/rubygems] add safe_load_marshal for gem::version and gem::specMercedes Bernard2023-02-231-0/+12
| | | | https://github.com/rubygems/rubygems/commit/2ea2ead1b3
* [rubygems/rubygems] test Bundler::Fetcher that error raised when attempting ↵Mercedes Bernard2023-02-231-0/+30
| | | | | | load unexpected class https://github.com/rubygems/rubygems/commit/795e796a9e
* [rubygems/rubygems] test rubygems_integration that error raised when ↵Mercedes Bernard2023-02-231-0/+11
| | | | | | attempting load unexpected class https://github.com/rubygems/rubygems/commit/9798718b3b
* [rubygems/rubygems] add test for private load_marshal methodMercedes Bernard2023-02-231-0/+5
| | | | https://github.com/rubygems/rubygems/commit/3a772125b8
* [rubygems/rubygems] make Bundler.load_marshal privateMercedes Bernard2023-02-232-8/+8
| | | | https://github.com/rubygems/rubygems/commit/4909d071d2
* [rubygems/rubygems] safe marshal gem specs when inflatingMercedes Bernard2023-02-232-3/+3
| | | | https://github.com/rubygems/rubygems/commit/5c5d0c5350
* [rubygems/rubygems] safe marshal gem versions when fetching Marshal.specs.4.8.gzMercedes Bernard2023-02-232-2/+2
| | | | https://github.com/rubygems/rubygems/commit/23880353c1
* [Bug #19459] Remove unnecessary always-true checks (#7362)Nobuyoshi Nakada2023-02-231-17/+7
| | | | | `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`.
* Move `dump_machine_register` definitionsNobuyoshi Nakada2023-02-231-19/+10
|
* YJIT: Introduce Opnd::Stack (#7352)Takashi Kokubun2023-02-225-50/+80
|
* * remove trailing spaces. [ci skip]git2023-02-221-1/+1
|
* Make GC faster when RGENGC_CHECK_MODE >= 2Peter Zhu2023-02-221-8/+4
| | | | | | 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.
* [lldb] Add a print_flags command (#7358)Matt Valentine-House2023-02-222-3/+33
|
* [ruby/net-http] [DOC] Enhanced RDoc for Net:HTTPBurdette Lamar2023-02-221-19/+16
| | | | | | (https://github.com/ruby/net-http/pull/124) https://github.com/ruby/net-http/commit/aaf26b21d6
* Skip failing test on MSWinNobuyoshi Nakada2023-02-221-0/+1
|
* [rubygems/rubygems] Skip extension test on jrubySamuel Giddins2023-02-221-0/+2
| | | | https://github.com/rubygems/rubygems/commit/38ee82c297
* [rubygems/rubygems] Better teardownSamuel Giddins2023-02-221-2/+4
| | | | https://github.com/rubygems/rubygems/commit/5fa0ebf09b
* [rubygems/rubygems] Always join with a stringSamuel Giddins2023-02-222-2/+3
| | | | | | Gem.path_separator can also be a regexp... https://github.com/rubygems/rubygems/commit/7e6e56a5f3
* [rubygems/rubygems] Only update env if var existsSamuel Giddins2023-02-221-2/+2
| | | | | | Will save on an error if it would be nil from an exception happening during that line https://github.com/rubygems/rubygems/commit/d6797a04e9
* [rubygems/rubygems] Nil out Gem.configuration after testsSamuel Giddins2023-02-221-0/+1
| | | | https://github.com/rubygems/rubygems/commit/3135ad91d4
* [rubygems/rubygems] Use assert_raise instead of assert_raisesSamuel Giddins2023-02-221-1/+1
| | | | | | For ruby-core compat https://github.com/rubygems/rubygems/commit/c8f85c91a8
* [rubygems/rubygems] Add tests covering pre-releases for gem execSamuel Giddins2023-02-221-0/+104
| | | | https://github.com/rubygems/rubygems/commit/f6877c29b9
* [rubygems/rubygems] Fix resetting env in gem exec, and make sure it is set ↵Samuel Giddins2023-02-222-3/+5
| | | | | | for gem exec gem https://github.com/rubygems/rubygems/commit/13a6dd4992
* [rubygems/rubygems] Allow gem exec gemSamuel Giddins2023-02-222-5/+54
| | | | https://github.com/rubygems/rubygems/commit/a767f7b9be
* [rubygems/rubygems] Remove platform option for gem execSamuel Giddins2023-02-222-8/+170
| | | | | | Also fix native extensions that load dependencies https://github.com/rubygems/rubygems/commit/a06f9870c7
* [rubygems/rubygems] Ensure dependencies are updated by default when running ↵Samuel Giddins2023-02-222-13/+114
| | | | | | gem exec https://github.com/rubygems/rubygems/commit/664f3e1e5f
* [rubygems/rubygems] Add gem exec descriptionSamuel Giddins2023-02-221-1/+11
| | | | https://github.com/rubygems/rubygems/commit/dac1609fd5
* [rubygems/rubygems] Add specs for gem execSamuel Giddins2023-02-222-2/+483
| | | | https://github.com/rubygems/rubygems/commit/3078e5834e
* [rubygems/rubygems] Add gem exec commandSamuel Giddins2023-02-223-5/+196
| | | | https://github.com/rubygems/rubygems/commit/ca69a317f3
* Prohibit GIT after setting readonlyNobuyoshi Nakada2023-02-221-0/+1
|
* Add support for LoongArch (#7343)小MAO钓鱼2023-02-224-2/+146
| | | | | | | | | * vm_dump.c: Dump machine registers on loongarch64 Linux. * coroutines: Support for native loongarch64 coroutines. --------- Co-authored-by: zangruochen <zangruochen@loongson.cn>
* Bump actions/cache from 3.2.5 to 3.2.6dependabot[bot]2023-02-2213-16/+16
| | | | | | | | | | | | | | | 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>
* Clone bundled gem sources only if GIT is availableNobuyoshi Nakada2023-02-221-1/+1
|
* Refine exception messages when git failedNobuyoshi Nakada2023-02-221-4/+7
|
* Removed accidentally commits with ruby/readline-extHiroshi SHIBATA2023-02-222-402/+0
| | | | Partly reverted 1ddda4c0d7d2b83658ab149e36e088961ca0b2dc
* [ruby/readline-ext] test_readline.rb only needs EnvUtilHiroshi SHIBATA2023-02-223-766/+1
| | | | https://github.com/ruby/readline-ext/commit/9245965ecd
* [ruby/readline-ext] Omit some tests with macOS platformHiroshi SHIBATA2023-02-221-0/+2
| | | | https://github.com/ruby/readline-ext/commit/efe2be6e4c
* [ruby/readline-ext] Import EnvUtils and related test librariesHiroshi SHIBATA2023-02-224-0/+1171
| | | | https://github.com/ruby/readline-ext/commit/f034697a48
* Call rb_ivar_set instead of exiting for many ivarseileencodes2023-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* YJIT: Fastpath for Module#=== (#7351)Alan Wu2023-02-211-0/+35
| | | | Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> Co-authored-by: Jimmy Miller <jimmy.miller@shopify.com>
* YJIT: Avoid checking symbol ID twice on send (#7350)Takashi Kokubun2023-02-211-3/+0
|
* [ruby/irb] Improve RubyLex's testsStan Lo2023-02-211-58/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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 (#7348)Jimmy Miller2023-02-212-21/+12
| | | | | | | | | * YJIT: Fix clippy issues and remove unused params * Remove an unnecessary whitespace --------- Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Bump SHAPE_MAX_NUM_IVS to 80 (#7344)Takashi Kokubun2023-02-211-1/+1
|