summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Use `Gem::Package#build` instead of the class method for old baserubyNobuyoshi Nakada2023-02-221-1/+3
|
* Clone and create dummy gemspec in sequential buildNobuyoshi Nakada2023-02-222-0/+25
|
* Move dummy gemspec file creation for extract-gems-sequentialNobuyoshi Nakada2023-02-222-25/+24
|
* Use git directories instead of gemspec files as dependencyNobuyoshi Nakada2023-02-221-3/+3
| | | | Minitest repository does not commit its gemspec file.
* Fix detection of compiler_wd in tool/update-depsMatt Valentine-House2023-02-211-16/+11
|
* Use `BigDecimal::VERSION` instead of `RUBY_VERSION`Nobuyoshi Nakada2023-02-221-1/+1
|
* Update default gems list at 0cde887eb9fd47b9857c9e4a7fbafc [ci skip]git2023-02-211-0/+1
|
* [ruby/bigdecimal] Bump up to 3.1.4Nobuyoshi Nakada2023-02-211-1/+1
| | | | | | | | | | ruby/bigdecimal#187 has changed a behavior and ruby/spec also needed a follow up at https://github.com/ruby/ruby/commit/0d8ef62fc293. However, because bigdecimal is a separate gem and can be updated in older versions of ruby, `RUBY_VERSION` is not appropriate for this guard. That means it needs bumped up `BigDecimal::VERSION`. https://github.com/ruby/bigdecimal/commit/3a2a7a9353
* [ruby/bigdecimal] Move RB_GC_GUARD() at the end, like in BigMath_s_exp()Benoit Daloze2023-02-211-6/+7
| | | | https://github.com/ruby/bigdecimal/commit/b66ef9fbb5
* [ruby/bigdecimal] Avoid RB_GC_GUARD(a) = b in bigdecimalBenoit Daloze2023-02-211-6/+12
| | | | | | | | * This is not supported on TruffleRuby, which requires the value to be set before RB_GC_GUARD() is called. * See https://github.com/oracle/truffleruby/pull/2879 https://github.com/ruby/bigdecimal/commit/7b2957922f
* Add marking and sweeping time to GC.statPeter Zhu2023-02-213-50/+94
| | | | | | | | | | | | There is a `time` key in GC.stat that gives us the total time spent in GC. However, we don't know what proportion of the time is spent between marking and sweeping. This makes it difficult to tune the GC as we're not sure where to focus our efforts on. This PR adds keys `marking_time` and `sweeping_time` to GC.stat for the time spent marking and sweeping, in milliseconds. [Feature #19437]
* Refactor to separate marking and sweeping phasesPeter Zhu2023-02-212-49/+50
| | | | | This commit separates the marking and sweeping phases so that marking functions do not directly call sweeping functions.
* Marshal.load: restore instance variables on RegexpJean Boussier2023-02-212-2/+29
| | | | | | | | | | | | | | | | | | | [Bug #19439] The instance variables were restore on the Regexp source, not the regexp itself. Unfortunately we have a bit of a chicken and egg problem. The source holds the encoding, and the encoding need to be set on the source to be able to instantiate the Regexp. So the instance variables have to be read on the `source`. To correct this we transfert the instance variables after instantiating the Regexp. The only way to avoid this would be to read the instance variable twice and rewind.
* Update default gems list at b572f2436c70bef75126fe4e30910a [ci skip]git2023-02-211-1/+1
|