Skip to content

Commit ee8a05d

Browse files
committed
Merge remote-tracking branch 'upstream/master' into Ractor-Local-GC-version-3
2 parents 45dcf49 + 5898abd commit ee8a05d

File tree

120 files changed

+1946
-733
lines changed

Some content is hidden

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

120 files changed

+1946
-733
lines changed

.github/actions/compilers/action.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ runs:
7777
- shell: bash
7878
run: docker pull --quiet 'ghcr.io/ruby/ruby-ci-image:${{ inputs.tag }}'
7979

80+
- name: Enable Launchable conditionally
81+
id: enable-launchable
82+
run: echo "enable-launchable=true" >> $GITHUB_OUTPUT
83+
shell: bash
84+
if: >-
85+
${{
86+
github.repository == 'ruby/ruby' ||
87+
(github.repository != 'ruby/ruby' && env.LAUNCHABLE_TOKEN)
88+
}}
89+
8090
- name: compile
8191
shell: bash
8292
run: >-
@@ -98,4 +108,18 @@ runs:
98108
--env INPUT_MSPECOPT='${{ inputs.mspecopt }}'
99109
--env INPUT_ENABLE_SHARED='${{ inputs.enable_shared }}'
100110
--env INPUT_STATIC_EXTS='${{ inputs.static_exts }}'
111+
--env LAUNCHABLE_ORGANIZATION='${{ github.repository_owner }}'
112+
--env LAUNCHABLE_WORKSPACE='${{ github.event.repository.name }}'
113+
--env LAUNCHABLE_ENABLED='${{ steps.enable-launchable.outputs.enable-launchable || false }}'
114+
--env GITHUB_PR_HEAD_SHA='${{ github.event.pull_request.head.sha || github.sha }}'
115+
--env GITHUB_PULL_REQUEST_URL='${{ github.event.pull_request.html_url }}'
116+
--env GITHUB_REF='${{ github.ref }}'
117+
--env GITHUB_ACTIONS
118+
--env GITHUB_RUN_ID
119+
--env GITHUB_REPOSITORY
120+
--env GITHUB_WORKFLOW
121+
--env GITHUB_RUN_NUMBER
122+
--env GITHUB_EVENT_NAME
123+
--env GITHUB_SHA
124+
--env GITHUB_HEAD_REF
101125
'ghcr.io/ruby/ruby-ci-image:${{ inputs.tag }}'

.github/actions/compilers/entrypoint.sh

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,21 +70,49 @@ if [[ -n "${INPUT_STATIC_EXTS}" ]]; then
7070
echo "::endgroup::"
7171
fi
7272

73+
ruby_test_opts=''
74+
tests=''
75+
76+
# Launchable
77+
setup_launchable() {
78+
pushd ${srcdir}
79+
# Launchable creates .launchable file in the current directory, but cannot a file to ${srcdir} directory.
80+
# As a workaround, we set LAUNCHABLE_SESSION_DIR to ${builddir}.
81+
export LAUNCHABLE_SESSION_DIR=${builddir}
82+
local github_ref="${GITHUB_REF//\//_}"
83+
boot_report_path='launchable_bootstraptest.json'
84+
test_report_path='launchable_test_all.json'
85+
ruby_test_opts+=--launchable-test-reports="${boot_report_path}"
86+
tests+=--launchable-test-reports="${test_report_path}"
87+
grouped launchable record build --name "${github_ref}"_"${GITHUB_PR_HEAD_SHA}" || true
88+
trap launchable_record_test EXIT
89+
}
90+
launchable_record_test() {
91+
pushd "${builddir}"
92+
grouped launchable record tests --flavor test_task=test --test-suite bootstraptest raw "${boot_report_path}" || true
93+
if [ "$INPUT_CHECK" = "true" ]; then
94+
grouped launchable record tests --flavor test_task=test-all --test-suite test-all raw "${test_report_path}" || true
95+
fi
96+
}
97+
if [ "$LAUNCHABLE_ENABLED" = "true" ]; then
98+
setup_launchable
99+
fi
100+
73101
pushd ${builddir}
74102

75103
grouped make showflags
76104
grouped make all
77-
grouped make test
105+
grouped make test RUBY_TESTOPTS="${ruby_test_opts}"
78106

79107
[[ -z "${INPUT_CHECK}" ]] && exit 0
80108

81109
if [ "$INPUT_CHECK" = "true" ]; then
82-
tests="ruby -ext-"
110+
tests+=" -- ruby -ext-"
83111
else
84-
tests="$INPUT_CHECK"
112+
tests+=" -- $INPUT_CHECK"
85113
fi
86114

87115
# grouped make install
88116
grouped make test-tool
89-
grouped make test-all TESTS="-- $tests"
117+
grouped make test-all TESTS="$tests"
90118
grouped env CHECK_LEAKS=true make test-spec MSPECOPT="$INPUT_MSPECOPT"

.github/workflows/codeql-analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,15 @@ jobs:
7777
run: sudo rm /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
7878

7979
- name: Initialize CodeQL
80-
uses: github/codeql-action/init@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
80+
uses: github/codeql-action/init@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6
8181
with:
8282
languages: ${{ matrix.language }}
8383

8484
- name: Autobuild
85-
uses: github/codeql-action/autobuild@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
85+
uses: github/codeql-action/autobuild@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6
8686

8787
- name: Perform CodeQL Analysis
88-
uses: github/codeql-action/analyze@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
88+
uses: github/codeql-action/analyze@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6
8989
with:
9090
category: '/language:${{ matrix.language }}'
9191
upload: False
@@ -115,7 +115,7 @@ jobs:
115115
continue-on-error: true
116116

117117
- name: Upload SARIF
118-
uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
118+
uses: github/codeql-action/upload-sarif@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6
119119
with:
120120
sarif_file: sarif-results/${{ matrix.language }}.sarif
121121
continue-on-error: true

.github/workflows/compilers.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ jobs:
5454
steps:
5555
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
5656
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
57-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
57+
# Set fetch-depth: 10 so that Launchable can receive commits information.
58+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
5859
- name: 'clang 18 LTO'
5960
uses: './.github/actions/compilers'
6061
with:
@@ -74,7 +75,7 @@ jobs:
7475
steps:
7576
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
7677
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
77-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
78+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
7879
- name: 'GCC 13 LTO'
7980
uses: './.github/actions/compilers'
8081
with:
@@ -101,7 +102,7 @@ jobs:
101102
steps:
102103
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
103104
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
104-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
105+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
105106
- { uses: './.github/actions/compilers', name: 'clang 20', with: { tag: 'clang-20' } }
106107
- { uses: './.github/actions/compilers', name: 'clang 19', with: { tag: 'clang-19' } }
107108
- { uses: './.github/actions/compilers', name: 'clang 18', with: { tag: 'clang-18' } }
@@ -119,7 +120,7 @@ jobs:
119120
steps:
120121
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
121122
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
122-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
123+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
123124
- { uses: './.github/actions/compilers', name: 'clang 13', with: { tag: 'clang-13' } }
124125
- { uses: './.github/actions/compilers', name: 'clang 12', with: { tag: 'clang-12' } }
125126
- { uses: './.github/actions/compilers', name: 'clang 11', with: { tag: 'clang-11' } }
@@ -139,7 +140,7 @@ jobs:
139140
steps:
140141
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
141142
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
142-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
143+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
143144
# -Wno-strict-prototypes is necessary with current clang-15 since
144145
# older autoconf generate functions without prototype and -pedantic
145146
# now implies strict-prototypes. Disabling the error but leaving the
@@ -164,7 +165,7 @@ jobs:
164165
steps:
165166
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
166167
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
167-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
168+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
168169
- { uses: './.github/actions/compilers', name: 'C++20', with: { CXXFLAGS: '-std=c++20 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
169170
- { uses: './.github/actions/compilers', name: 'C++23', with: { CXXFLAGS: '-std=c++23 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
170171
- { uses: './.github/actions/compilers', name: 'C++26', with: { CXXFLAGS: '-std=c++26 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
@@ -183,7 +184,7 @@ jobs:
183184
steps:
184185
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
185186
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
186-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
187+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
187188
- { uses: './.github/actions/compilers', name: 'disable-jit', with: { append_configure: '--disable-yjit --disable-rjit' } }
188189
- { uses: './.github/actions/compilers', name: 'disable-dln', with: { append_configure: '--disable-dln' } }
189190
- { uses: './.github/actions/compilers', name: 'enable-mkmf-verbose', with: { append_configure: '--enable-mkmf-verbose' } }
@@ -202,7 +203,7 @@ jobs:
202203
steps:
203204
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
204205
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
205-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
206+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
206207
- { uses: './.github/actions/compilers', name: 'NDEBUG', with: { cppflags: '-DNDEBUG' } }
207208
- { uses: './.github/actions/compilers', name: 'RUBY_DEBUG', with: { cppflags: '-DRUBY_DEBUG' } }
208209
- { uses: './.github/actions/compilers', name: 'ARRAY_DEBUG', with: { cppflags: '-DARRAY_DEBUG' } }
@@ -221,7 +222,7 @@ jobs:
221222
steps:
222223
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
223224
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
224-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
225+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
225226
- { uses: './.github/actions/compilers', name: 'HASH_DEBUG', with: { cppflags: '-DHASH_DEBUG' } }
226227
- { uses: './.github/actions/compilers', name: 'ID_TABLE_DEBUG', with: { cppflags: '-DID_TABLE_DEBUG' } }
227228
- { uses: './.github/actions/compilers', name: 'RGENGC_DEBUG=-1', with: { cppflags: '-DRGENGC_DEBUG=-1' } }
@@ -240,7 +241,7 @@ jobs:
240241
steps:
241242
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
242243
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
243-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
244+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
244245
- { uses: './.github/actions/compilers', name: 'USE_LAZY_LOAD', with: { cppflags: '-DUSE_LAZY_LOAD' } }
245246
- { uses: './.github/actions/compilers', name: 'USE_SYMBOL_GC=0', with: { cppflags: '-DUSE_SYMBOL_GC=0' } }
246247
- { uses: './.github/actions/compilers', name: 'USE_THREAD_CACHE=0', with: { cppflags: '-DUSE_THREAD_CACHE=0' } }
@@ -259,7 +260,7 @@ jobs:
259260
steps:
260261
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
261262
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
262-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
263+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
263264
- { uses: './.github/actions/compilers', name: 'GC_DEBUG_STRESS_TO_CLASS', with: { cppflags: '-DGC_DEBUG_STRESS_TO_CLASS' } }
264265
- { uses: './.github/actions/compilers', name: 'GC_ENABLE_LAZY_SWEEP=0', with: { cppflags: '-DGC_ENABLE_LAZY_SWEEP=0' } }
265266
- { uses: './.github/actions/compilers', name: 'GC_PROFILE_DETAIL_MEMORY', with: { cppflags: '-DGC_PROFILE_DETAIL_MEMORY' } }
@@ -278,7 +279,7 @@ jobs:
278279
steps:
279280
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
280281
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
281-
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
282+
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true, fetch-depth: 10 } }
282283
- { uses: './.github/actions/compilers', name: 'VM_DEBUG_BP_CHECK', with: { cppflags: '-DVM_DEBUG_BP_CHECK' } }
283284
- { uses: './.github/actions/compilers', name: 'VM_DEBUG_VERIFY_METHOD_CACHE', with: { cppflags: '-DVM_DEBUG_VERIFY_METHOD_CACHE' } }
284285
- { uses: './.github/actions/compilers', name: 'enable-yjit', with: { append_configure: '--enable-yjit --disable-rjit' } }

.github/workflows/scorecards.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,6 @@ jobs:
6767

6868
# Upload the results to GitHub's code scanning dashboard.
6969
- name: 'Upload to code-scanning'
70-
uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
70+
uses: github/codeql-action/upload-sarif@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6
7171
with:
7272
sarif_file: results.sarif

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,6 @@ lcov*.info
144144
/verconf.h
145145
/verconf.mk
146146
/web
147-
/yasmdata.rb
148147

149148
# /bin/
150149

NEWS.md

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,39 @@ Note: We're only listing outstanding class updates.
112112

113113
## Stdlib updates
114114

115+
* Net::HTTP
116+
117+
* Removed the following deprecated constans:
118+
Net::HTTP::ProxyMod
119+
Net::NetPrivate::HTTPRequest
120+
Net::HTTPInformationCode
121+
Net::HTTPSuccessCode
122+
Net::HTTPRedirectionCode
123+
Net::HTTPRetriableCode
124+
Net::HTTPClientErrorCode
125+
Net::HTTPFatalErrorCode
126+
Net::HTTPServerErrorCode
127+
Net::HTTPResponseReceiver
128+
Net::HTTPResponceReceiver
129+
130+
These constants were deprecated from 2012.
131+
115132
* Tempfile
116133

117134
* The keyword argument `anonymous: true` is implemented for Tempfile.create.
118135
`Tempfile.create(anonymous: true)` removes the created temporary file immediately.
119136
So applications don't need to remove the file.
120137
[[Feature #20497]]
121138
139+
* Timeout
140+
141+
* Reject negative values for Timeout.timeout. [[Bug #20795]]
142+
143+
* URI
144+
145+
* Switched default parser to RFC 3986 compliant from RFC 2396 compliant.
146+
[[Bug #19266]]
147+
122148
* win32/sspi.rb
123149
124150
* This library is now extracted from the Ruby repository to [ruby/net-http-sspi].
@@ -133,31 +159,34 @@ The following default gems are updated.
133159
* RubyGems 3.6.0.dev
134160
* benchmark 0.4.0
135161
* bundler 2.6.0.dev
136-
* date 3.4.0
162+
* date 3.4.1
137163
* delegate 0.4.0
164+
* did_you_mean 2.0.0
138165
* erb 4.0.4
166+
* error_highlight 0.7.0
139167
* etc 1.4.4
140168
* fcntl 1.2.0
141169
* fiddle 1.1.6.dev
142170
* fileutils 1.7.3
143-
* io-console 0.8.0.beta1
171+
* io-console 0.8.0
172+
* io-nonblock 0.3.1
144173
* ipaddr 1.2.7
145174
* irb 1.14.1
146175
* json 2.8.2
147-
* logger 1.6.1
148-
* net-http 0.5.0
176+
* logger 1.6.2
177+
* net-http 0.6.0
149178
* open-uri 0.5.0
150179
* optparse 0.6.0
151180
* ostruct 0.6.1
152181
* pathname 0.4.0
153-
* pp 0.6.1
182+
* pp 0.6.2
154183
* prism 1.0.0
155184
* pstore 0.1.4
156185
* psych 5.2.0
157186
* rdoc 6.8.1
158187
* reline 0.5.12
159188
* resolv 0.5.0
160-
* securerandom 0.3.2
189+
* securerandom 0.4.0
161190
* set 1.1.1
162191
* shellwords 0.2.1
163192
* singleton 0.3.0
@@ -179,7 +208,7 @@ The following bundled gem is added.
179208
180209
The following bundled gems are updated.
181210
182-
* minitest 5.25.2
211+
* minitest 5.25.4
183212
* power_assert 2.0.4
184213
* rake 13.2.1
185214
* test-unit 3.6.4
@@ -286,13 +315,13 @@ details of the default gems or bundled gems.
286315
* Array#each is rewritten in Ruby for better performance [[Feature #20182]].
287316
288317
* Alternative GC implementations can be loaded dynamically. Configure Ruby
289-
`--with-shared-gc` to enable. Alternative GC modules can be loaded at runtime
318+
`--with-shared-gc` to enable. Alternative GC libraries can be loaded at runtime
290319
using the environment variable `RUBY_GC_LIBRARY`. [[Feature #20351]],
291320
[[Feature #20470]]
292321
293-
* An experimental GC module is provided based on MMTk. Configure Ruby
322+
* An experimental GC library is provided based on MMTk. Configure Ruby
294323
`--with-shared-gc`, build as normal, then build the GC library: `make
295-
shared-gc SHARED_GC=mmtk`. enable with `RUBY_GC_LIBRARY=mmtk`. This
324+
shared-gc SHARED_GC=mmtk`. Enable with `RUBY_GC_LIBRARY=mmtk`. This
296325
requires a working Rust compiler, and Cargo on the build machine.
297326
[[Feature #20860]]
298327
@@ -317,6 +346,7 @@ details of the default gems or bundled gems.
317346
[Feature #18980]: https://bugs.ruby-lang.org/issues/18980
318347
[Misc #18984]: https://bugs.ruby-lang.org/issues/18984
319348
[Feature #19117]: https://bugs.ruby-lang.org/issues/19117
349+
[Bug #19266]: https://bugs.ruby-lang.org/issues/19266
320350
[Feature #19236]: https://bugs.ruby-lang.org/issues/19236
321351
[Feature #19714]: https://bugs.ruby-lang.org/issues/19714
322352
[Bug #19918]: https://bugs.ruby-lang.org/issues/19918
@@ -343,6 +373,7 @@ details of the default gems or bundled gems.
343373
[Feature #20715]: https://bugs.ruby-lang.org/issues/20715
344374
[Feature #20775]: https://bugs.ruby-lang.org/issues/20775
345375
[Feature #20782]: https://bugs.ruby-lang.org/issues/20782
376+
[Bug #20795]: https://bugs.ruby-lang.org/issues/20795
346377
[Feature #20811]: https://bugs.ruby-lang.org/issues/20811
347378
[Feature #20860]: https://bugs.ruby-lang.org/issues/20860
348379
[Feature #20876]: https://bugs.ruby-lang.org/issues/20876

array.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8691,12 +8691,12 @@ rb_ary_deconstruct(VALUE ary)
86918691
* - #&: Returns an array containing elements found both in +self+ and a given array.
86928692
* - #+: Returns an array containing all elements of +self+ followed by all elements of a given array.
86938693
* - #-: Returns an array containing all elements of +self+ that are not found in a given array.
8694+
* - #|: Returns an array containing all element of +self+ and all elements of a given array, duplicates removed.
86948695
* - #difference: Returns an array containing all elements of +self+ that are not found in any of the given arrays..
86958696
* - #intersection: Returns an array containing elements found both in +self+ and in each given array.
86968697
* - #product: Returns or yields all combinations of elements from +self+ and given arrays.
86978698
* - #reverse: Returns an array containing all elements of +self+ in reverse order.
86988699
* - #union: Returns an array containing all elements of +self+ and all elements of given arrays, duplicates removed.
8699-
* - #|: Returns an array containing all elements of +self+ and all elements of a given array, duplicates removed.
87008700
*
87018701
* === Methods for Iterating
87028702
*

0 commit comments

Comments
 (0)