summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
12 hours[Backport #21832] Add pushtoarray insn to fix segfault with forwarding + ↵ruby_4_0Randy Stauner
splat (#15870) Add pushtoarray insn to fix segfault with forwarding + splat Example insns diff for `def x = [3]; def a(...) = b(*x, 2, 3, ...)` == disasm: #<ISeq:a@-e:1 (1,13)-(1,42)> local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) [ 1] "..."@0 0000 putself ( 1)[Ca] 0000 putself 0000 opt_send_without_block <calldata!mid:x, argc:0, FCALL|VCALL|ARGS_SIMPLE> 0000 splatarray true 0000 putobject 2 0000 putobject 3 +0000 pushtoarray 2 0000 getlocal_WC_0 "..."@0 0000 sendforward <calldata!mid:b, argc:1, ARGS_SPLAT|ARGS_SPLAT_MUT|FCALL|FORWARDING>, nil 0000 leave [Re] This matches the insns produced by parse.y
36 hoursAdd a test backport missed at a10f7fac1fb1dcbdb1ae41137bd7294764a34793Takashi Kokubun
https://bugs.ruby-lang.org/issues/21831
2 daysv4.0.1v4.0.1ruby_4_0-prism-1-8-0Takashi Kokubun
2 daysSync Prism to 1.8.0Takashi Kokubun
2 daysmerge revision(s) 7e81bf5c0c8f43602e6d901f4253dca2f3d71745: [Backport #21812]Takashi Kokubun
[PATCH] Fix sleep spurious wakeup from sigchld (#15802) When sleeping with `sleep`, currently the main thread can get woken up from sigchld from any thread (subprocess exited). The timer thread wakes up the main thread when this happens, as it checks for signals. The main thread then executes the ruby sigchld handler if one is registered and is supposed to go back to sleep immediately. This is not ideal but it's the way it's worked for a while. In commit 8d8159e7d8 I added writes to `th->status` before and after `wait_running_turn` in `thread_sched_to_waiting_until_wakeup`, which is called from `sleep`. This is usually the right way to set the thread's status, but `sleep` is an exception because the writes to `th->status` are done in `sleep_forever`. There's a loop that checks `th->status` in `sleep_forever`. When the main thread got woken up from sigchld it saw the changed `th->status` and continued to run the main thread instead of going back to sleep. The following script shows the error. It was returning instead of sleeping forever. ```ruby t = Thread.new do sleep 0.3 `echo hello` # Spawns subprocess puts "Subprocess exited" end puts "Main thread sleeping..." result = sleep # Should block forever puts "sleep returned: #{result.inspect}" ``` Fixes [Bug #21812]
2 daysmerge revision(s) d7a6ff8224519005d2deeb3f4e98689a8a0835ad: [Backport #21819]Takashi Kokubun
[PATCH] [Bug #21819] Data objects without members should also be frozen
2 daysmerge revision(s) 9824724b2ffe583302e9318c6eff7a440478125f: [Backport #21815]Takashi Kokubun
[PATCH] Skip test_write_binary(GemSingletonTest) at rbs tests ``` Errno::EACCES: Permission denied @ rb_file_s_rename ... D:/a/ruby/ruby/src/lib/rubygems/util/atomic_file_writer.rb:42:in 'File.rename' ``` It may caused with atomic_file_writer.rb
2 daysmerge revision(s) 19e539c9ee1701b34189fa0c1feb942adeb0e326: [Backport #21814]Takashi Kokubun
[PATCH] [Bug #21814] Fix negative bignum modulo If modulo is zero, do not apply bias even if the divisor is zero. `BIGNUM_POSITIVE_P` is true even on bignum zero.
2 daysmerge revision(s) 4e0bb58a0a374b40b7691e7b7aa88e759a0fc9f2: [Backport #21811]Takashi Kokubun
[PATCH] fix underflow
2 daysRemove ruby-bench excludesStan Lo
These benchmarks should be working fine now.
2 daysredmine-backporter.rb: Check remote-tracking branchTakashi Kokubun
on `has_commit` check for the `backport` command. I don't maintain local "master" branch on my ruby repository for stable branch maintenance. I want just running `git fetch origin` to make it work. It should work for those who pull origin/master into their local master too.
7 daysFix incorrect bundled gems warning for hyphenated gem namesChris Hasiński
When requiring a file like "benchmark/ips", the warning system would incorrectly warn about the "benchmark" gem not being a default gem, even when the user has "benchmark-ips" (a separate third-party gem) in their Gemfile. The fix checks if a hyphenated version of the require path exists in the bundle specs before issuing a warning. For example, requiring "benchmark/ips" now checks for both "benchmark" and "benchmark-ips" in the Gemfile. [Bug #21828]
9 daysAdd k0kubun as CODEOWNERSTakashi Kokubun
9 daysruby-bench: Prefer --excludes over rm -rfTakashi Kokubun
to remind us of skipped benchmarks in the CI job names
9 daysDisabled to run lobsters benchmark because it didn't work with Ruby 4.1 yetHiroshi SHIBATA
9 daysuutils-coreutils 0.5.0 has been removed uutils wrapperHiroshi SHIBATA
9 daysBox: skip checking the current box is the root boxSatoshi Tagomori
Because checking the current box is not a cheap process.
9 daysBox: allocate classes as boxable when it happens in the root boxSatoshi Tagomori
Without this change, classes (including iclass) are allocated as un-boxable classes after initializing user boxes (after starting script evaluation). Under this situation, iclasses are created as un-boxabled class when core modules are included by a class in the root box, then it causes problems because it's in the root box but it can't have multiple classexts. This change makes it possible to allocate boxable classes even after initializing user boxes. Classes create in the root box will be boxable, and those can have 2 or more classexts.
2025-12-26[DOC] Remove outdated documentation about command injectionJean Boussier
[Feature #19630] This dangerous behavior was removed in 4.0 (996cae65f3cc8fed60c6bb758b00882cac49389d) but the documentation wasn't updated.
2025-12-25v4.0.0v4.0.0NARUSE, Yui
2025-12-25[DOC] Escape capitalized word "data" not to be linked unexpectedlyNobuyoshi Nakada
2025-12-25[DOC] Reword "Regular Expression" to "Matched Data"Nobuyoshi Nakada
`$~` and its accessors are related to regular expressions, but are not themselves.
2025-12-25Revert "Rollback to minitest-5.27.0"Hiroshi SHIBATA
This reverts commit 8d097bc472fc66221dee23bb8f9e0dddac16db23.
2025-12-25[DOC] Add back Rust 1.85.0 requirement to NEWS.md (#15728)Godfrey Chan
* [DOC] Add back Rust 1.85.0 requirement to NEWS.md Addresses k0kubun's review in https://github.com/ruby/ruby/pull/15711#issuecomment-3690541074 NEWS.md serves both CRuby developers as well as end-users. As the release date closes in, it probably gets seen by more users than core developers (on the blog for example). Most users probably don't build Ruby by hand, and instead that is abstracted through tools like ruby-install or a package manager. For some users these tools may install pre-built binaries where they exist, in which case the Rust requirement doesn't apply. In other instances, the tools merely automate the build, in which case the correct rustc version is required to enable support. It is also a little confusing to talk about "enabling support for the JIT during the build" vs "enabling the JIT at runtime". This copy attempts to balance all of the above and hopefully gets the correct points across all intended audiences. * Apply suggestion from k0kubun Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> --------- Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2025-12-24ZJIT: Don't mark control-flow opcodes as invalidating locals (#15694)Max Bernstein
jump, branchif, etc don't invalidate locals in the JIT; they might in the interpreter because they can execute arbitrary code, but the JIT side exits before that happens.
2025-12-25Rollback to minitest-5.27.0Hiroshi SHIBATA
Test of 6.0.0 is not working with 4.0.0 stable version. https://github.com/ruby/actions/actions/runs/20488398805/job/58875672023#step:20:362 ``` rake aborted! NoMethodError: undefined method 'cov_filter=' for #<Hoe:0x00007fdb550fc840> (NoMethodError) self.cov_filter = %w[ tmp ] ^^^^^^^^^^^^^ /home/runner/work/actions/actions/ruby-4.0.0/gems/src/minitest/Rakefile:20:in 'block in <top (required)>' /home/runner/work/actions/actions/ruby-4.0.0/.bundle/gems/hoe-3.20.0/lib/hoe.rb:394:in 'BasicObject#instance_eval' /home/runner/work/actions/actions/ruby-4.0.0/.bundle/gems/hoe-3.20.0/lib/hoe.rb:394:in 'Hoe.spec' /home/runner/work/actions/actions/ruby-4.0.0/gems/src/minitest/Rakefile:11:in '<top (required)>' /home/runner/work/actions/actions/ruby-4.0.0/.bundle/gems/rake-13.3.1/exe/rake:27:in '<top (required)>' (See full trace by running task with --trace) ```
2025-12-25Revert "Rollback to test-unit 3.7.3"Hiroshi SHIBATA
This reverts commit c17307ac22f37f74786a4f016121c6ee8cc38915.
2025-12-25rbs_skip_tests_windowsSoutaro Matsumoto
2025-12-25Skip test to avoid NoMemoryErrorSoutaro Matsumoto
2025-12-25Bundle test-unit 3.7.5Soutaro Matsumoto
2025-12-25Bump RDoc to 7.0.3Stan Lo
2025-12-24Remove extra helpNARUSE, Yui
2025-12-24Reapply "Extract `ruby_api_version_name`"NARUSE, Yui
This reverts commit ba2f6972193cdbd7c1e77e26212513e47926b115. Box already used ruby_api_version_name.
2025-12-24Revert "Add link to Ruby options doc in help text"NARUSE, Yui
This reverts commit 31ff07ed1eb05d01f7da3c017d542137a3db1e94. * Don't add a test which only runs on production release * https://github.com/ruby/actions/actions/runs/20486784889/job/58870959976 * Don't add a new line to `ruby --help` * https://github.com/ruby/ruby/pull/14142#issuecomment-3689829564
2025-12-24Revert "Extract `ruby_api_version_name`"NARUSE, Yui
This reverts commit 9b576cd6255aba97e5e2f55f4b09f00c7dd0e839.
2025-12-24Fix a fragile testNobuyoshi Nakada
`Dir.mktmpdir` concatenates a random base-36 number separated by "-", so may generate pathnames containing "-j2".
2025-12-24Prevent "warning: assigned but unused variable - it"Yusuke Endoh
2025-12-24Remove unintentional returnYusuke Endoh
2025-12-24ext/-test-/scheduler/scheduler.c: explicitly ignore the result of writeYusuke Endoh
``` scheduler.c:44:5: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 44 | write(blocking_state->notify_descriptor, "x", 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ```
2025-12-24Win32: Remove an unused functionNobuyoshi Nakada
Since 50e5c542cc0541fb38e52766d88d87bd8a96b072, `constat_reset` is no longer used.
2025-12-24Rollback to test-unit 3.7.3Hiroshi SHIBATA
3.7.5 is not working with rbs-3.10.0 https://github.com/ruby/ruby/actions/runs/20480628393/job/58853288287#step:22:353 ``` D:/a/ruby/ruby/src/.bundle/gems/test-unit-3.7.5/lib/test/unit/testcase.rb:641:in 'block (2 levels) in Test::Unit::TestCase#run': failed to allocate memory (NoMemoryError) ```
2025-12-24Disable auto-update of bundled gemsHiroshi SHIBATA
2025-12-24Restore gem updates that are accidentally deletedHiroshi SHIBATA
2025-12-24Added release histories of default/bundled gems from Ruby 3.4.8Hiroshi SHIBATA
2025-12-24Update to test-unit 3.7.5 at NEWS.mdHiroshi SHIBATA
2025-12-24Added https://github.com/ruby/net-http/issues/205 to NEWS.mdHiroshi SHIBATA
2025-12-24Update bundled gems list as of 2025-12-24git
2025-12-24[DOC] Update ZJIT status in NEWS.mdGodfrey Chan
As for Ruby v4.0.0-preview3, ZJIT support is enabled by default on supported platforms. The previous phrasing is not relevant for most users. Replaced with brief instructions for enabling the JIT itself.
2025-12-24Box: show the fully qualified URL of the Ruby::Box docSatoshi Tagomori
2025-12-24Remove an extra dot from `RUBY_API_VERSION_STR`Nobuyoshi Nakada