summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-13thread/test_instrumentation_api: cleanup all existing threads in setupJean Boussier
We saw the following failure: ``` TestThreadInstrumentation#test_thread_instrumentation [/tmp/ruby/v3/src/trunk-random3/test/-ext-/thread/test_instrumentation_api.rb:25]: Expected 0..3 to include 4. ``` Which shouldn't happen unless somehow there was a leaked thread. Notes: Merged: https://github.com/ruby/ruby/pull/6128
2022-07-13Fix a typo (thanks @Maumagnaguagno !)Yusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/6119
2022-07-13Specify usable escape sequences in Exception#detailed_messageYusuke Endoh
An error message is primarily rendered in a terminal emulator, but is also shown in a browser by converting it to a HTML fragment. However, the conversion would be unreasonably difficult if the message includes any escape sequence (such as cursor move or screen clear). This change adds a guideline about escape sequences in `Exception#detailed_message`: * Use widely-supported escape sequences: bold, underline, and basic eight foreground colors (except white and black). * Make the message readable if all escape sequences are ignored. Notes: Merged: https://github.com/ruby/ruby/pull/6119
2022-07-13Update bundled gems list at 156da55c164e5463edf15bae05021b [ci skip]git
2022-07-13debug.gem 1.6.1Koichi Sasada
Notes: Merged: https://github.com/ruby/ruby/pull/6126
2022-07-13Merge RubyGems and Bundler masterHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6124
2022-07-12[DOC] Revisions for call-seq in doc guidelines (#6121)Burdette Lamar
Splits certain guidelines for singleton and instance method. Calls for instance method to not prefix anything (like RDoc itself for a Ruby-coded instance method); e.g.: count -> integer, not array.count,. <=> other -> integer or nil, not hash <=> other -> integer or nil. Groups previous guidelines into Arguments, Block, Return types, Aliases. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-07-12Use VM Lock when mutating waiting threads listAaron Patterson
`rb_thread_wait_for_single_fd` needs to mutate the `waiting_fds` list that is stored on the VM. We need to delete the FD from the list before returning, and deleting from the list requires a VM lock (because the list is a global). [Bug #18816] [ruby-core:108771] Co-Authored-By: Alan Wu <alanwu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/6116
2022-07-12Speed up --yjit-trace-exits code (#6106)Eileen M. Uchitelle
In a small script the speed of this feature isn't really noticeable but on Rails it's very noticeable how slow this can be. This PR aims to speed up two parts of the functionality. 1) The Rust exit recording code Instead of adding all samples as we see them to the yjit_raw_samples and yjit_line_samples, we can increment the counter on the ones we've seen before. This will be faster on traces where we are hitting the same stack often. In a crude measurement of booting just the active record base test (`test/cases/base_test.rb`) we found that this improved the speed by 1 second. This also results in a smaller marshal dump file which sped up the test boot time by 4 seconds with trace exits on. 2) The Ruby parsing code Previously we were allocating new arrays using `shift` and `each_with_index`. This change avoids allocating new arrays by using an index. This change saves us the most amount of time, gaining 11 seconds. Before this change the test boot time took 62 seconds, after it took 47 seconds. This is still too long but it's a step closer to faster functionality. Next we're going to tackle allowing you to collect trace exits for a specific instruction. There is also some potential slowness in the GC code that I'd like to take a second look at. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-07-12Fix some UBSAN false positives (#6115)Kevin Backhouse
* Fix some UBSAN false positives. * ruby tool/update-deps --fix Notes: Merged-By: jhawthorn <john@hawthorn.email>
2022-07-12[DOC] Enhanced RDoc for Time (#6118)Burdette Lamar
Treats: ::utc ::local #to_i #to_f #to_r #usec #nsec #subsec #<=> #eql? Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-07-13* 2022-07-13 [ci skip]git
2022-07-13Move timestamps directory for bundled gemsNobuyoshi Nakada
2022-07-12[ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/63)Burdette Lamar
Treats: #next #<< #>> #next_month #prev_month #next_year #prev_year #step #upto #downto https://github.com/ruby/date/commit/4246441a35
2022-07-12[Feature #18901] Don't run size pool move tests without VWAMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/6099
2022-07-12[Feature #18901] Support size pool movement for ArraysMatt Valentine-House
This commit enables Arrays to move between size pools during compaction. This can occur if the array is mutated such that it would fit in a different size pool when embedded. The move is carried out in two stages: 1. The RVALUE is moved to a destination heap during object movement phase of compaction 2. The array data is re-embedded and the original buffer free'd if required. This happens during the update references step Notes: Merged: https://github.com/ruby/ruby/pull/6099
2022-07-12Refactor tests for ThreadInstrumentation countersNobuyoshi Nakada
* Extracted some assertions. * Assert counter values should be positive. Notes: Merged: https://github.com/ruby/ruby/pull/6111
2022-07-12Use `IO.popen` to fork and exit the child process without cleanupNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6111
2022-07-12Check only whether `RUBY_DEVEL` is definedNobuyoshi Nakada
2022-07-12MJIT: Add assertions for mjit_capture_cc_entriesTakashi Kokubun
to investigate SEGVs in it
2022-07-12Update bundled gems list at 2022-07-12git
2022-07-11MJIT: s/assert/VM_ASSERT/Takashi Kokubun
include/ruby/assert.h sets NDEBUG by default. As MJIT CI uses -DVM_CHECK_MODE, using only VM_ASSERT might be more helpful.
2022-07-12[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.18 to 0.9.19. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.18...v0.9.19) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/962c717083
2022-07-12[rubygems/rubygems] Bump rb-sys in ↵dependabot[bot]
/test/rubygems/test_gem_ext_cargo_builder/custom_name Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.18 to 0.9.19. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.18...v0.9.19) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/186d2b83f1
2022-07-12[ruby/irb] [DOC] Include updated help message ↵Burdette Lamar
(https://github.com/ruby/irb/pull/377) * Include updated help message https://github.com/ruby/irb/commit/ff129f3794
2022-07-12* 2022-07-12 [ci skip]git
2022-07-12[ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/62)Burdette Lamar
Minor edits to 11 methods' documentation. https://github.com/ruby/date/commit/00bb7f6648
2022-07-11Fix a regression of b2e58b02aec73f9c350bf109c021c180fc699cccYusuke Endoh
At that commit, I fixed a wrong conditional expression that was always true. However, that seemed to have caused a regression. [Bug #18906] This change removes the condition to make the code always enabled. It had been enabled until that commit, albeit unintentionally, and even if it is enabled it only consumes a tiny bit of memory, so I believe it is harmless. [Bug #18906] Notes: Merged: https://github.com/ruby/ruby/pull/6112
2022-07-11[ruby/reline] Add tests for top-level dialog color APIsst0012
https://github.com/ruby/reline/commit/347a468c59
2022-07-11Replace use of double_heap in tests with expand_heapMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/6107
2022-07-11Add expand_heap option to GC.verify_compaction_referencesMatt Valentine-House
In order to reliably test compaction we need to be able to move objects between size pools. In order for this to happen there must be pages in a size pool into which we can allocate. The existing implementation of `double_heap` only doubled the existing number of pages in the heap, so if a size pool had a low number of pages (or 0) it's not guaranteed that enough space will be created to move objects into that size pool. This commit deprecates the `double_heap` option and replaces it with `expand_heap` instead. expand heap will expand each heap by enough pages to hold a number of slots defined by `GC_HEAP_INIT_SLOTS` or by `heap->total_pags` whichever is larger. If both `double_heap` and `expand_heap` are present, a deprecation warning will be shown for `double_heap` and the `expand_heap` behaviour will take precedence Given that this is an API intended for debugging and testing GC compaction I'm not concerned about the extra memory usage or time taken to create the pages. However, for completeness: Running the following `test.rb` and using `time` on my Macbook Pro shows the following memory usage and time impact: pp "RSS (kb): #{`ps -o rss #{Process.pid}`.lines.last.to_i}" GC.verify_compaction_references(double_heap: true, toward: :empty) pp "RSS (kb): #{`ps -o rss #{Process.pid}`.lines.last.to_i}" ❯ time make run ./miniruby -I./lib -I. -I.ext/common -r./arm64-darwin21-fake ./test.rb "RSS (kb): 24000" <internal:gc>:251: warning: double_heap is deprecated and will be removed "RSS (kb): 25232" ________________________________________________________ Executed in 124.37 millis fish external usr time 82.22 millis 0.09 millis 82.12 millis sys time 28.76 millis 2.61 millis 26.15 millis ❯ time make run ./miniruby -I./lib -I. -I.ext/common -r./arm64-darwin21-fake ./test.rb "RSS (kb): 24000" "RSS (kb): 49040" ________________________________________________________ Executed in 150.13 millis fish external usr time 103.32 millis 0.10 millis 103.22 millis sys time 35.73 millis 2.59 millis 33.14 millis Notes: Merged: https://github.com/ruby/ruby/pull/6107
2022-07-10Use NO_JIT_DESCRIPTION only when neededTakashi Kokubun
Apparently 203801566a186b7b1cbe899a06d0832923a1bdf9 broke YJIT's CI.
2022-07-10Fix #5872 for MJIT GitHub ActionsTakashi Kokubun
If you run tests with RUN_OPTS=--mjit, the test fixes in https://github.com/ruby/ruby/pull/5872 don't work.
2022-07-11[ruby/rdoc] `RubyVM` is implementation dependentNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/aaeb5ce1ce
2022-07-11[ruby/rdoc] Fix the known classes moreNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/9f47234e0e
2022-07-11* 2022-07-11 [ci skip]git
2022-07-11[ruby/rdoc] Fix an exception class nameNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/87301da71b
2022-07-10[ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/61)Burdette Lamar
Omit private aliases from Rdoc. https://github.com/ruby/date/commit/48f9180663
2022-07-10Extract `atomic_inc_wraparound` functionNobuyoshi Nakada
2022-07-10* 2022-07-10 [ci skip]git
2022-07-10Add `asan_unpoisoning_object` to execute the block with unpoisoningNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-10Split `rb_raw_obj_info`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-10Cycle `obj_info_buffers_index` atomicallyNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-10`APPEND_S` for no conversion formatsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-10Rewrite `APPENDF` using variadic argumentsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-10Use `size_t` for `rb_raw_obj_info`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-10Use `asan_unpoison_object_temporary`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-10Get rid of static buffer in `obj_info`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6092
2022-07-09Use `File::PATH_SEPARATOR` for the portabilityNobuyoshi Nakada
2022-07-09[ruby/openssl] Skip a new test when old OpenSSLNobuyoshi Nakada
It does not raise an error when setting an invalid value to SSLContext ciphers on Ubuntu 18.04. https://github.com/ruby/openssl/commit/8c96a69b0d