summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
11 days[rubygems/rubygems] Compare major version onlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6b4cf6713d
11 days[rubygems/rubygems] Remove dead spec helpersDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ee5a0158fd
11 days[rubygems/rubygems] Reduce duplication a bitDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0574c62fc0
11 days[rubygems/rubygems] Fix headings levels in ChangelogsAntoine Marguerie
And adapt release scripts and configuration to the new structure. https://github.com/rubygems/rubygems/commit/3deb1aedae
11 days[rubygems/rubygems] Deprecate x64-mingw32 legacy Windows platform in favor ↵Nicholas La Roux
of x64-mingw-ucrt https://github.com/rubygems/rubygems/commit/71c969be44
11 days[rubygems/rubygems] Reset variables that can cause specs to fail if setDavid Rodríguez
https://github.com/rubygems/rubygems/commit/8df67b7322
11 daysAllow volatile pointer relaxed atomic operationsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/13521
11 daysWin: Cast of qualifier in `rbimpl_atomic_u64_load_relaxed`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/13521
11 days[ruby/stringio] Extract internal part as the functionNobuyoshi Nakada
`str_chilled_p` (https://github.com/ruby/stringio/pull/136) https://github.com/ruby/stringio/commit/3c52ddc4c8
11 daysUpdate bundled gems list as of 2025-06-05git
11 daysWin: Slim down `vcvars_ver` options in the matrixNobuyoshi Nakada
11 daysGet rid of `rb_shape_t.flags`Jean Boussier
Now all flags are only in the `shape_id_t`, and can all be checked without needing to dereference a pointer. Notes: Merged: https://github.com/ruby/ruby/pull/13515
11 daysZJIT: Add newrange support (#13505)Stan Lo
* Add newrange support to zjit * Add RangeType enum for Range insn's flag * Address other feedback Notes: Merged-By: k0kubun <[email protected]>
11 daysmark main Ractor objectKoichi Sasada
`RUBY_DEBUG=gc_stress ./miniruby -e0` crashes because of this marking miss. BTW, to use `RUBY_DEBUG=gc_stress` we need to specify `--enable-debug-env` configure option. This is why I couldn't repro on my environments. see c0c94ab183d0d428595ccb74ae71ee945f1afd45 Notes: Merged: https://github.com/ruby/ruby/pull/13506
12 daysZJIT: Implement side exits for entry frames (#13469)Takashi Kokubun
Co-authored-by: Max Bernstein <[email protected]> Co-authored-by: Alan Wu <[email protected]> Notes: Merged-By: k0kubun <[email protected]>
12 daysRemove dead rb_malloc_info_show_resultsPeter Zhu
Notes: Merged: https://github.com/ruby/ruby/pull/13516
12 daysImplement write barrier for addrinfoDaniel Colson
`rb_addrinfo_t` has `VALUE inspectname` and `VALUE canonname`, so this triggers the write barrier for those. The `AddrInfo` wasn't readily available where we need to call `RB_OBJ_WRITE`, so this involves passing `self` around a bit. Notes: Merged: https://github.com/ruby/ruby/pull/13503
12 daysLaunchable: Set env variables to prevent CI slowdowns (#13513)Naoto Ono
When Launchable in unstable, the round trip time takes a long time, which slows down CI execution. In this PR I configured the environment variable `LAUNCHABLE_COMMIT_TIMEOUT` to configure the timeout. https://github.com/launchableinc/cli/pull/1015 Notes: Merged-By: ono-max <[email protected]>
12 daysZJIT: Fix incorrect method name in test for Array#sizeStan Lo
Notes: Merged: https://github.com/ruby/ruby/pull/13487 Merged-By: XrXr
12 daysGet rid of TOO_COMPLEX shape typeJean Boussier
Instead it's now a `shape_id` flag. This allows to check if an object is complex without having to chase the `rb_shape_t` pointer. Notes: Merged: https://github.com/ruby/ruby/pull/13511
12 daysUse the edge version of debug gemYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/13510
12 daysMake `rb_debug_inspector_backtrace_locations` return a raw backtraceYusuke Endoh
Previously, a user of the debug inspector API was supposed to use `rb_debug_inspector_backtrace_locations` to get an array of `Thread::Backtrace::Location`, and then used its index to get more information from `rb_debug_inspector _frame_binding_get(index)`, etc. However, `rb_debug_inspector_backtrace_locations` returned an array of backtraces excluding rescue/ensure frames. On the other hand, `rb_debug_inspector_frame_binding_get(index)` interprets index with rescue/ensure frames. This led to inconsistency of the index, and it was very difficult to correctly use the debug inspector API. This is a minimal fix for the issue by making `rb_debug_inspector_backtrace_locations` return a raw backtrace including rescue/ensure frames. Notes: Merged: https://github.com/ruby/ruby/pull/13510
12 daysZJIT: Spill to the stack using arguments instead of FrameStateAlan Wu
The FrameState on the SendWithoutBlock represents the entry state, but for instructions that push to the stack in the middle of the instruction before actually doing the send like opt_aref_with, the FrameState is incorrect. We need to write to the stack using the arguments for the instruction. Notes: Merged: https://github.com/ruby/ruby/pull/13468
12 daysZJIT: Parse opt_aref_with into HIRAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13468
12 days`Ractor#take` and warnKoichi Sasada
`Ractor#take` was deprecated but some libraries can use it as an alias for `Ractor#value` (i.e., to wait for a Ractor's temrination and retrieve its result). Therefore `Ractor#take` is simply an alias for `Ractor#value`. This method will remain available until the end of August 2025, unless there is further discussion. Notes: Merged: https://github.com/ruby/ruby/pull/13512
12 daysSuppress dangling pointer warning by gccNobuyoshi Nakada
`__has_warning` is clang, not gcc. Notes: Merged: https://github.com/ruby/ruby/pull/13509
12 daysSuppress overflow warning at `ALLOC_N` in `iseq_set_local_table`Nobuyoshi Nakada
`xmalloc2` checks the overflow of arguments multiplication. Notes: Merged: https://github.com/ruby/ruby/pull/13509
12 daysCheck for 64bit atomic operationsNobuyoshi Nakada
May not be supported on some 32bit architectures. ``` /usr/lib/gcc-cross/m68k-linux-gnu/14/../../../../m68k-linux-gnu/bin/ld: ../../libruby-static.a(vm.o): in function `rbimpl_atomic_u64_set_relaxed': /home/ubuntu/build/ruby/master/m68k-linux/../src/ruby_atomic.h:60:(.text+0x2468): undefined reference to `__atomic_store_8' /usr/lib/gcc-cross/m68k-linux-gnu/14/../../../../m68k-linux-gnu/bin/ld: ../../libruby-static.a(vm.o): in function `rbimpl_atomic_u64_load_relaxed': /home/ubuntu/build/ruby/master/m68k-linux/../src/ruby_atomic.h:43:(.text+0x2950): undefined reference to `__atomic_load_8' ``` Notes: Merged: https://github.com/ruby/ruby/pull/13509
12 daysMark as NORETURNNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/13509
12 daysAdd missing lock in `rb_ivar_defined`Jean Boussier
If called on a class, we should acquire the lock. Notes: Merged: https://github.com/ruby/ruby/pull/13502
12 days[ruby/did_you_mean] Revert "Alias value to take in old Ruby"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/did_you_mean/commit/15d7b0bfa573. https://github.com/ruby/did_you_mean/commit/86a7daca19
12 daysshape.c: fix off by one error in `shape_tree_mark`Jean Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/13289
12 daysvm_getivar: normalize shape_id to ignore frozen stateJean Boussier
Freezing an object changes its `shape_id` This is necessary so that `setivar` routines can use the `shape_id` as a cache key and save on checking the frozen status every time. However for `getivar` routines, this causes needless cache misses. By clearing that bit we increase hit rate in codepaths that see both frozen and mutable objects. Notes: Merged: https://github.com/ruby/ruby/pull/13289
12 daysGet rid of frozen shapes.Jean Boussier
Instead `shape_id_t` higher bits contain flags, and the first one tells whether the shape is frozen. This has multiple benefits: - Can check if a shape is frozen with a single bit check instead of dereferencing a pointer. - Guarantees it is always possible to transition to frozen. - This allow reclaiming `FL_FREEZE` (not done yet). The downside is you have to be careful to preserve these flags when transitioning. Notes: Merged: https://github.com/ruby/ruby/pull/13289
12 days[ruby/psych] Revert "Alias value or join to take in old Ruby"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/psych/commit/1a4d383efe0b. https://github.com/ruby/psych/commit/2f51c02280
12 days[ruby/uri] Revert "Alias value or join to take in old Ruby"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/uri/commit/443ed0cf8540. https://github.com/ruby/uri/commit/9e51838a04
12 days[ruby/date] Removed workaround for assert_ractorHiroshi SHIBATA
https://github.com/ruby/date/commit/700e44ef54
12 days[ruby/time] Removed workaround for assert_ractorHiroshi SHIBATA
https://github.com/ruby/time/commit/337410e971
12 daysSupport Ractor#value and Ractor#join for old versions of RubyHiroshi SHIBATA
https://github.com/ruby/test-unit-ruby-core/pull/9 https://github.com/ruby/test-unit-ruby-core/pull/10
12 days[ruby/etc] Removed workaround for assert_ractorHiroshi SHIBATA
https://github.com/ruby/etc/commit/fd61177b71
12 daysAdded warning for CGI.parseHiroshi SHIBATA
12 daysCorrect comments for packed shape and index [ci skip]Nobuyoshi Nakada
13 daysFix scheduler warningJean Boussier
``` test/fiber/test_scheduler.rb:98: warning: Scheduler should implement #fiber_interrupt ``` Notes: Merged: https://github.com/ruby/ruby/pull/13501
13 daysFix memory leak of Ractor portsPeter Zhu
Memory leak reported: 3 miniruby 0x1044b6c1c ractor_init + 164 ractor.c:460 2 miniruby 0x1043fd6a0 ruby_xmalloc + 44 gc.c:5188 1 miniruby 0x104402840 rb_gc_impl_malloc + 148 default.c:8140 0 libsystem_malloc.dylib 0x19ab3912c _malloc_zone_malloc_instrumented_or_legacy + 152 Notes: Merged: https://github.com/ruby/ruby/pull/13504
13 daysFix memory leak of Ractor recv_queuePeter Zhu
Memory leak reported: 3 miniruby 0x104702c1c ractor_init + 164 ractor.c:460 2 miniruby 0x1046496a0 ruby_xmalloc + 44 gc.c:5188 1 miniruby 0x10464e840 rb_gc_impl_malloc + 148 default.c:8140 0 libsystem_malloc.dylib 0x19ab3912c _malloc_zone_malloc_instrumented_or_legacy + 152 Notes: Merged: https://github.com/ruby/ruby/pull/13504
13 daysUse all 32bits of `shape_id_t` on all platformsJean Boussier
Followup: https://github.com/ruby/ruby/pull/13341 / [Feature #21353] Even thought `shape_id_t` has been make 32bits, we were still limited to use only the lower 16 bits because they had to fit alongside `attr_index_t` inside a `uintptr_t` in inline caches. By enlarging inline caches we can unlock the full 32bits on all platforms, allowing to use these extra bits for tagging. Notes: Merged: https://github.com/ruby/ruby/pull/13500
13 daysAllow pass special constants to the write barrierPeter Zhu
Some GC implementations want to always know when an object is written to, even if the written value is a special constant. Checking special constants in rb_obj_written was a micro-optimization that made assumptions about the GC implementation. Notes: Merged: https://github.com/ruby/ruby/pull/13497
13 days[ruby/prism] Document ClassNode fields - Adds documentation for the fields ↵harasho
of the `ClassNode`. - Part of #2123 https://github.com/ruby/prism/commit/99615b43ac
13 daysFix memory leak in Prism's RubyVM::InstructionSequence.newPeter Zhu
[Bug #21394] There are two ways to make RubyVM::InstructionSequence.new raise which would cause the options->scopes to leak memory: 1. Passing in any (non T_FILE) object where the to_str raises. 2. Passing in a T_FILE object where String#initialize_dup raises. This is because rb_io_path dups the string. Example 1: 10.times do 100_000.times do RubyVM::InstructionSequence.new(nil) rescue TypeError end puts `ps -o rss= -p #{$$}` end Before: 13392 17104 20256 23920 27264 30432 33584 36752 40032 43232 After: 9392 11072 11648 11648 11648 11712 11712 11712 11744 11744 Example 2: require "tempfile" MyError = Class.new(StandardError) String.prepend(Module.new do def initialize_dup(_) if $raise_on_dup raise MyError else super end end end) Tempfile.create do |f| 10.times do 100_000.times do $raise_on_dup = true RubyVM::InstructionSequence.new(f) rescue MyError else raise "MyError was not raised during RubyVM::InstructionSequence.new" end puts `ps -o rss= -p #{$$}` ensure $raise_on_dup = false end end Before: 14080 18512 22000 25184 28320 31600 34736 37904 41088 44256 After: 12016 12464 12880 12880 12880 12912 12912 12912 12912 12912 Notes: Merged: https://github.com/ruby/ruby/pull/13496
13 days[ruby/tmpdir] Restore Ractor.yield style test for old version of RubyHiroshi SHIBATA
https://github.com/ruby/tmpdir/commit/f12c766996