|
31 | 31 | </header>
|
32 | 32 | <p>This document describes the changes made to the ERTS application.</p>
|
33 | 33 |
|
| 34 | +<section><title>Erts 14.1</title> |
| 35 | + |
| 36 | + <section><title>Fixed Bugs and Malfunctions</title> |
| 37 | + <list> |
| 38 | + <item> |
| 39 | + <p> |
| 40 | + maps:put with existing key and identical value was not |
| 41 | + optimized as a no-op correctly if having the same 32-bit |
| 42 | + hash as another key in the map. In practice very rare and |
| 43 | + harmless.</p> |
| 44 | + <p> |
| 45 | + Own Id: OTP-18592</p> |
| 46 | + </item> |
| 47 | + <item> |
| 48 | + <p>Fixed an issue with truncated crash slogans on failed |
| 49 | + emulator start.</p> |
| 50 | + <p> |
| 51 | + Own Id: OTP-18623 Aux Id: GH-7344 </p> |
| 52 | + </item> |
| 53 | + <item> |
| 54 | + <p>Fixed a bug where the emulator was unable to determine |
| 55 | + the current <c>cgroup</c> CPU quota.</p> |
| 56 | + <p> |
| 57 | + Own Id: OTP-18645 Aux Id: GH-7401 </p> |
| 58 | + </item> |
| 59 | + <item> |
| 60 | + <p> |
| 61 | + A process optimized for parallel signal delivery could |
| 62 | + under some circumstances lose wakeup information. That |
| 63 | + is, the processes was not woken up to take care of the |
| 64 | + signal, so the signal would not be taken care of until |
| 65 | + the process was woken by another signal. Only processes |
| 66 | + configured with <seeerl |
| 67 | + marker="erlang#process_flag_message_queue_data"><c>message_queue_data</c></seeerl> |
| 68 | + set to <c>off_heap</c> utilize this optimization.</p> |
| 69 | + <p> |
| 70 | + Own Id: OTP-18647 Aux Id: PR-7595 </p> |
| 71 | + </item> |
| 72 | + <item> |
| 73 | + <p> |
| 74 | + Function socket:close/1 could cause a VM crash on |
| 75 | + Windows.</p> |
| 76 | + <p> |
| 77 | + Own Id: OTP-18669 Aux Id: OTP-18029 </p> |
| 78 | + </item> |
| 79 | + <item> |
| 80 | + <p>Fixed a bug in the ARM JIT where it could accidentally |
| 81 | + add garbage trailing bits when creating bitstrings whose |
| 82 | + size wasn't an even multiple of 8 bits.</p> |
| 83 | + <p> |
| 84 | + Own Id: OTP-18672 Aux Id: GH-7469 </p> |
| 85 | + </item> |
| 86 | + <item> |
| 87 | + <p> |
| 88 | + Fix <c>erlang:system_info/1</c> documentation to show |
| 89 | + correct types.</p> |
| 90 | + <p> |
| 91 | + Own Id: OTP-18674 Aux Id: PR-7472 </p> |
| 92 | + </item> |
| 93 | + <item> |
| 94 | + <p> |
| 95 | + Expanded the documentation about how to use the |
| 96 | + <c>standard_io</c>, <c>standard_error</c> and <c>user</c> |
| 97 | + I/O devices.</p> |
| 98 | + <p> |
| 99 | + Added the types <c>io:standard_io/0</c>, |
| 100 | + <c>io:standard:error/0</c> and <c>io:user/0</c>.</p> |
| 101 | + <p> |
| 102 | + Own Id: OTP-18676 Aux Id: PR-7473 GH-7459 </p> |
| 103 | + </item> |
| 104 | + <item> |
| 105 | + <p> |
| 106 | + Fix compilation with GNU termcap.</p> |
| 107 | + <p> |
| 108 | + Own Id: OTP-18702 Aux Id: GH-7381 </p> |
| 109 | + </item> |
| 110 | + <item> |
| 111 | + <p> |
| 112 | + Delivery time of message signals to a process not |
| 113 | + executing any <c>receive</c> expressions could become |
| 114 | + very long, potentially infinite. For example, a process |
| 115 | + checking for messages using <c>process_info(self(), |
| 116 | + message_queue_len)</c> or <c>process_info(self(), |
| 117 | + messages)</c> and avoiding to execute a <c>receive</c> |
| 118 | + expression matching on messages could be very slow in |
| 119 | + detecting new messages. Note that you are still |
| 120 | + discouraged from using <c>process_info()</c> this way. A |
| 121 | + process that wants to check if there are messages |
| 122 | + available to handle should execute a <c>receive</c> |
| 123 | + expression matching on messages.</p> |
| 124 | + <p> |
| 125 | + Own Id: OTP-18706 Aux Id: GH-7413, PR-7595, ERIERL-979 </p> |
| 126 | + </item> |
| 127 | + <item> |
| 128 | + <p>On AArch64 (ARM64), when calculating both the quotient |
| 129 | + and remainder with a divisor begin a power two, the |
| 130 | + remainder could be incorrectly calculated.</p> |
| 131 | + <p> |
| 132 | + Own Id: OTP-18724 Aux Id: GH-7566, PR-7567 </p> |
| 133 | + </item> |
| 134 | + <item> |
| 135 | + <p> |
| 136 | + Fix bug causing "magic" references in a <c>compressed</c> |
| 137 | + ETS table to not keep the referred object alive. The |
| 138 | + symptom would be the referred object being garbage |
| 139 | + collected prematurely and the reference appearing stale, |
| 140 | + not referring to anything. Examples of such magically |
| 141 | + referred objects are <c>atomics</c> and NIF resources.</p> |
| 142 | + <p> |
| 143 | + Own Id: OTP-18732 Aux Id: GH-7444, PR-7458 </p> |
| 144 | + </item> |
| 145 | + <item> |
| 146 | + <p>Matching out short bitstrings with a fixed size not |
| 147 | + divisible by 8 could could lead to the runtime system |
| 148 | + terminating with an "Overrun heap and stack" error.</p> |
| 149 | + <p> |
| 150 | + Own Id: OTP-18733 Aux Id: GH-7292 </p> |
| 151 | + </item> |
| 152 | + <item> |
| 153 | + <p> |
| 154 | + A constant flow of incoming non-message signals could |
| 155 | + prevent a process needing to execute dirty from doing so.</p> |
| 156 | + <p> |
| 157 | + Own Id: OTP-18737 Aux Id: PR-7595 </p> |
| 158 | + </item> |
| 159 | + <item> |
| 160 | + <p>A BEAM file usually contains a chunk with the tag |
| 161 | + "Type" containing type information that can be used by |
| 162 | + the JIT. The <c>beam_lib:strip/1</c> takes care to |
| 163 | + preserve that chunk, but a build/release tool that does |
| 164 | + customized stripping could accidentally remove the chunk. |
| 165 | + Loading a BEAM file without the "Type" chunk could cause |
| 166 | + incorrect behavior of the loaded code.</p> |
| 167 | + <p> |
| 168 | + Own Id: OTP-18745 Aux Id: GH-7492, PR-7616 </p> |
| 169 | + </item> |
| 170 | + <item> |
| 171 | + <p> |
| 172 | + <c>gen_udp:recv/*</c> for Unix Domain Socket in binary |
| 173 | + mode and passive mode has been fixed to not crash.</p> |
| 174 | + <p> |
| 175 | + Own Id: OTP-18747 Aux Id: GH-7605 </p> |
| 176 | + </item> |
| 177 | + <item> |
| 178 | + <p> |
| 179 | + The cleanup operation of not yet delivered signals to a |
| 180 | + terminated process yielded excessively.</p> |
| 181 | + <p> |
| 182 | + Own Id: OTP-18752 Aux Id: PR-7633 </p> |
| 183 | + </item> |
| 184 | + <item> |
| 185 | + <p> |
| 186 | + Fixed minor hashing issue with the <c>local</c> option of |
| 187 | + <c>term_to_binary()</c>/<c>term_to_iovec()</c>.</p> |
| 188 | + <p> |
| 189 | + Own Id: OTP-18753 Aux Id: PR-7634 </p> |
| 190 | + </item> |
| 191 | + </list> |
| 192 | + </section> |
| 193 | + |
| 194 | + |
| 195 | + <section><title>Improvements and New Features</title> |
| 196 | + <list> |
| 197 | + <item> |
| 198 | + <p> |
| 199 | + Update gen_tcp_socket and gen_udp_socket to handle |
| 200 | + 'completion' (socket on Windows).</p> |
| 201 | + <p> |
| 202 | + Own Id: OTP-18586 Aux Id: OTP-18029 </p> |
| 203 | + </item> |
| 204 | + <item> |
| 205 | + <p> |
| 206 | + Add support for Unix Domain Sockets (only for STREAM |
| 207 | + sockets) on Windows for 'socket'.</p> |
| 208 | + <p> |
| 209 | + Own Id: OTP-18611 Aux Id: OTP-18029, #5024 </p> |
| 210 | + </item> |
| 211 | + <item> |
| 212 | + <p>In Erlang/OTP 27, by default escripts will be compiled |
| 213 | + before being executed. That means that the |
| 214 | + <c>compiler</c> application must be installed. It is |
| 215 | + possible to force the escript to be interpreted by adding |
| 216 | + the directive <c>-mode(interpret).</c> to the escript |
| 217 | + file.</p> |
| 218 | + <p>In Erlang/OTP 28, support for interpreting an escript |
| 219 | + will be removed.</p> |
| 220 | + <p> |
| 221 | + Own Id: OTP-18638</p> |
| 222 | + </item> |
| 223 | + <item> |
| 224 | + <p> |
| 225 | + Add basic support for socket ioctl on Windows.</p> |
| 226 | + <p> |
| 227 | + Own Id: OTP-18660</p> |
| 228 | + </item> |
| 229 | + <item> |
| 230 | + <p> |
| 231 | + Removed erts/etc/darwin/Info.plist, as it is no longer |
| 232 | + necessary after macos 10.12</p> |
| 233 | + <p> |
| 234 | + Own Id: OTP-18661 Aux Id: PR-6112 </p> |
| 235 | + </item> |
| 236 | + <item> |
| 237 | + <p> |
| 238 | + Add support for (Windows) socket option exclusiveaddruse.</p> |
| 239 | + <p> |
| 240 | + Own Id: OTP-18686</p> |
| 241 | + </item> |
| 242 | + <item> |
| 243 | + <p> |
| 244 | + [socket] Add support for the 'nopush' option.</p> |
| 245 | + <p> |
| 246 | + Own Id: OTP-18687</p> |
| 247 | + </item> |
| 248 | + <item> |
| 249 | + <p> |
| 250 | + Add support for socket option 'BSP STATE'.</p> |
| 251 | + <p> |
| 252 | + Own Id: OTP-18693</p> |
| 253 | + </item> |
| 254 | + <item> |
| 255 | + <p> |
| 256 | + Add tcp socket options 'keepcnt', 'keepidle' and |
| 257 | + 'keepintvl'.</p> |
| 258 | + <p> |
| 259 | + Own Id: OTP-18698</p> |
| 260 | + </item> |
| 261 | + <item> |
| 262 | + <p> |
| 263 | + Add support for misc (Windows) socket options |
| 264 | + ('max_msg_size' and 'maxdg').</p> |
| 265 | + <p> |
| 266 | + Own Id: OTP-18710</p> |
| 267 | + </item> |
| 268 | + </list> |
| 269 | + </section> |
| 270 | + |
| 271 | +</section> |
| 272 | + |
34 | 273 | <section><title>Erts 14.0.2</title>
|
35 | 274 |
|
36 | 275 | <section><title>Fixed Bugs and Malfunctions</title>
|
|
0 commit comments