Skip to content

Commit 665bb83

Browse files
committed
Merge branch 'master' into dev/mmtk-overrides-default
2 parents febd60f + 8d01058 commit 665bb83

229 files changed

Lines changed: 12883 additions & 11861 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/cygwin.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,19 @@ jobs:
4545
- name: Setup Cygwin
4646
uses: cygwin/cygwin-install-action@master
4747
with:
48-
packages: ruby gcc-core make autoconf libtool libssl-devel libyaml-devel libffi-devel zlib-devel
48+
packages: ruby gcc-core make autoconf libtool libssl-devel libyaml-devel libffi-devel zlib-devel rubygems
4949

5050
- name: configure
5151
run: |
5252
./autogen.sh
5353
./configure --disable-install-doc
5454
shell: C:\cygwin\bin\bash.EXE --noprofile --norc -e -o igncr -o pipefail {0}
5555

56-
# This fails with: tool/outdate-bundled-gems.rb:3:in 'Kernel#require': cannot load such file -- rubygems (LoadError)
57-
#- name: Extract bundled gems
58-
# run: |
59-
# make ruby -j5
60-
# make extract-gems
61-
# shell: C:\cygwin\bin\bash.EXE --noprofile --norc -e -o igncr -o pipefail {0}
56+
- name: Extract bundled gems
57+
run: |
58+
make ruby -j5
59+
make extract-gems
60+
shell: C:\cygwin\bin\bash.EXE --noprofile --norc -e -o igncr -o pipefail {0}
6261

6362
- name: make all
6463
timeout-minutes: 30

.github/workflows/spec_guards.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
- ruby-3.2
4343
- ruby-3.3
4444
- ruby-3.4
45+
fail-fast: false
4546

4647
steps:
4748
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

.github/workflows/sync_default_gems.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ jobs:
5959
git pull --rebase origin ${GITHUB_REF#refs/heads/}
6060
git push origin ${GITHUB_REF#refs/heads/}
6161
if: ${{ steps.sync.outputs.update }}
62+
env:
63+
EMAIL: svn-admin@ruby-lang.org
64+
GIT_AUTHOR_NAME: git
65+
GIT_COMMITTER_NAME: git
6266

6367
- uses: ./.github/actions/slack
6468
with:

.github/workflows/zjit-macos.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ jobs:
122122
timeout-minutes: 60
123123
env:
124124
RUBY_TESTOPTS: '-q --tty=no'
125+
EXCLUDES: '../src/test/.excludes-zjit'
125126
TEST_BUNDLED_GEMS_ALLOW_FAILURES: ''
126127
SYNTAX_SUGGEST_TIMEOUT: '5'
127128
PRECHECK_BUNDLED_GEMS: 'no'

.github/workflows/zjit-ubuntu.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ jobs:
169169
timeout-minutes: 90
170170
env:
171171
RUBY_TESTOPTS: '-q --tty=no'
172+
EXCLUDES: '../src/test/.excludes-zjit'
172173
TEST_BUNDLED_GEMS_ALLOW_FAILURES: ''
173174
PRECHECK_BUNDLED_GEMS: 'no'
174175
SYNTAX_SUGGEST_TIMEOUT: '5'

NEWS.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ Note: We're only listing outstanding class updates.
134134
135135
* String
136136
137-
* Update Unicode to Version 16.0.0 and Emoji Version 16.0.
138-
[[Feature #19908]][[Feature #20724]] (also applies to Regexp)
137+
* Update Unicode to Version 17.0.0 and Emoji Version 17.0.
138+
[[Feature #19908]][[Feature #20724]][[Feature #21275]] (also applies to Regexp)
139139
140140
* Thread
141141
@@ -170,7 +170,7 @@ The following bundled gems are promoted from default gems.
170170
* rdoc 6.15.1
171171
* win32ole 1.9.2
172172
* irb 1.15.3
173-
* reline 0.6.2
173+
* reline 0.6.3
174174
* readline 0.0.4
175175
* fiddle 1.1.8
176176
@@ -191,22 +191,22 @@ The following default gems are updated.
191191
* date 3.5.0
192192
* digest 3.2.1
193193
* english 0.8.1
194-
* erb 5.1.3
194+
* erb 6.0.0
195195
* etc 1.4.6
196196
* fcntl 1.3.0
197197
* fileutils 1.8.0
198198
* io-console 0.8.1
199199
* io-nonblock 0.3.2
200-
* io-wait 0.3.3
200+
* io-wait 0.4.0.dev
201201
* json 2.16.0
202-
* net-http 0.7.0
202+
* net-http 0.8.0
203203
* openssl 4.0.0.pre
204204
* optparse 0.8.0
205205
* pp 0.6.3
206206
* prism 1.6.0
207207
* psych 5.2.6
208208
* resolv 0.6.3
209-
* stringio 3.1.8.dev
209+
* stringio 3.1.9.dev
210210
* strscan 3.1.6.dev
211211
* timeout 0.4.4
212212
* uri 1.1.1

benchmark/time_now.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
benchmark:
22
- 'Time.now'
33
- 'Time.now(in: "+09:00")'
4+
- 'Time.now.year'

bootstraptest/runner.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ def main
298298
if defined?(RUBY_DESCRIPTION)
299299
puts "Driver is #{RUBY_DESCRIPTION}"
300300
elsif defined?(RUBY_PATCHLEVEL)
301-
puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}#{RUBY_PLATFORM}) [#{RUBY_PLATFORM}]"
301+
puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}#{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]"
302302
else
303303
puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
304304
end

bootstraptest/test_yjit.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5371,3 +5371,14 @@ class << self
53715371
53725372
RESULT.any?
53735373
}
5374+
5375+
# throw and String#dup with GC stress
5376+
assert_equal 'foo', %{
5377+
GC.stress = true
5378+
5379+
def foo
5380+
1.times { return "foo".dup }
5381+
end
5382+
5383+
10.times.map { foo.dup }.last
5384+
}

class.c

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -590,13 +590,6 @@ rb_module_add_to_subclasses_list(VALUE module, VALUE iclass)
590590
}
591591
}
592592

593-
void
594-
rb_class_remove_subclass_head(VALUE klass)
595-
{
596-
rb_classext_t *ext = RCLASS_EXT_WRITABLE(klass);
597-
rb_class_classext_free_subclasses(ext, klass, false);
598-
}
599-
600593
static struct rb_subclass_entry *
601594
class_get_subclasses_for_ns(struct st_table *tbl, VALUE box_id)
602595
{
@@ -663,18 +656,6 @@ rb_class_remove_from_super_subclasses(VALUE klass)
663656
RCLASSEXT_BOX_SUPER_SUBCLASSES(ext) = 0;
664657
}
665658

666-
void
667-
rb_class_remove_from_module_subclasses(VALUE klass)
668-
{
669-
rb_classext_t *ext = RCLASS_EXT_WRITABLE(klass);
670-
rb_box_subclasses_t *box_subclasses = RCLASSEXT_BOX_MODULE_SUBCLASSES(ext);
671-
672-
if (!box_subclasses) return;
673-
remove_class_from_subclasses(box_subclasses->tbl, box_subclasses_tbl_key(RCLASSEXT_BOX(ext)), klass);
674-
rb_box_subclasses_ref_dec(box_subclasses);
675-
RCLASSEXT_BOX_MODULE_SUBCLASSES(ext) = 0;
676-
}
677-
678659
void
679660
rb_class_classext_free_subclasses(rb_classext_t *ext, VALUE klass, bool replacing)
680661
{
@@ -690,19 +671,19 @@ rb_class_classext_free_subclasses(rb_classext_t *ext, VALUE klass, bool replacin
690671
}
691672
VM_ASSERT(
692673
rb_box_subclasses_ref_count(anchor->box_subclasses) > 0,
693-
"box_subclasses refcount (%p) %d", anchor->box_subclasses, rb_box_subclasses_ref_count(anchor->box_subclasses));
674+
"box_subclasses refcount (%p) %ld", anchor->box_subclasses, rb_box_subclasses_ref_count(anchor->box_subclasses));
694675
st_delete(tbl, &box_id, NULL);
695676
rb_box_subclasses_ref_dec(anchor->box_subclasses);
696677
xfree(anchor);
697678

698-
if (!replacing && RCLASSEXT_BOX_SUPER_SUBCLASSES(ext)) {
679+
if (RCLASSEXT_BOX_SUPER_SUBCLASSES(ext)) {
699680
rb_box_subclasses_t *box_sub = RCLASSEXT_BOX_SUPER_SUBCLASSES(ext);
700-
remove_class_from_subclasses(box_sub->tbl, box_id, klass);
681+
if (!replacing) remove_class_from_subclasses(box_sub->tbl, box_id, klass);
701682
rb_box_subclasses_ref_dec(box_sub);
702683
}
703-
if (!replacing && RCLASSEXT_BOX_MODULE_SUBCLASSES(ext)) {
684+
if (RCLASSEXT_BOX_MODULE_SUBCLASSES(ext)) {
704685
rb_box_subclasses_t *box_sub = RCLASSEXT_BOX_MODULE_SUBCLASSES(ext);
705-
remove_class_from_subclasses(box_sub->tbl, box_id, klass);
686+
if (!replacing) remove_class_from_subclasses(box_sub->tbl, box_id, klass);
706687
rb_box_subclasses_ref_dec(box_sub);
707688
}
708689
}
@@ -730,24 +711,6 @@ class_detach_subclasses(VALUE klass, VALUE arg)
730711
rb_class_remove_from_super_subclasses(klass);
731712
}
732713

733-
void
734-
rb_class_detach_subclasses(VALUE klass)
735-
{
736-
rb_class_foreach_subclass(klass, class_detach_subclasses, Qnil);
737-
}
738-
739-
static void
740-
class_detach_module_subclasses(VALUE klass, VALUE arg)
741-
{
742-
rb_class_remove_from_module_subclasses(klass);
743-
}
744-
745-
void
746-
rb_class_detach_module_subclasses(VALUE klass)
747-
{
748-
rb_class_foreach_subclass(klass, class_detach_module_subclasses, Qnil);
749-
}
750-
751714
static void
752715
class_switch_superclass(VALUE super, VALUE klass)
753716
{

0 commit comments

Comments
 (0)