You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: erts/doc/notes.md
-244Lines changed: 0 additions & 244 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,250 +23,6 @@ limitations under the License.
23
23
24
24
This document describes the changes made to the ERTS application.
25
25
26
-
## Erts 17.0
27
-
28
-
### Fixed Bugs and Malfunctions
29
-
30
-
- For a function such as the following:
31
-
32
-
```
33
-
bar(S0) ->
34
-
S1 = setelement(8, S0, a),
35
-
S2 = setelement(7, S1, b),
36
-
setelement(5, S2, c).
37
-
```
38
-
39
-
the compiler would keep all of the calls to `setelement/3` and emit extra unnecessary `set_tuple_element` instructions.
40
-
41
-
This has been corrected so that the compiler will never emit code that uses the `set_tuple_element` instruction. In a future release, support for the `set_tuple_element` will be removed from the runtime system.
42
-
43
-
Own Id: OTP-19751 Aux Id: [GH-10125], [PR-10144]
44
-
45
-
- Improved the handling of the logging directory for the start script on Unix-like systems, so that it no longer crashes when `$ROOTDIR/log` is not writable.
46
-
47
-
Own Id: OTP-19874 Aux Id: [GH-10341], [PR-10348]
48
-
49
-
- The `-nocookie` option for `erl` is now documented.
50
-
51
-
Own Id: OTP-19935 Aux Id: [PR-10549]
52
-
53
-
- `beam_lib:strip/1` will now retain the Beam debug information chunk produced by the `beam_debug_info` option. The chunk will also be retained when combing the `beam_debug_info` option with the undocumented `slim` option.
54
-
55
-
The runtime system will no longer crash when attempting to load modules that have been compiled with `beam_debug_info` but lack the actual Beam debug info chunk.
56
-
57
-
Own Id: OTP-19991 Aux Id: [GH-10557], [PR-10735]
58
-
59
-
- Fixed potential symbol clashing on MacOS by passing `RTLD_LOCAL` to `dlopen`. This will make symbols to not be resolvable between subsequently loaded NIF/drivers, which is the default behavior on Linux and BSD.
60
-
61
-
Own Id: OTP-20026 Aux Id: [PR-10805]
62
-
63
-
- The `configure` script used to call `isfinite()` with argument `0`. That could fail on some platforms. This has been changed to call `isfinite()` with `1.0` instead.
- The exported name space of the `beam` executable has been cleaned to only expose symbols of documented interfaces like NIF and driver APIs. This will avoid accidental name clashes with, for example, our statically linked variants of PCRE2 and ZSTD. NIFs and drivers that abuse undocumented internal interfaces will fail to load due to this change.
80
-
81
-
Own Id: OTP-19643 Aux Id: [PR-9864]
82
-
83
-
- Improved name consistency of EPMD protocol messages in documentation and code. Renamed `PORT_PLEASE2_REQ` to `PORT2_REQ` and added prefix `EPMD_`.
84
-
85
-
Own Id: OTP-19734 Aux Id: [GH-10071], [PR-10078]
86
-
87
-
- The JIT now generates better code for matching or creating binaries with multiple little-endian segments.
88
-
89
-
Own Id: OTP-19747 Aux Id: [PR-10126]
90
-
91
-
- In the documentation for the `m:compile` module, a section has been added with recommendations for implementors of languages running on the BEAM. Documentation has also been added for the `to_abstr`, `to_exp`, and `from_abstr` options.
92
-
93
-
The documentation for [erlc](erlc_cmd.md) now lists `.abstr` as one of the supported options.
94
-
95
-
When compiling with the `to_abstr` option, the resulting `.abstr` file now retains any `-doc` attributes present in the source code.
96
-
97
-
Own Id: OTP-19784 Aux Id: [PR-10230], [PR-10234]
98
-
99
-
- Native records as described in [EEP-79](https://www.erlang.org/eeps/eep-0079) has been implemented.
100
-
101
-
A native record is a data structure similar to the traditional tuple-based records, except that is a true data type.
102
-
103
-
Native records are considered experimental in Erlang/OTP 29 and possibly also in Erlang/OTP 30, meaning that their behavior may change, potentially requiring updates to applications that use them.
104
-
105
-
Own Id: OTP-19785 Aux Id: [PR-10617]
106
-
107
-
- Task stealing between schedulers has been further optimized.
108
-
109
-
Own Id: OTP-19793 Aux Id: [PR-9984]
110
-
111
-
- The guard BIF `is_integer/3` has been added. It follows the design of the original EEP-16, only changing the name from `is_between` to `is_integer`. This BIF takes in 3 parameters, `Term`, `LowerBound`, and `UpperBound`.
112
-
113
-
It returns `true` if `Term`, `LowerBound`, and `UpperBound` are all integers, and `LowerBound =< Term =< UpperBound`; otherwise, it returns false.
114
-
115
-
Example:
116
-
117
-
```erlang
118
-
1> I = 42.
119
-
2> is_integer(I, 0, 100).
120
-
true
121
-
```
122
-
123
-
Own Id: OTP-19809 Aux Id: [PR-10276]
124
-
125
-
- Calls to `trace:info(_, {M,F,A}, Item)`, with `Item` as `call_time`, `call_memory`, or `all`, will no longer block all scheduler threads from running.
126
-
127
-
Own Id: OTP-19811 Aux Id: [PR-10207]
128
-
129
-
- Full support for SCTP in `m:socket`.
130
-
Not (yet) supported for FreeBSD.
131
-
132
-
Own Id: OTP-19834
133
-
134
-
- In the default code path for the Erlang system, the current working directory (`.`) is now in the last position instead of the first.
135
-
136
-
*** POTENTIAL INCOMPATIBILITY ***
137
-
138
-
Own Id: OTP-19842
139
-
140
-
- Tools such as the debugger, `m:beam_lib`, and `m:xref` no longer support BEAM files created before OTP 13B.
141
-
142
-
Own Id: OTP-19906 Aux Id: [PR-10519]
143
-
144
-
- Optimized ETS named table lookup scalability by replacing read locks with lockless atomic operations.
145
-
146
-
Own Id: OTP-19919 Aux Id: [PR-7118]
147
-
148
-
- Removed the undocumented `dyn_erl` utility.
149
-
150
-
Own Id: OTP-19933 Aux Id: [PR-10573]
151
-
152
-
- Added `zstd:flush/2` for flushing compressed data without closing the compression context.
153
-
154
-
Own Id: OTP-19936 Aux Id: [GH-10345], [PR-10511]
155
-
156
-
- While the iteration order for maps is undefined, it is now guaranteed that all ways of iterating over maps provides the elements in the same order. That is, all of the following ways of iterating will produce the elements in the same order:
157
-
158
-
* `maps:keys/1`
159
-
* `maps:values/1`
160
-
* `maps:to_list/1`
161
-
* `maps:to_list(maps:iterator(M))`
162
-
* Map comprehension: `[{K,V} || K := V <- M]`
163
-
164
-
Own Id: OTP-19963 Aux Id: [PR-10626]
165
-
166
-
- Improved the performance of code loading.
167
-
168
-
Own Id: OTP-19966 Aux Id: [PR-10615]
169
-
170
-
- Changed `ets:update_counter/4` and `ets:update_element/4` to *always* reject default tuples smaller than the `keypos` of the table. Such keyless tuples are now rejected even if the key exists in the table and the default tuple would not be used. This is a subtle semantic change but is a nicer behavior for development and testing as it will detect faulty default tuple arguments earlier.
171
-
172
-
*** POTENTIAL INCOMPATIBILITY ***
173
-
174
-
Own Id: OTP-19975 Aux Id: [PR-10674]
175
-
176
-
- Improved compatibility with systems that lack certain shell utilities.
177
-
178
-
Own Id: OTP-20002 Aux Id: [PR-10647]
179
-
180
-
- It was previously not possible to check on the socket nif load result. A successful load was self-evident, but a failure was only visible from the fact that most `m:socket` functions failed with `notsup`.
181
-
This has now been improved such that the (socket nif) load result is visible in the info map (from `socket:info/0`).
182
-
183
-
Own Id: OTP-20003
184
-
185
-
- A new `configure` option `--enable-use-embedded-3pp-alternatives`/ `--disable-use-embedded-3pp-alternatives` has been added. When enabled `configure` is forced to find alternatives to the embedded third-party products (*3pps*) in the runtime system on the OS and when disabled `configure` will use of all internal embedded 3pps. Currently these options affect `zstd`, `zlib` and `ryu` (with `STL`). As of OTP 29 the default is to try to find alternatives for `zstd` and `zlib` on the OS and otherwise use the built-in versions. `zstd` needs to be of at least version 1.5.6 to be used and `zlib` needs to be of at least 1.2.5 to be used.
186
-
187
-
The OS alternative to `ryu` needs a C++ compiler with C++17 support. Currently the alternative to `ryu` may cause float to string conversions to produce slightly different (but correct) results compared to `ryu`.
188
-
189
-
The argument [`embedded_3pps`](`m:erlang#system_info_embedded_3pps`) has been added to `erlang:system_info/1`. It returns a map with information about the use of embedded 3pps in the runtime system.
190
-
191
-
Own Id: OTP-20013 Aux Id: [PR-10894], [PR-10986]
192
-
193
-
- Added support for socket functions `recvmmsg()` and `sendmmsg()`.
194
-
195
-
Own Id: OTP-20015 Aux Id: [PR-10564]
196
-
197
-
- There is a new NIF function `enif_term_size()`.
198
-
199
-
Own Id: OTP-20016 Aux Id: [PR-10782]
200
-
201
-
- Call trace match specs can use `[Arg1, Arg2 | '_']` syntax to match functions with at least N number of arguments.
202
-
203
-
Own Id: OTP-20017 Aux Id: [PR-10754]
204
-
205
-
- Replaced embedded OpenSSL MD5 implementation.
206
-
207
-
Own Id: OTP-20045 Aux Id: [PR-10870]
208
-
209
-
- The format of the debug information stored by the `beam_debug_info` option (used by the [edb debugger](https://github.com/WhatsApp/edb)) has been updated to more easily extendible and to contain more information about call targets. (See the linked PR for more details.)
210
-
211
-
Own Id: OTP-20048 Aux Id: [PR-9814]
212
-
213
-
- There are new functions `erlang:exit_signal/2,3` replacing the old [`erlang:exit/2,3`](`erlang:exit/3`). The primary purpose is better naming to distinguish between exit *exceptions* and exit *signals*. The new `exit_signal` functions will also avoid a historical quirk when a process sends an exit signal to itself with reason `normal`.
214
-
215
-
The old `erlang:exit/2,3` will work as before, but it is recommended to use the new `exit:signal/2,3` functions for new or modified code. Deprecation of `erlang:exit/2,3` with a compiler warning is planned for OTP 30.
216
-
217
-
Own Id: OTP-20069 Aux Id: [PR-10801]
218
-
219
-
- The old Tcl-based implementation of [`erl_errno_id()`](erl_driver.md#erl_errno_id) has been replaced by our own implementation now supporting more `errno` values on modern operating systems. It now also returns the string `"errno_<ERRNO_INTEGER>"` corresponding to the integer given as argument if the `errno` integer is unknown instead of as previously just return the string `"unknown"`.
220
-
221
-
The result of `erl_errno_id()` is often converted into an atom and passed as an error from a driver or a NIF.
222
-
223
-
*** POTENTIAL INCOMPATIBILITY ***
224
-
225
-
Own Id: OTP-20076 Aux Id: [PR-10969], [PR-10958]
226
-
227
-
- When implementing an [alternate distribution](alt_dist.md) implementors can now use an alternate [*handshake complete* fun of arity 4](alt_dist.md#hs_data_f_handshake_complete) if needed.
228
-
229
-
Own Id: OTP-20090 Aux Id: [PR-10478]
230
-
231
-
- The `erlang:suspend_process/1` and `erlang:suspend_process/2` BIFs now also suspend BIF timers that will send messages to the process if the timer was created using the PID of the process as destination. Timers created using registered names are not affected.
Copy file name to clipboardExpand all lines: lib/asn1/doc/notes.md
-18Lines changed: 0 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,24 +23,6 @@ limitations under the License.
23
23
24
24
This document describes the changes made to the asn1 application.
25
25
26
-
## Asn1 5.5
27
-
28
-
### Improvements and New Features
29
-
30
-
- Only minor internal changes.
31
-
32
-
Own Id: OTP-19964
33
-
34
-
- Added support for `-unsafe` attributes, which is used to mark functions as unsafe to use.
35
-
36
-
This is similar to but separate from deprecation, and the compiler will by default now generate warnings for calls to functions in Erlang/OTP that are known to be always unsafe.
37
-
38
-
Furthermore, `m:xref` can now be used to find calls to functions in another application that lack a `-doc` attribute (`undocumented_function_calls`), calls to functions in another application marked `-doc false.` (`private_function_calls`), as well as calls to unsafe functions (`unsafe_function_calls`).
- The legacy `and` and `or` operators have been replaced with other language constructs.
37
-
38
-
Own Id: OTP-19744 Aux Id: [PR-10114], [PR-10554], [PR-10568], [PR-10579], [PR-10585], [PR-10598], [PR-10710], [PR-10718], [PR-10580], [PR-10730]
39
-
40
-
-`'EXIT'` messages are now formatted in the same way as `badmatch` errors.
41
-
42
-
Own Id: OTP-19910 Aux Id: [PR-10277]
43
-
44
-
- Error notifications now contain the name of the source file in which the error occurred.
45
-
46
-
Own Id: OTP-19925 Aux Id: [GH-10260], [PR-10269]
47
-
48
-
- New in this release is `ct_doctest`, a module that allows the user to test documentation examples in Erlang module docs and documentation files.
49
-
50
-
ct_doctest allows you to:
51
-
52
-
* Test code examples using shell syntax and their returns
53
-
54
-
* Test code examples that should fail
55
-
* Write example modules that are compiled and available in shell examples
56
-
57
-
* Plugin other documentation parsing engines so that examples in, for example, `edoc`, `asciidoc`, and others can also be tested.
58
-
59
-
See the documentation for more details.
60
-
61
-
Own Id: OTP-20034 Aux Id: [PR-10824], [PR-9315]
62
-
63
-
- Added support for `-unsafe` attributes, which is used to mark functions as unsafe to use.
64
-
65
-
This is similar to but separate from deprecation, and the compiler will by default now generate warnings for calls to functions in Erlang/OTP that are known to be always unsafe.
66
-
67
-
Furthermore, `m:xref` can now be used to find calls to functions in another application that lack a `-doc` attribute (`undocumented_function_calls`), calls to functions in another application marked `-doc false.` (`private_function_calls`), as well as calls to unsafe functions (`unsafe_function_calls`).
0 commit comments