AgeCommit message (Collapse)Author
4 daystest_instrumentation_api.rb: Allow one less exitJean Boussier
I suspect that sometimes on CI the last thread is prempted before eaching the exit hook causing the test to flake. I can't find a good way to force it to run.
5 days[Feature #18788] [DOC] String options to ``Nobuyoshi Nakada
Co-Authored-By: Janosch Müller <> Notes: Merged:
5 days[Feature #18788] Spec for options as `String` to ``Nobuyoshi Nakada
Co-Authored-By: Janosch Müller <> Notes: Merged:
5 days[Feature #18788] Support options as `String` to ``Nobuyoshi Nakada
`` now supports passing the regexp flags not only as an `Integer`, but also as a `String. Unknown flags raise errors. Notes: Merged:
5 daysSpec update for warnning suspicious flag to ``Nobuyoshi Nakada
Notes: Merged:
5 daysWarn suspicious flag to ``Nobuyoshi Nakada
Now second argument should be `true`, `false`, `nil` or Integer. This flag is confused with third argument some times. Notes: Merged:
5 daysAllow to just warn as bool expected, without an exceptionNobuyoshi Nakada
Notes: Merged:
5 daysPrevent a warning "possibly useless use of a literal in void context"Yusuke Endoh
5 days.github/workflows/compilers.yml: Skip gaps test on annocheck 10.76.Jun Aruga
This commit is to skip a failure with annocheck 10.76 on the annocheck test case on the CI. Previously The test worked with annocheck 10.73. The issue was reported at <>. > Hardened: ruby: MAYB: test: gaps because no notes found > Hardened: ruby: info: For more information visit: It seems that the annocheck added the gaps test at 10.76. Maybe the upstream commit is below. The annocheck is a part of the annobin project: ``` $ git clone git:// $ git show 61184ae1180a134bfbbd125e9fe339baedd67c18 commit 61184ae1180a134bfbbd125e9fe339baedd67c18 Author: Nick Clifton <> Date: Mon Jun 13 16:56:46 2022 +0100 Annocheck: Add TEST_GAPS. Add MAYB for TEST_NOTES if DWARF info could not be found ... ``` Notes: Merged:
5 days[DOC] Refine argument descriptionsNobuyoshi Nakada
5 days[DOC] Regexp timeout is float or nilNobuyoshi Nakada
5 daysPrevent a warning "Expected ... to define AutoloadTest but it didn't"Yusuke Endoh
related: [Bugs #18813] and eca31d24d606a73def3674938112dc3c5b79c445
5 days[rubygems/rubygems] Fix extension paths in generated standalone scriptcitrusmoose
The paths for extensions of gems would contain the hardcoded ruby version on which the extension was built. This will replace it with runtime ruby version like the parent version directory. It will make the standalone script compatible between different ruby version installations.
5 days[Feature #18839] Drop support for gcc 3 [ci skip]Nobuyoshi Nakada
Notes: Merged:
5 daysUpdate bundled gems list at 150bd6e2427a8a6178aa5f8ebc39ce [ci skip]git
5 daysBundle RBS 2.5.1 (#6041)Soutaro Matsumoto
* Bundle RBS 2.5.1 Notes: Merged-By: soutaro <>
5 days[DOC] Fixed omissions in argumentsNobuyoshi Nakada
5 days* 2022-06-20 [ci skip]git
5 days[rubygems/rubygems] Improve performance of Bundler::SpecSet#for by using ↵Josh Nichols
hash lookup of handled deps I was looking at (yet another) flamegraph in speedscope, and used the 'left hand heavy' and was shocked to realize that 0.5s of the 1.7s is spent in DepProxy#name. This method _only_ delegates the name to an underlying spec, so it's not complex at all. It seems to be of how often this line ends up calling it: next if handled.any?{|d| == && (match_current_platform || d.__platform == dep.__platform) } || == "bundler" The `handled` array is built up as dependencies are handled, so this get slower as more dependencies are installed. This change changes how `handled` is track. Instead of just an array, I've tried using a Hash, with the key being a dep's name, and the value being a list of deps with that name. This means it's constant time to find the dependencies with the same name. I saw a drop from 1.7s to 1.0s against master, and from 0.95s to 0.24s when used with
5 daysScale the time to wait native threads to run hookNobuyoshi Nakada
5 daysRemove unnecessary `*` before the function nameNobuyoshi Nakada
6 days[ruby/etc] [DOC] Markup constant path namesNobuyoshi Nakada
6 daysSkip CIs if the head commit message contains '[DOC]'Nobuyoshi Nakada
6 days* 2022-06-19 [ci skip]git
6 days[ruby/etc] [DOC] Markup string literalsNobuyoshi Nakada
6 days[ruby/etc] [DOC] Fix reference to different moduleNobuyoshi Nakada
6 days[ruby/etc] [DOC] UpdateNobuyoshi Nakada
System-dependent feature macros are automatically detected by extconf.rb, and are not used by users.
6 days[Bug #18813] Warn when autoload has to lookup in parent namespaceJean Boussier
This is a verbose mode only warning. Notes: Merged:
7 daysShow gcc version if too old, and move to GCC block [ci skip]Nobuyoshi Nakada
7 daysDisable maybe-uninitialized warning for gcc 4Nobuyoshi Nakada
It often shows false positive warnings (at least in 4.8). Newer versions work well and we can check correct warnings.
7 daysExtract `protect_page_body` to fix mismatched bracesNobuyoshi Nakada
7 daystool/extlibs.rb: Use Exception#message for older rubiesAlan Wu
This script runs with BASERUBY, which can be as old as 2.2.x. Exception#full_message is new in 2.5.0. I saw a NoMethodError on the AppVeyor CI where BASERUBY is 2.4.6:
7 daysYJIT: Update note about symbol prefixes [ci skip]Alan Wu
7 daysYJIT: Use binwrite to write exit locationsJohn Hawthorn
Notes: Merged:
7 days* 2022-06-18 [ci skip]git
7 daysDisable Mach exception handlers when read barriers in placeKJ Tsanaktsidis
The GC compaction mechanism implements a kind of read barrier by marking some (OS) pages as unreadable, and installing a SIGBUS/SIGSEGV handler to detect when they're accessed and invalidate an attempt to move the object. Unfortunately, when a debugger is attached to the Ruby interpreter on Mac OS, the debugger will trap the EXC_BAD_ACCES mach exception before the runtime can transform that into a SIGBUS signal and dispatch it. Thus, execution gets stuck; any attempt to continue from the debugger re-executes the line that caused the exception and no forward progress can be made. This makes it impossible to debug either the Ruby interpreter or a C extension whilst compaction is in use. To fix this, we disable the EXC_BAD_ACCESS handler when installing the SIGBUS/SIGSEGV handlers, and re-enable them once the compaction is done. The debugger will still trap on the attempt to read the bad page, but it will be trapping the SIGBUS signal, rather than the EXC_BAD_ACCESS mach exception. It's possible to continue from this in the debugger, which invokes the signal handler and allows forward progress to be made. Notes: Merged:
7 daysReuse an interned stringNobuyoshi Nakada
Repeating to intern the same string is just redundant, as interned strings for the same content are always the same object until it gets collected. Notes: Merged: Merged-By: nobu <>
7 daysRemove unused function declarationPeter Zhu
iseq_alloc is not used in compile.c. It is also a static function declared in iseq.c so it's not accessible in compile.c.
7 days[ruby/fileutils] [DOC] Revisions for module-level doc ↵Burdette Lamar
( * Revisions for module-level doc
7 days[ci skip][lldb] Fix array length representation with USING_RVARGCMatt Valentine-House
This commit makes `rp` report the correct array length in lldb. When USING_RVARGC is set we use 7 bits of the flags to store the array len rather than the usual 2, so they need to be part of the mask when calculating the length in lldb. When calculating whether rvargc is enabled I've used the same approach that's used by `GC.using_rvargc?` which is to detect whether there is more than one size pool in the current objspace. Notes: Merged:
7 daysDebug TestThreadInstrumentationJean Boussier
It previously failed with: ``` 1) Failure: TestThreadInstrumentation#test_thread_instrumentation_fork_safe [/home/runner/work/ruby/ruby/src/test/-ext-/thread/test_instrumentation_api.rb:50]: <5> expected but was <4>. ``` Suggesting one `EXIT` event wasn't fired or processed. Adding an assetion on `Thead#status` may help figure out what is wrong. Notes: Merged:
8 days[rubygems/rubygems] Unset ENV set by official Ruby docker imagesDavid Rodríguez
So that it does not interfere with our specs.
8 days[rubygems/rubygems] Bring TODO message up to dateDavid Rodríguez
8 days[rubygems/rubygems] Remove part of comment that fell out of dateDavid Rodríguez
8 days[rubygems/rubygems] Don't modify RbConfig at all when building extensionsDavid Rodríguez
Instead, pass sitearchdir and sitelibdir directly to `make`. This also removes the need to create and use the siteconf file at all when generating makefiles.
8 days[rubygems/rubygems] Remove unnecessary conditionDavid Rodríguez
This variable can't be falsy.
8 days[rubygems/rubygems] No need to change `RbConfig::CONFIG` at allDavid Rodríguez
Only `RbConfig::MAKEFILE_CONFIG` is actually used.
8 daysGVL Instrumentation API: add STARTED and EXITED eventsJean Boussier
[Feature #18339] After experimenting with the initial version of the API I figured there is a need for an exit event to cleanup instrumentation data. e.g. if you record data in a {thread_id -> data} table, you need to free associated data when a thread goes away. Notes: Merged:
8 daysSkip failing test on FreeBSD [ci skip]Nobuyoshi Nakada
8 daysUsing is_ascii_string to check encodingS-H-GAMELINKS
Notes: Merged: