summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-08Fix compilation error when USE_RVARGC=0Peter Zhu
force_major_gc_count was not defined when USE_RVARGC=0.
2022-06-08Add key force_major_gc_count to GC.stat_heapPeter Zhu
force_major_gc_count is the number of times the size pool forced major GC to run.
2022-06-08[ruby/fileutils] File trees (https://github.com/ruby/fileutils/pull/80)Burdette Lamar
Adds a note about file tree examples. https://github.com/ruby/fileutils/commit/65ac65067a
2022-06-08Update "Reporting Issues" link in the READMEAlexander Ilyin
This link is broken. Notes: Merged: https://github.com/ruby/ruby/pull/5989
2022-06-07Update the help message on /benchmarkTakashi Kokubun
I wanted to point out there's --output=all.
2022-06-08[DOC] RDoc now accepts other than magic numbers at `rb_attr`Nobuyoshi Nakada
2022-06-07Remove duplicated prototype in header filePeter Zhu
rb_imemo_new is defined again later in the file.
2022-06-07thread_pthread.c: trigger THREAD_EVENT_READY when going throuhg the fast path.Jean Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/5985
2022-06-08* 2022-06-08 [ci skip]git
2022-06-07Add special-case code for the String unary plus operator (#5982)Noah Gibbs
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-06-07[rubygems/rubygems] Remove unnecessary string concatenationDaniel Berger
https://github.com/rubygems/rubygems/commit/81ccb3ab89
2022-06-07Remove while loop over heap_preparePeter Zhu
Having a while loop over `heap_prepare` makes the GC logic difficult to understand (it is difficult to understand when and why `heap_prepare` yields a free page). It is also a source of bugs and can cause an infinite loop if `heap_page` never yields a free page. Notes: Merged: https://github.com/ruby/ruby/pull/5907
2022-06-07[rubygems/rubygems] Relax performance spec limitDavid Rodríguez
https://github.com/rubygems/rubygems/commit/eab417d0ce
2022-06-07Refactor TestThreadInstrumentation to investigate CI flakinessJean Boussier
`test_thread_instrumentation_fork_safe` has been failing occasionaly on Ubuntu and Arch. At this stage we're not sure why, all we know is that the child exit with status 1. I suspect that something entirely unrelated cause the forked children to fail on exit, so by using `exit!(0)` and doing assertions in the parent I hope to be resilient to that. Notes: Merged: https://github.com/ruby/ruby/pull/5983
2022-06-07[ruby/error_highlight] Use Exception#detailed_message instead of overriding ↵Yusuke Endoh
#message (https://github.com/ruby/error_highlight/pull/24) See https://bugs.ruby-lang.org/issues/18564. Ref: https://github.com/ruby/did_you_mean/pull/177 https://github.com/ruby/error_highlight/commit/671b7c61b2
2022-06-07Manually merged https://github.com/ruby/did_you_mean/pull/177Hiroshi SHIBATA
2022-06-07Revert "error.c: Let Exception#inspect inspect its message"Yusuke Endoh
This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741. Notes: Merged: https://github.com/ruby/ruby/pull/5981
2022-06-07[ruby/rdoc] [DOC] Undocument internal constants [ci skip]Nobuyoshi Nakada
https://github.com/ruby/rdoc/commit/6d7bf24bb8
2022-06-07error.c: Let Exception#inspect inspect its messageYusuke Endoh
... only when the message string has a newline. `p StandardError.new("foo\nbar")` now prints `#<StandardError: "foo\nbar">' instead of: #<StandardError: bar> [Bug #18170] Notes: Merged: https://github.com/ruby/ruby/pull/4857
2022-06-07[ruby/rdoc] Allow boolean arguments to `rb_attr` and `rb_define_attr`Nobuyoshi Nakada
Currently only literal `0` and `1` are accepted as `read`/`write` flags. This patch allows other boolean arguments, C macros (`FALSE`/`TRUE`), Ruby `VALUE`s (`Qfalse`/`Qtrue`), and C99 `bool`s (`false`/`true`), as well. https://github.com/ruby/rdoc/commit/169dc02e3c
2022-06-07.github/workflows/compilers.yml: annocheck: Fix a linker flag to pass MJIT ↵Jun Aruga
tests. Set the linker flag `-Wl,-z,now` properly. Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Fixes [Bug #18781] Notes: Merged: https://github.com/ruby/ruby/pull/5938
2022-06-06Ignore invalid escapes in regexp commentsJeremy Evans
Invalid escapes are handled at multiple levels. The first level is in parse.y, so skip invalid unicode escape checks for regexps in parse.y. Make rb_reg_preprocess and unescape_nonascii accept the regexp options. In unescape_nonascii, if the regexp is an extended regexp, when "#" is encountered, ignore all characters until the end of line or end of regexp. Unfortunately, in extended regexps, you can use "#" as a non-comment character inside a character class, so also parse "[" and "]" specially for extended regexps, and only skip comments if "#" is not inside a character class. Handle nested character classes as well. This issue doesn't just affect extended regexps, it also affects "(#?" comments inside all regexps. So for those comments, scan until trailing ")" and ignore content inside. I'm not sure if there are other corner cases not handled. A better fix would be to redesign the regexp parser so that it unescaped during parsing instead of before parsing, so you already know the current parsing state. Fixes [Bug #18294] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/5721 Merged-By: jeremyevans <code@jeremyevans.net>
2022-06-06Fix Module#const_source_location for autoload constants with direct requiresJeremy Evans
If an autoload exists for a constant, but the path for the autoload was required, const_source_location would return [false, 0] instead of the actual file and line. This fixes it by setting the appropriate file and line in rb_const_set, and saving the file and line in const_tbl_update before they get reset by current_autoload_data. Fixes [Bug #18624] Notes: Merged: https://github.com/ruby/ruby/pull/5646
2022-06-06Use bindgen to import Ruby constants wherever possible. (#5943)Noah Gibbs
Constants that can't be imported via bindgen should have a comment saying why not. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-06-06Fix Range#cover? returning true for beginless ranges of different typesJeremy Evans
Previously `(2..).cover?("2"..)` was false, but `(..2).cover?(.."2")` was true. This changes it so both are false, treating beginless ranges the same as endless ranges in regards to type checks. This also adds documentation to #cover? to describe behavior with beginless and endless ranges, testing each documentation example, which is how this bug was found. Fixes [Bug #18155] Notes: Merged: https://github.com/ruby/ruby/pull/5831
2022-06-06Add Module#undefined_instance_methodsJeremy Evans
Implements [Feature #12655] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/5733 Merged-By: jeremyevans <code@jeremyevans.net>
2022-06-07[ruby/fileutils] [DOC] Enhanced RDoc for FileUtils ↵Burdette Lamar
(https://github.com/ruby/fileutils/pull/78) Treats: ::rm ::rm_f ::rm_r ::rm_rf ::remove_entry_secure https://github.com/ruby/fileutils/commit/ce2a438d75
2022-06-07* 2022-06-07 [ci skip]git
2022-06-07[ruby/open-uri] [DOC] Fix markup for `URI.open`Alexander Ilyin
* Add missing slash. https://github.com/ruby/open-uri/commit/40023e63da
2022-06-06[ruby/rdoc] Use runnable command as DUMMY_PAGERNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/fec1ab2e41
2022-06-06[rubygems/rubygems] Unify loading `Gem::Requirement`David Rodríguez
It was being explicitly required from `Gem::Specification` but also a strange autoload was set for it at `Gem::Version`. The autoload was non standard because it should've been done in the `Gem` module, not in `Gem::Specification`, since that's where the constant is expected to get defined. Doing this might get deprecated in the future, and it was not being effective anyways due to the explicit require. Unify everything with an `autoload` at the right place. https://github.com/rubygems/rubygems/commit/174ea3e24c
2022-06-06debug is the bundled gems, not default gemsHiroshi SHIBATA
2022-06-06[ruby/cgi] jruby supportPavel Rosický
https://github.com/ruby/cgi/commit/93326fb622
2022-06-06Use `sleep 0.5` for tests of GVL instrumentation APIYusuke Endoh
The tests fail randomly on some platforms. http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20220605T213004Z.fail.html.gz http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220605T210003Z.fail.html.gz ``` [15737/21701] TestThreadInstrumentation#test_thread_instrumentation_fork_safe/home/chkbuild/chkbuild/tmp/build/20220605T213004Z/ruby/tool/lib/test/unit/assertions.rb:109:in `assert': Expected 0 to be nonzero?. (Test::Unit::AssertionFailedError) ``` The failures seem to depend on context switches. I suspect `sleep 0.05` is too short, so this change tries to extend the wait time.
2022-06-06Fix a typo [ci skip]Kazuhiro NISHIYAMA
2022-06-06* 2022-06-06 [ci skip]git
2022-06-06Remove useless assignment always overriddenNobuyoshi Nakada
2022-06-06Export RbConfig::CONFIG["COROUTINE_TYPE"]nick evans
THREAD_MODEL is exported already, so this matches that. Exporting this is simpler than inspecting configure_args and arch and matching that up with a specific configure.ac. Fix GH-5976
2022-06-05* 2022-06-05 [ci skip]git
2022-06-05Use RBOOLNobuyoshi Nakada
2022-06-04[ruby/rdoc] Use command array form of `IO.popen` alwaysNobuyoshi Nakada
So that an exception raises by non-existent command, not via shell. https://github.com/ruby/rdoc/commit/fd94dce69d
2022-06-04[ruby/rdoc] Make all documents at the top level `extra_rdoc_files` [ci skip]Nobuyoshi Nakada
https://github.com/ruby/rdoc/commit/6b1a011243
2022-06-04[ruby/rdoc] Remove `RDoc::RI::Driver#in_path?`Nobuyoshi Nakada
https://github.com/ruby/rdoc/commit/83051403d6
2022-06-04[ruby/rdoc] Enable pager testsNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/ce63794fde
2022-06-04[ruby/rdoc] Stop checking if pager command foundNobuyoshi Nakada
`IO.popen` does that job. https://github.com/ruby/rdoc/commit/3bbbc5ac84
2022-06-04[ruby/rdoc] Remove never used win32consoleNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/47a1aef447
2022-06-04* 2022-06-04 [ci skip]git
2022-06-03Prevent printing crash report in a loopAlan Wu
In the event that we are crashing due to a corrupt Ruby stack, we might re-enter rb_vm_bugreport() due to failed assertions in rb_backtrace_print_as_bugreport() or SDR(). In these cases we were printing the bug report ad infinitum with unbounded recusion. I seem to run into this every once in a while and the amount of log it prints out is pretty distracting. On CI environments it makes the log output unnecessarily big. Let's fix this. Notes: Merged: https://github.com/ruby/ruby/pull/5731
2022-06-03[Feature #18339] GVL Instrumentation APIJean Boussier
Ref: https://bugs.ruby-lang.org/issues/18339 Design: - This tries to minimize the overhead when no hook is registered. It should only incur an extra unsynchronized boolean check. - The hook list is protected with a read-write lock as to cause contention when some hooks are registered. - The hooks MUST be thread safe, and MUST NOT call into Ruby as they are executed outside the GVL. - It's simply a noop on Windows. API: ``` rb_internal_thread_event_hook_t * rb_internal_thread_add_event_hook(rb_internal_thread_event_callback callback, rb_event_flag_t internal_event, void *user_data); bool rb_internal_thread_remove_event_hook(rb_internal_thread_event_hook_t * hook); ``` You can subscribe to 3 events: - READY: called right before attempting to acquire the GVL - RESUMED: called right after successfully acquiring the GVL - SUSPENDED: called right after releasing the GVL. The hooks MUST be threadsafe, as they are executed outside of the GVL, they also MUST NOT call any Ruby API. Notes: Merged: https://github.com/ruby/ruby/pull/5500
2022-06-03[ruby/nkf] Constified invariant tablesNobuyoshi Nakada
https://github.com/ruby/nkf/commit/b386ddc11c