summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
3 daysDisabled TRAP cache of CodeQLruby_3_3Hiroshi SHIBATA
10 daysRemove hardcoded version of rake from Bundler testsHiroshi SHIBATA
The original commit is https://github.com/rubygems/rubygems/commit/85f73e42a563ac6848ba22aeae344a5bdc5a9ed7
2025-05-24Follow up for 380938998415c22ba3ca9bc01f4035d5a73f274d. The type of ↵nagachika
jump_to_next_insn() is Option<()> on ruby_3_3.
2025-05-24Follow up for 380938998415c22ba3ca9bc01f4035d5a73f274d. jump_to_next_insn() ↵nagachika
require 3rd argument on ruby_3_3.
2025-05-24merge revision(s) cbf9c088f8005a49b6aa3f475c70041357774c61: [Backport #21310]nagachika
YJIT: End the block after OPTIMIZE_METHOD_TYPE_CALL (#13245)
2025-05-24merge revision(s) 056497319658cbefe22351c6ec5c9fa6e4df72bd: [Backport #21357]nagachika
[Bug #21357] Fix crash in Hash#merge with block Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c the `optional_arg` passed from `rb_hash_update_block_i` to `tbl_update` was a hash value (i.e. a VALUE). After that commit it changed to an `update_call_args`. If the block sets or changes the value, `tbl_update_modify` will set the `arg.value` back to an actual value and we won't crash. But in the case where the block returns the original value we end up calling `RB_OBJ_WRITTEN` with the `update_call_args` which is not expected and may crash. `arg.value` appears to only be used to pass to `RB_OBJ_WRITTEN` (others who need the `update_call_args` get it from `arg.arg`), so I don't think it needs to be set to anything upfront. And `tbl_update_modify` will set the `arg.value` in the cases we need the write barrier.
2025-05-24merge revision(s) 49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c: [Backport #21333]nagachika
[Bug #21333] Prohibit hash modification inside Hash#update block
2025-05-22Win32: Initialize the systemtime function before converting FILETIMENobuyoshi Nakada
2025-05-22Don't need to store download cache of vcpkgHiroshi SHIBATA
vcpkg can detect their cache from `vcpkg/installed`.
2025-05-18merge revision(s) 80a1a1bb8ae8435b916ae4f66a483e91ad31356a: [Backport #21257]nagachika
YJIT: Fix potential infinite loop when OOM (GH-13186) Avoid generating an infinite loop in the case where: 1. Block `first` is adjacent to block `second`, and the branch from `first` to `second` is a fallthrough, and 2. Block `second` immediately exits to the interpreter, and 3. Block `second` is invalidated and YJIT is OOM While pondering how to fix this, I think I've stumbled on another related edge case: 1. Block `incoming_one` and `incoming_two` both branch to block `second`. Block `incoming_one` has a fallthrough 2. Block `second` immediately exits to the interpreter (so it starts with its exit) 3. When Block `second` is invalidated, the incoming fallthrough branch from `incoming_one` might be rewritten first, which overwrites the start of block `second` with a jump to a new branch stub. 4. YJIT runs of out memory 5. The incoming branch from `incoming_two` is then rewritten, but because we're OOM we can't generate a new stub, so we use `second`'s exit as the branch target. However `second`'s exit was already overwritten with a jump to the branch stub for `incoming_one`, so `incoming_two` will end up jumping to `incoming_one`'s branch stub. Fixes [Bug #21257]
2025-05-18merge revision(s) b959263b58e26ef630c085f9f7ddc04373a998c7: [Backport #21344]nagachika
Fix Exception#detailed_message for GC compaction Before this commit, the test fails with RGENGC_CHECK_MODE enabled: TestException#test_detailed_message_under_gc_compact_stress [test/ruby/test_exception.rb:1466]: <"\e[1mfoo (\e[1;4mRuntimeError\e[m\e[1m)\e[m\n" + "\e[1mbar\e[m\n" + "\e[1mbaz\e[m"> expected but was <"\e[1mfoo (\e[1;4mRuntimeError\e[m\e[1m)\e[m\n" + "\e[1m\x00\x00\x00\x00\x00\x00\x00\e[m">.
2025-05-18Bump net-imap to v0.4.21 for Ruby 3.3 (CVE-2025-43857)nick evans
v0.4.20 addresses CVE-2025-43857 (GHSA-j3g3-5qv5-52mj). v0.4.21 fixes bugs in `Net::IMAP::SequenceSet`.
2025-05-18merge revision(s) b48b841378f80e16378ceb83f3b78e52df9ae023, ↵nagachika
2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc: [Backport #21327] digest.so needs ruby/digest.h which is installed by build-ext Copy to path with the base name
2025-05-18merge revision(s) 3113bc8d445c4c24ed3827adfc50bb88c99b6364:nagachika
stat command is not provided on Windows
2025-05-17merge revision(s) 7793b59c8d2a13c124fe276e11723db23facce04: [Backport #21331]nagachika
[Bug #21331] Prohibit hash modification during stlike loop
2025-05-17merge revision(s) 7f5b4fb26ea8c0a736a37101327905eebebee8bf:nagachika
Remove unused retval assignments
2025-05-17merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, ↵nagachika
46e4c8673747de96838d2c5dec37446d23d99d88: Fix redefinition of `clock_gettime` and `clock_getres` winpthreads-git 12.0.0.r720 provides `clock_gettime` and `clock_getres` as inline functions. Detect `clock_gettime` and `clock_getres` for winpthreads
2025-05-17merge revision(s) 0d6263bd416338a339651fb97fe4d62701704c4b: [Backport #21220]nagachika
Fix coverage measurement for negative line numbers Fixes [Bug #21220] Co-Authored-By: Mike Bourgeous <[email protected]> Co-Authored-By: Jean Boussier <[email protected]>
2025-05-06Check LoadError firstNobuyoshi Nakada
The message from dlerror is not our concern.
2025-05-06Added assertion strings with Xcode 16.3 betaHiroshi SHIBATA
2025-05-06merge revision(s) 719486a642f0e282b02b958069b8b39b85b3aa1e: [Backport #21286]nagachika
Fix C23 (GCC 15) WIN32 compatibility for rb_define_* functions Fixes [Bug #21286]
2025-05-01Fixed step for cmake 3 installationHiroshi SHIBATA
2025-05-01tool/downloader.rb: Stop caching already existing filesYuta Saito
Previously, the script was caching any file already present in the destination directory, regardless of its origin. This caused issues when the directory contained files copied from external sources like `autoreconf --install`. For example: 1. `./autogen.sh --install` copies `config.guess` and `config.sub` from the system to `./tool`. 2. `ruby tool/downloader.rb -d tool -e gnu config.guess config.sub` treats those files as if they were downloaded and caches them. 3. Removing the files: `rm tool/config.guess tool/config.sub`. 4. Running the downloader again, it mistakenly restores the cached files instead of downloading fresh versions.
2025-05-01Use configu.guess with wasi compatible versionHiroshi SHIBATA
2025-05-01Bump up the latest version of actionsHiroshi SHIBATA
2025-05-01Bump up clang-14 with yjit-bindgen jobHiroshi SHIBATA
2025-05-01ubuntu-20.04 is retiredHiroshi SHIBATA
2025-05-01Use windows-2022 because windows-2019 is EOL at June 2025Hiroshi SHIBATA
2025-04-09bump teenyv3_3_8nagachika
2025-04-09merge revision(s) 06919949a60b42a8f30e8bd0cb075e17b05eebcd, ↵nagachika
51bc992822f9108ad64de32d300e1cefd0e2da59, 42daa6c2a2b49b4e45f40736e25c7d182860f24a: [Backport #21141] [Bug #21141] [DOC] Clarify what time is in UTC [Bug #21141] [DOC] Refine description of `Time#utc?` [Bug #21141] [DOC] Fix indentation
2025-04-07merge revision(s) 3a7b9ca93b91dcc086b9ac8b9957e59268f9493b: [Backport #21217]nagachika
Fix `Integer.sqrt` to never exceed actual value `Integer.sqrt` uses `sqrt(3)` from libm for small values. This method must return a value less than or equal to the actual integer square root, but libm's sqrt does not always guarantee that. This change corrects that by decrementing the result if necessary. Fixes [Bug #21217]
2025-04-06Update prism test snapshots.nagachika
This is follow-up for 7c315e23983a35d29108d9ba8c914d6320254d43.
2025-04-06merge revision(s) 117d6e145a0270ab8fc9134403519ef13b9ebb24: [Backport #21027]nagachika
[ruby/prism] Fix `not` receiver `not foo` should be `!foo` `not()` should be `!nil` Fixes [Bug #21027] https://github.com/ruby/prism/commit/871ed4b462
2025-04-04Use EnvUtil.apply_timeout_scaleHiroshi SHIBATA
2025-04-04Extend open_timeout for test failure on s390xHiroshi SHIBATA
https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz
2025-04-03Use IPv4 for test server because TestNetHTTPS is failing with s390xHiroshi SHIBATA
https://rubyci.s3.amazonaws.com/s390x/ruby-3.2/log/20250403T005659Z.fail.html.gz
2025-04-03f7059af50a31 is also required at ractor_core.hHiroshi SHIBATA
2025-04-03Enforce to use CMake 3 because CMake 4 is not compatible to build libyaml ↵Hiroshi SHIBATA
via vcpkg
2025-04-02merge revision(s) d78ff6a767ca813ac5fa178dd7611f20a993c191: [Backport #20984]nagachika
[Bug #20984] Fix test with locale encoding
2025-04-02[rubygems/rubygems] Bump up minimum required version for cmake 4Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/3e77caeddf
2025-03-30merge revision(s) 5f77f9bea61fb4cc8447a76e191fdfb28f076862: [Backport #21195]nagachika
Fix handling of `error`/`errno` in `io_internal_wait`. (#12961) [Bug #21195]
2025-03-29merge revision(s) f69ad0e810e1fdc18dc12f77bbecfa49999ef3bf: [Backport #21094]nagachika
[Bug #21094] Update nested module names when setting temporary name
2025-03-29merge revision(s) 1acfb29015dbc38fd345d8786aa78aad59f7dcd1: [Backport #21186]nagachika
[Bug #21186] multibyte char literal should be a single letter word
2025-03-29merge revision(s) 9459bedd84d479bb1d7d3d40bada1cecb4701c37: [Backport #19841]nagachika
[Bug #19841] Refine error on marshaling recursive USERDEF
2025-03-24[rubygems/rubygems] Support git 2.49David Rodríguez
One error message that we parse is now slightly different. https://github.com/rubygems/rubygems/commit/758528791d
2025-03-16merge revision(s) f423f6e10c0c226dfed98e7cb7a5d489191dfa35: [Backport #21131]nagachika
Ensure IO.copy_stream buffer is an independent string Otherwise, changes to the buffer by the destination write method could result in data changing for supposedly independent strings. Fixes [Bug #21131]
2025-03-16merge revision(s) 08b3a45bc97c835b4677bf76dbce68fd51d81897: [Backport #21180]nagachika
Push a real iseq in rb_vm_push_frame_fname() Previously, vm_make_env_each() (used during proc creation and for the debug inspector C API) picked up the non-GC-allocated iseq that rb_vm_push_frame_fname() creates, which led to a SEGV when the GC tried to mark the non GC object. Put a real iseq imemo instead. Speed should be about the same since the old code also did a imemo allocation and a malloc allocation. Real iseq allows ironing out the special-casing of dummy frames in rb_execution_context_mark() and rb_execution_context_update(). A check is added to RubyVM::ISeq#eval, though, to stop attempts to run dummy iseqs. [Bug #21180] Co-authored-by: Aaron Patterson <[email protected]>
2025-03-16merge revision(s) 3f07bc76ff6a11232d9f18e5eaa31835c195e8f0, ↵nagachika
34098b669c0cbc024cd08e686891f1dfe0a10aaf: [Backport #21144] [Bug #21144] Win32: Use Windows time zone ID if TZ is not set If the TZ environment variable is not set, the time zone names retrieved from the system are localized for UI display and may vary across editions and language packs for the same time zone. Use the time zone IDs that are invariant across environments instead. [Bug #21144] Win32: Convert the time zone name to the current locale The Windows time zone IDs provided by Microsoft as of 24H1 are ASCII only all, but the API itself is not impossible to set non-ASCII key name. Prefer the current locale encoding for now until we move to UTF-8 including environment variables and command line arguments.
2025-03-16merge revision(s) c224ca4feaff20cab03d76439bcbfb35d4e2f6b1: [Backport #21172]nagachika
Fix a race condition with interned strings sweeping. [Bug #21172] This fixes a rare CI failure. The timeline of the race condition is: - A `"foo" oid=1` string is interned. - `"foo" oid=1` is no longer referenced and will be swept in the future. - Another `"foo" oid=2` string is interned. - `register_fstring` finds `"foo" oid=1`, but since it is about to be swept, removes it from `fstring_table` and insert `"foo" oid=2` instead. - `"foo" oid=1` is swept, since it has the `RSTRING_FSTR` flag, a `st_delete` is issued in `fstring_table` which removes `"foo" oid=2`. I don't know how to reproduce this bug consistently in a single test case.
2025-03-16merge revision(s) 931ac960b6d11937364b6c4e847fdd575ee67980: [Backport #21159]nagachika
[Bug #21159] module names should not be modifiable