From 29847070f00184d7c0a97f8e1f18f5b4a9775076 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 4 Nov 2025 18:00:22 +0900 Subject: [PATCH 1/6] [ruby/io-wait] bump up to 0.3.3 https://github.com/ruby/io-wait/commit/57bc0b752b --- ext/io/wait/io-wait.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/io/wait/io-wait.gemspec b/ext/io/wait/io-wait.gemspec index 44e6b65142e2d3..e16d7f10c349b2 100644 --- a/ext/io/wait/io-wait.gemspec +++ b/ext/io/wait/io-wait.gemspec @@ -1,4 +1,4 @@ -_VERSION = "0.3.2" +_VERSION = "0.3.3" Gem::Specification.new do |spec| spec.name = "io-wait" From ee74b97e521b9027c21390c969d51225ba417f09 Mon Sep 17 00:00:00 2001 From: git Date: Tue, 4 Nov 2025 16:16:28 +0000 Subject: [PATCH 2/6] Update default gems list at 29847070f00184d7c0a97f8e1f18f5 [ci skip] --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 8917a7d753ac56..0aa4aa63b36dac 100644 --- a/NEWS.md +++ b/NEWS.md @@ -191,7 +191,7 @@ The following default gems are updated. * fileutils 1.8.0 * io-console 0.8.1 * io-nonblock 0.3.2 -* io-wait 0.3.2 +* io-wait 0.3.3 * json 2.15.2 * net-http 0.7.0 * openssl 4.0.0.pre From 14f6f7051b9fd226dc209961563879b9cf18759e Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 30 Oct 2025 11:30:51 -0700 Subject: [PATCH 3/6] Fix rb_gc_impl_checking_shareable for modular GC This implements it the same as the other modular GC functions --- gc.c | 5 +++-- gc/gc_impl.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gc.c b/gc.c index 53cfe839d5b912..a8320246d03d89 100644 --- a/gc.c +++ b/gc.c @@ -620,6 +620,7 @@ typedef struct gc_function_map { void (*config_set)(void *objspace_ptr, VALUE hash); void (*stress_set)(void *objspace_ptr, VALUE flag); VALUE (*stress_get)(void *objspace_ptr); + bool (*checking_shareable)(void *objspace_ptr); // Object allocation VALUE (*new_obj)(void *objspace_ptr, void *cache_ptr, VALUE klass, VALUE flags, bool wb_protected, size_t alloc_size); size_t (*obj_slot_size)(VALUE obj); @@ -794,6 +795,7 @@ ruby_modular_gc_init(void) load_modular_gc_func(config_get); load_modular_gc_func(stress_set); load_modular_gc_func(stress_get); + load_modular_gc_func(checking_shareable); // Object allocation load_modular_gc_func(new_obj); load_modular_gc_func(obj_slot_size); @@ -874,6 +876,7 @@ ruby_modular_gc_init(void) # define rb_gc_impl_config_set rb_gc_functions.config_set # define rb_gc_impl_stress_set rb_gc_functions.stress_set # define rb_gc_impl_stress_get rb_gc_functions.stress_get +# define rb_gc_impl_checking_shareable rb_gc_functions.checking_shareable // Object allocation # define rb_gc_impl_new_obj rb_gc_functions.new_obj # define rb_gc_impl_obj_slot_size rb_gc_functions.obj_slot_size @@ -2804,8 +2807,6 @@ mark_m_tbl(void *objspace, struct rb_id_table *tbl) } } -bool rb_gc_impl_checking_shareable(void *objspace_ptr); // in defaut/deafult.c - bool rb_gc_checking_shareable(void) { diff --git a/gc/gc_impl.h b/gc/gc_impl.h index 3250483639e775..2c05fe6cff0671 100644 --- a/gc/gc_impl.h +++ b/gc/gc_impl.h @@ -54,6 +54,7 @@ GC_IMPL_FN void rb_gc_impl_stress_set(void *objspace_ptr, VALUE flag); GC_IMPL_FN VALUE rb_gc_impl_stress_get(void *objspace_ptr); GC_IMPL_FN VALUE rb_gc_impl_config_get(void *objspace_ptr); GC_IMPL_FN void rb_gc_impl_config_set(void *objspace_ptr, VALUE hash); +GC_IMPL_FN bool rb_gc_impl_checking_shareable(void *objspace_ptr); // Object allocation GC_IMPL_FN VALUE rb_gc_impl_new_obj(void *objspace_ptr, void *cache_ptr, VALUE klass, VALUE flags, bool wb_protected, size_t alloc_size); GC_IMPL_FN size_t rb_gc_impl_obj_slot_size(VALUE obj); From b6f00701cbcee1ca791384b571e1e4057749834a Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Tue, 4 Nov 2025 12:46:00 -0500 Subject: [PATCH 4/6] [DOC] Mention on top of `vm_*.c` files the VM translation unit they're in (#15048) vm_method.c already mentions it. --- vm_args.c | 2 +- vm_eval.c | 2 +- vm_insnhelper.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/vm_args.c b/vm_args.c index 777bcd21b33edc..5952b32f1fdb36 100644 --- a/vm_args.c +++ b/vm_args.c @@ -1,6 +1,6 @@ /********************************************************************** - vm_args.c - process method call arguments. + vm_args.c - process method call arguments. Included into vm.c. $Author$ diff --git a/vm_eval.c b/vm_eval.c index b791cd4990b00f..cd3f1bbafa4c57 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -1,6 +1,6 @@ /********************************************************************** - vm_eval.c - + vm_eval.c - Included into vm.c. $Author$ created at: Sat May 24 16:02:32 JST 2008 diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 27177d9b13ef75..e3ae25b176c749 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1,6 +1,6 @@ /********************************************************************** - vm_insnhelper.c - instruction helper functions. + vm_insnhelper.c - instruction helper functions. Included into vm.c. $Author$ From 36cd985db4609b87575b08b9bff17504266de28b Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 5 Nov 2025 02:24:32 +0900 Subject: [PATCH 5/6] [ruby/strscan] Remove no longer used variable Since https://github.com/ruby/strscan/commit/92961cde2b42. https://github.com/ruby/strscan/commit/911f9c682a --- ext/strscan/strscan.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index bc543f62b1aa1e..d1b5c5e1d3a812 100644 --- a/ext/strscan/strscan.c +++ b/ext/strscan/strscan.c @@ -30,7 +30,6 @@ extern size_t onig_region_memsize(const struct re_registers *regs); static VALUE StringScanner; static VALUE ScanError; -static ID id_byteslice; static int usascii_encindex, utf8_encindex, binary_encindex; @@ -2287,8 +2286,6 @@ Init_strscan(void) ID id_scanerr = rb_intern("ScanError"); VALUE tmp; - id_byteslice = rb_intern("byteslice"); - usascii_encindex = rb_usascii_encindex(); utf8_encindex = rb_utf8_encindex(); binary_encindex = rb_ascii8bit_encindex(); From 480080b5bf8a8c262b65469348836555955a5852 Mon Sep 17 00:00:00 2001 From: kares Date: Mon, 27 Oct 2025 11:59:39 +0100 Subject: [PATCH 6/6] [ruby/stringio] fix: (jruby) failing to clean buffer's code-range same bug as: https://github.com/jruby/jruby/issues/9035 https://github.com/ruby/stringio/commit/65b144b175 --- test/stringio/test_stringio.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/stringio/test_stringio.rb b/test/stringio/test_stringio.rb index 70bab8afe2a0a2..fe890406074654 100644 --- a/test/stringio/test_stringio.rb +++ b/test/stringio/test_stringio.rb @@ -1064,6 +1064,20 @@ def test_coderange_after_overwrite assert_predicate(s.string, :ascii_only?) end + def test_coderange_after_read_into_buffer + s = StringIO.new("01234567890".b) + + buf = "¿Cómo estás? Ça va bien?" + assert_not_predicate(buf, :ascii_only?) + + assert_predicate(s.string, :ascii_only?) + + s.read(10, buf) + + assert_predicate(buf, :ascii_only?) + assert_equal '0123456789', buf + end + require "objspace" if ObjectSpace.respond_to?(:dump) && ObjectSpace.dump(eval(%{"test"})).include?('"chilled":true') # Ruby 3.4+ chilled strings def test_chilled_string