Skip to content

Commit 5992bc1

Browse files
authored
Merge branch 'master' into zjit-more-send
2 parents f8fa5c1 + 9fddb8d commit 5992bc1

306 files changed

Lines changed: 7136 additions & 5799 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/windows.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,8 @@ jobs:
9595
# https://github.com/actions/virtual-environments/issues/712#issuecomment-613004302
9696
run: |
9797
::- Set up VC ${{ matrix.vc }}
98-
set vswhere="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
99-
for /f "delims=;" %%I in ('%vswhere% -latest -property installationPath') do (
100-
set VCVARS="%%I\VC\Auxiliary\Build\vcvarsall.bat"
101-
)
102-
set VCVARS
10398
set | uutils sort > old.env
104-
call %VCVARS% ${{ matrix.target || 'amd64' }} ${{ matrix.vcvars || '' }}
99+
call ..\src\win32\vssetup.cmd -arch=${{ matrix.target || 'amd64' }} ${{ matrix.vcvars || '' }}
105100
nmake -f nul
106101
set TMP=%USERPROFILE%\AppData\Local\Temp
107102
set TEMP=%USERPROFILE%\AppData\Local\Temp

NEWS.md

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,48 @@ Note: We're only listing outstanding class updates.
2525
* `IO.select` accepts +Float::INFINITY+ as a timeout argument.
2626
[[Feature #20610]]
2727

28+
* Ractor
29+
30+
* `Ractor::Port` class was added for a new synchronization mechanism
31+
to communicate between Ractors. [[Feature #21262]]
32+
33+
```ruby
34+
port1 = Ractor::Port.new
35+
port2 = Ractor::Port.new
36+
Ractor.new port1, port2 do |port1, port2|
37+
port1 << 1
38+
port2 << 11
39+
port1 << 2
40+
port2 << 12
41+
end
42+
2.times{ p port1.receive } #=> 1, 2
43+
2.times{ p port2.receive } #=> 11, 12
44+
```
45+
46+
`Ractor::Port` provides the following methods:
47+
48+
* `Ractor::Port#receive`
49+
* `Ractor::Port#send` (or `Ractor::Port#<<`)
50+
* `Ractor::Port#close`
51+
* `Ractor::Port#closed?`
52+
53+
As result, `Ractor.yield` and `Ractor#take` were removed.
54+
55+
* `Ractor#join` and `Ractor#value` were added to wait for the
56+
termination of a Ractor. These are similar to `Thread#join`
57+
and `Thread#value`.
58+
59+
* `Ractor#monitor` and `Ractor#unmonitor` were added as low-level
60+
interfaces used internally to implement `Ractor#join`.
61+
62+
* `Ractor.select` now only accepts Ractors and Ports. If Ractors are given,
63+
it returns when a Ractor terminates.
64+
65+
* `Ractor#default_port` was added. Each `Ractor` has a default port,
66+
which is used by `Ractor.send`, `Ractor.receive`.
67+
68+
* `Ractor#close_incoming` and `Ractor#close_outgoing` were removed.
69+
2870
* Set
2971

3072
* Set is now a core class, instead of an autoloaded stdlib class.
@@ -48,7 +90,7 @@ The following bundled gems are promoted from default gems.
4890

4991
* ostruct 0.6.1
5092
* pstore 0.2.0
51-
* benchmark 0.4.0
93+
* benchmark 0.4.1
5294
* logger 1.7.0
5395
* rdoc 6.14.0
5496
* win32ole 1.9.2
@@ -86,21 +128,32 @@ The following bundled gems are added.
86128
The following bundled gems are updated.
87129

88130
* minitest 5.25.5
131+
* rake 13.3.0
89132
* test-unit 3.6.8
90133
* rexml 3.4.1
91134
* net-imap 0.5.8
92135
* net-smtp 0.5.1
93136
* rbs 3.9.4
94-
* bigdecimal 3.1.9
137+
* base64 0.3.0
138+
* bigdecimal 3.2.1
95139
* drb 2.2.3
96140
* syslog 0.3.0
97-
* csv 3.3.4
141+
* csv 3.3.5
98142
* repl_type_completor 0.1.11
99143

100144
## Supported platforms
101145

102146
## Compatibility issues
103147

148+
* The following methdos were removed from Ractor due because of `Ractor::Port`:
149+
150+
* `Ractor.yield`
151+
* `Ractor#take`
152+
* `Ractor#close_incoming`
153+
* `Ractor#close_outgoging`
154+
155+
[[Feature #21262]]
156+
104157
## Stdlib compatibility issues
105158

106159
* CGI library is removed from the default gems. Now we only provide `cgi/escape` for
@@ -144,4 +197,5 @@ The following bundled gems are updated.
144197
[Feature #21166]: https://bugs.ruby-lang.org/issues/21166
145198
[Feature #21216]: https://bugs.ruby-lang.org/issues/21216
146199
[Feature #21258]: https://bugs.ruby-lang.org/issues/21258
200+
[Feature #21262]: https://bugs.ruby-lang.org/issues/21262
147201
[Feature #21287]: https://bugs.ruby-lang.org/issues/21287

0 commit comments

Comments
 (0)