Skip to content

Commit b669f3e

Browse files
committed
Merge branch 'master' into dev/mmtk-overrides-default
2 parents d51f268 + 57f2ac7 commit b669f3e

245 files changed

Lines changed: 4955 additions & 3734 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.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Auto Review PR
2+
on:
3+
pull_request_target:
4+
types: [opened, ready_for_review, reopened]
5+
branches: [master]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
auto-review-pr:
12+
name: Auto Review PR
13+
runs-on: ubuntu-latest
14+
if: ${{ github.repository == 'ruby/ruby' && github.base_ref == 'master' }}
15+
16+
permissions:
17+
pull-requests: write
18+
contents: read
19+
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v5
23+
24+
- uses: ruby/setup-ruby@ab177d40ee5483edb974554986f56b33477e21d0 # v1.265.0
25+
with:
26+
ruby-version: '3.4'
27+
bundler: none
28+
29+
- name: Auto Review PR
30+
run: ruby tool/auto_review_pr.rb "$GITHUB_PR_NUMBER"
31+
env:
32+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33+
GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}

.github/workflows/cygwin.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,20 @@ jobs:
5353
./configure --disable-install-doc
5454
shell: C:\cygwin\bin\bash.EXE --noprofile --norc -e -o igncr -o pipefail {0}
5555

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}
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}
6162

6263
- name: make all
6364
timeout-minutes: 30
6465
run: make -j4 V=1
6566
shell: C:\cygwin\bin\bash.EXE --noprofile --norc -e -o igncr -o pipefail {0}
67+
68+
- uses: ./.github/actions/slack
69+
with:
70+
label: Cygwin
71+
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
72+
if: ${{ failure() }}

.github/workflows/sync_default_gems.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ jobs:
3232
with:
3333
token: ${{ github.repository == 'ruby/ruby' && secrets.MATZBOT_AUTO_UPDATE_TOKEN || secrets.GITHUB_TOKEN }}
3434

35+
- uses: ruby/setup-ruby@ab177d40ee5483edb974554986f56b33477e21d0 # v1.265.0
36+
with:
37+
ruby-version: '3.4'
38+
bundler: none
39+
3540
- name: Run tool/sync_default_gems.rb
3641
id: sync
3742
run: |
@@ -51,7 +56,7 @@ jobs:
5156

5257
- name: Push
5358
run: |
54-
git pull --ff-only origin ${GITHUB_REF#refs/heads/}
59+
git pull --rebase origin ${GITHUB_REF#refs/heads/}
5560
git push origin ${GITHUB_REF#refs/heads/}
5661
if: ${{ steps.sync.outputs.update }}
5762

.github/workflows/zjit-macos.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,62 @@ jobs:
150150
working-directory:
151151
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
152152

153+
# Separated from `make` job to avoid making it a required status check for now
154+
ruby-bench:
155+
strategy:
156+
matrix:
157+
include:
158+
# Test --call-threshold=2 with 2 iterations in total
159+
- ruby_opts: '--zjit-call-threshold=2'
160+
bench_opts: '--warmup=1 --bench=1'
161+
configure: '--enable-zjit=dev_nodebug' # --enable-zjit=dev is too slow
162+
163+
runs-on: macos-14
164+
165+
if: >-
166+
${{!(false
167+
|| contains(github.event.head_commit.message, '[DOC]')
168+
|| contains(github.event.pull_request.title, '[DOC]')
169+
|| contains(github.event.pull_request.labels.*.name, 'Documentation')
170+
|| (github.event_name == 'push' && github.event.pull_request.user.login == 'dependabot[bot]')
171+
)}}
172+
173+
steps:
174+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
175+
176+
- uses: ./.github/actions/setup/macos
177+
178+
- uses: ./.github/actions/setup/directories
179+
with:
180+
srcdir: src
181+
builddir: build
182+
makeup: true
183+
184+
- name: Run configure
185+
run: ../src/configure -C --disable-install-doc --prefix="$(pwd)/install" ${{ matrix.configure }}
186+
187+
- run: make install
188+
189+
# setup/directories set MAKEFLAGS=-j4 for macOS, which randomly fails sqlite3.gem builds
190+
- name: Unset MAKEFLAGS
191+
run: echo "MAKEFLAGS=" >> "$GITHUB_ENV"
192+
193+
- name: Checkout ruby-bench
194+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
195+
with:
196+
repository: ruby/ruby-bench
197+
path: ruby-bench
198+
199+
- name: Run ruby-bench
200+
run: ruby run_benchmarks.rb -e "zjit::../build/install/bin/ruby ${{ matrix.ruby_opts }}" ${{ matrix.bench_opts }}
201+
working-directory: ruby-bench
202+
203+
- uses: ./.github/actions/slack
204+
with:
205+
label: ruby-bench ${{ matrix.bench_opts }} ${{ matrix.ruby_opts }}
206+
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
207+
if: ${{ failure() }}
208+
153209
defaults:
154210
run:
155211
working-directory: build

NEWS.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# NEWS for Ruby 3.5.0
1+
# NEWS for Ruby 4.0.0
22

33
This document is a list of user-visible feature changes
44
since the **3.4.0** release, except for bug fixes.
@@ -55,6 +55,9 @@ Note: We're only listing outstanding class updates.
5555
5656
[[Feature #21219]]
5757
58+
* A deprecated behavior, process creation by `Kernel#open` with a
59+
leading `|`, was removed. [[Feature #19630]]
60+
5861
* Binding
5962
6063
* `Binding#local_variables` does no longer include numbered parameters.
@@ -66,6 +69,9 @@ Note: We're only listing outstanding class updates.
6669
* `IO.select` accepts `Float::INFINITY` as a timeout argument.
6770
[[Feature #20610]]
6871
72+
* A deprecated behavior, process creation by `IO` class methods
73+
with a leading `|`, was removed. [[Feature #19630]]
74+
6975
* Math
7076
7177
* `Math.log1p` and `Math.expm1` are added. [[Feature #21527]]
@@ -192,7 +198,7 @@ The following default gems are updated.
192198
* io-console 0.8.1
193199
* io-nonblock 0.3.2
194200
* io-wait 0.3.3
195-
* json 2.15.2
201+
* json 2.16.0
196202
* net-http 0.7.0
197203
* openssl 4.0.0.pre
198204
* optparse 0.8.0
@@ -212,17 +218,18 @@ The following bundled gems are added.
212218
213219
The following bundled gems are updated.
214220
215-
* minitest 5.26.0
216-
* power_assert 3.0.0
221+
* minitest 5.26.1
222+
* power_assert 3.0.1
217223
* rake 13.3.1
218-
* test-unit 3.7.0
224+
* test-unit 3.7.1
219225
* rexml 3.4.4
220226
* net-ftp 0.3.9
221227
* net-imap 0.5.12
222228
* net-smtp 0.5.1
223229
* matrix 0.4.3
224230
* prime 0.1.4
225231
* rbs 3.9.5
232+
* typeprof 0.31.0
226233
* debug 1.11.0
227234
* base64 0.3.0
228235
* bigdecimal 3.3.1
@@ -307,15 +314,16 @@ A lot of work has gone into making Ractors more stable, performant, and usable.
307314
* ZJIT
308315
* Add an experimental method-based JIT compiler.
309316
Use `--enable-zjit` on `configure` to enable the `--zjit` support.
310-
* As of Ruby 3.5.0-preview2, ZJIT is not yet ready for speeding up most benchmarks.
311-
Please refrain from evaluating ZJIT just yet. Stay tuned for the Ruby 3.5 release.
317+
* As of Ruby 4.0.0-preview1, ZJIT is not yet ready for speeding up most benchmarks.
318+
Please refrain from evaluating ZJIT just yet. Stay tuned for the Ruby 4.0 release.
312319
* RJIT
313320
* `--rjit` is removed. We will move the implementation of the third-party JIT API
314321
to the [ruby/rjit](https://github.com/ruby/rjit) repository.
315322
316323
[Feature #15408]: https://bugs.ruby-lang.org/issues/15408
317324
[Feature #17473]: https://bugs.ruby-lang.org/issues/17473
318325
[Feature #18455]: https://bugs.ruby-lang.org/issues/18455
326+
[Feature #19630]: https://bugs.ruby-lang.org/issues/19630
319327
[Feature #19908]: https://bugs.ruby-lang.org/issues/19908
320328
[Feature #20610]: https://bugs.ruby-lang.org/issues/20610
321329
[Feature #20724]: https://bugs.ruby-lang.org/issues/20724

bootstraptest/test_io.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
ARGF.set_encoding "foo"
8686
}
8787

88-
/freebsd/ =~ RUBY_PLATFORM or
88+
/(freebsd|mswin)/ =~ RUBY_PLATFORM or
8989
10.times do
9090
assert_normal_exit %q{
9191
at_exit { p :foo }

bootstraptest/test_ractor.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1971,6 +1971,19 @@ def ==(o)
19711971
roundtripped_obj.instance_variable_get(:@array1) == [1] ? :ok : roundtripped_obj
19721972
}
19731973

1974+
# move object with generic ivars and existing id2ref table
1975+
# [Bug #21664]
1976+
assert_equal 'ok', %q{
1977+
obj = [1]
1978+
obj.instance_variable_set("@field", :ok)
1979+
ObjectSpace._id2ref(obj.object_id) # build id2ref table
1980+
1981+
ractor = Ractor.new { Ractor.receive }
1982+
ractor.send(obj, move: true)
1983+
obj = ractor.value
1984+
obj.instance_variable_get("@field")
1985+
}
1986+
19741987
# copy object with complex generic ivars
19751988
assert_equal 'ok', %q{
19761989
# Make Array too_complex

0 commit comments

Comments
 (0)