Skip to content

Commit 6e6eba6

Browse files
author
Erlang/OTP
committed
Prepare release
1 parent f295581 commit 6e6eba6

Some content is hidden

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

104 files changed

+2333
-183
lines changed

erts/doc/notes.md

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,234 @@ limitations under the License.
2121

2222
This document describes the changes made to the ERTS application.
2323

24+
## Erts 15.0
25+
26+
### Fixed Bugs and Malfunctions
27+
28+
- Bugs in how `erl -extra` interacts with passing flags via ERL_*FLAGS or `-args_file` have been fixed.
29+
30+
Own Id: OTP-18766 Aux Id: [PR-7639]
31+
32+
- Fixed a bug that prevented the emulator from building on recent versions of Yocto Linux.
33+
34+
Own Id: OTP-18918 Aux Id: [PR-7952]
35+
36+
- Fixed spectre mitigation configure test to work with GCC patches to always add `-fcf-protection=full`.
37+
38+
Own Id: OTP-18928 Aux Id: [PR-8006]
39+
40+
- A call to `socket:[recv|recvfrom|recvmsg]/*` with Timeout = 0 on Windows could cause a (case clause) crash if data is immediately available.
41+
42+
Own Id: OTP-19063 Aux Id: OTP-18835
43+
44+
- Fix bug on Windows where `exit_status` would not be sent when a port exits after the stdin/stdout handles have been closed.
45+
46+
Own Id: OTP-19077 Aux Id: [PR-8324]
47+
48+
[PR-7639]: https://github.com/erlang/otp/pull/7639
49+
[PR-7952]: https://github.com/erlang/otp/pull/7952
50+
[PR-8006]: https://github.com/erlang/otp/pull/8006
51+
[PR-8324]: https://github.com/erlang/otp/pull/8324
52+
53+
### Improvements and New Features
54+
55+
- Refactored how the JIT handles POSIX signals and how they affect thread stacks, allowing us to use the native stack register for Erlang stacks on more platforms.
56+
57+
Notably, containers built on 64-bit x86 Alpine Linux images will now perform much better in sequential code. As an example, running `dialyzer` over the OTP code base finishes about 15% quicker.
58+
59+
Own Id: OTP-18568 Aux Id: [PR-7174]
60+
61+
- The `m:instrument` module can now track allocations on a per-process or per-port basis.
62+
63+
Own Id: OTP-18577 Aux Id: [PR-7236]
64+
65+
- The `pid` field returned from [`erlang:fun_info/1,2`](`erlang:fun_info/2`) is now always the pid for the `init` process of the local node, not the pid for the actual process that created the fun.
66+
67+
*** POTENTIAL INCOMPATIBILITY ***
68+
69+
Own Id: OTP-18594 Aux Id: [PR-7274]
70+
71+
- By default, escripts will now be compiled instead of interpreted. That means that the `compiler` application must be installed.
72+
73+
*** POTENTIAL INCOMPATIBILITY ***
74+
75+
Own Id: OTP-18639 Aux Id: [PR-7348]
76+
77+
- A binary returned from the `m:socket` receive functions is no longer created as a sub binary of an often large receive buffer binary (socket option `{otp,rcvbuf}`). This avoids space waste, trusting the allocators to implement reallocation efficiently.
78+
79+
Own Id: OTP-18642 Aux Id: [GH-6152], [PR-7465]
80+
81+
- The default process limit has been raised to `1048576` processes.
82+
83+
Own Id: OTP-18699 Aux Id: [PR-7388]
84+
85+
- The `erlang:system_monitor/2` functionality is now able to monitor long message queues in the system.
86+
87+
Own Id: OTP-18709 Aux Id: [PR-7651]
88+
89+
- The `erl` command now supports the `-S` flag, which is similar to the `-run` flag, except that it will pass all arguments up to end of the command line to the called function. (The `-run` flag will not pass arguments beginning with a hyphen.) Another difference is that `-S` will always call a function with one argument, passing an empty list if no arguments were given.
90+
91+
Own Id: OTP-18744 Aux Id: [PR-7470]
92+
93+
- When implementing an alternative carrier for the Erlang distribution, a separate input handler process may now be registered, using `erlang:dist_ctrl_input_handler/2`, also in the case when the distribution controller is a port.
94+
95+
Own Id: OTP-18774 Aux Id: [PR-7110]
96+
97+
- The call stack trace has now been added to the error reported by `erlang:process_flag/2` when `max_heap_size` limit has been exceeded.
98+
99+
Own Id: OTP-18779 Aux Id: [PR-7592]
100+
101+
- `-callback` attributes have been added to `m:erl_tracer`.
102+
103+
Own Id: OTP-18794 Aux Id: [PR-7703]
104+
105+
- For `inet_backend = socket`, setting the `active` socket option alone, to `once`, `true` or `N` has been optimized, as well as the corresponding data delivery.
106+
107+
Own Id: OTP-18835
108+
109+
- New functions `socket:sendv/*` for sending I/O vectors have been added.
110+
111+
Own Id: OTP-18845
112+
113+
- Socket options that take string now also accept binaries.
114+
115+
Own Id: OTP-18849 Aux Id: [PR-6510]
116+
117+
- Native coverage support has been implemented in the JIT. It will automatically be used by the `m:cover` tool to reduce the execution overhead when running cover-compiled code.
118+
119+
There are also new APIs to support native coverage without using the `cover` tool.
120+
121+
To instrument code for native coverage it must be compiled with the [`line_coverage`](`m:compile#line_coverage`) option.
122+
123+
To enable native coverage in the runtime system, start it like so:
124+
125+
```text
126+
$ erl +JPcover true
127+
```
128+
129+
There are also the following new functions for supporting native coverage:
130+
131+
* `code:coverage_support/0`
132+
* `code:get_coverage/2`
133+
* `code:reset_coverage/1`
134+
* `code:get_coverage_mode/0`
135+
* `code:get_coverage_mode/1`
136+
* `code:set_coverage_mode/1`
137+
138+
Own Id: OTP-18856 Aux Id: [PR-7856]
139+
140+
- Changed the default value of the command line flag `-code_path_choice` to `strict`.
141+
142+
Note that for application systems using archives, it is necessary to add the `code_path_choice relaxed` to the command line that invokes `erl`.
143+
144+
Own Id: OTP-18894 Aux Id: [PR-7243]
145+
146+
- Added module loading to `erl -init_debug` printouts.
147+
148+
Own Id: OTP-18929 Aux Id: [PR-8004]
149+
150+
- When the runtime system halts, it performs various flush operations before terminating. By default there is no limit on how much time the flush operations are allowed to take. A new *halt flush timeout* functionality has been introduced which can be used for limiting the amount of time that the flushing operations are allowed to take. For more information see the documentation of the [`flush_timeout`](`m:erlang#halt_flush_timeout`) option of the [`erlang:halt/2`](`erlang:halt/2`) BIF and the documentation of the `erl` [`+zhft <Timeout>`](erl_cmd.md#+zhft) command line flag.
151+
152+
Own Id: OTP-18938 Aux Id: [PR-8035], [GH-7438]
153+
154+
- Optimized code loading by moving certain operations from the code server to the caller.
155+
156+
Own Id: OTP-18941 Aux Id: [PR-7981]
157+
158+
- Updated asmjit to version a465fe71ab3d0e224b2b4bd0fac69ae68ab9239d
159+
160+
Own Id: OTP-18942
161+
162+
- The deprecated functions in `m:zlib` have been removed. That includes `inflateChunk/{1,2}`, `getBufSize/1`, `setBufSize/2`, the CRC32 functions, and the Adler checksum functions.
163+
164+
Own Id: OTP-18950
165+
166+
- The documentation has been migrated to use Markdown and ExDoc.
167+
168+
Own Id: OTP-18955 Aux Id: [PR-8026]
169+
170+
- Safe destructive update of tuples has been implemented in the compiler and runtime system. This allows the VM to update tuples in-place when it is safe to do so, thus improving performance by doing less copying but also by producing less garbage.
171+
172+
Example:
173+
174+
```erlang
175+
-record(rec, {a,b,c}).
176+
177+
update(#rec{a=needs_update,b=N}=R0) ->
178+
R = R0#rec{a=up_to_date},
179+
if
180+
N < 0 ->
181+
R#rec{c=negative};
182+
N == 0 ->
183+
R#rec{c=zero};
184+
N > 0 ->
185+
R#rec{c=positive}
186+
end.
187+
```
188+
189+
The record updates in each of the three clauses of the `if` can safely be done in-place, because variable `R` is not used again.
190+
191+
Own Id: OTP-18972 Aux Id: [PR-8090]
192+
193+
- The obsolete and undocumented support for opening a port to an external
194+
resource by passing an atom (or a string) as first argument to
195+
[`open_port()`](`erlang:open_port/2`), implemented by the vanilla driver,
196+
has been removed. This feature has been scheduled for removal in OTP 27
197+
since the release of OTP 26.
198+
199+
Own Id: OTP-18976 Aux Id: [PR-7125]
200+
201+
- An optional NIF callback `ERL_NIF_OPT_ON_UNLOAD_THREAD` to be called by all scheduler threads when a NIF library is unloaded. Used for releasing thread specific data. Can be set with function `enif_set_option`.
202+
203+
Own Id: OTP-18977 Aux Id: [PR-7809]
204+
205+
- There is a new module `m:trace` in Kernel providing the same trace functionality as `erlang:trace/3` and `erlang:trace_pattern/3`, but with the addition of **dynamic isolated trace sessions**.
206+
207+
Own Id: OTP-18980
208+
209+
- Added the `+MMlp on|off` emulator option to let the `mseg` allocator use "large pages" (sometimes known as "huge pages" or "super pages"). This currently only affects super-carrier allocations, but may be extended in the future.
210+
211+
Own Id: OTP-18984 Aux Id: [PR-7977]
212+
213+
- `inet_backend = socket` has been optimized and reworked to be more compatible with the original `inet_backend = inet`.
214+
215+
Own Id: OTP-19004 Aux Id: OTP-18835
216+
217+
- The `socket` documentation has been reworked, and due to
218+
that a few details were fixed:
219+
* `socket:is_supported/1` now returns `true` for example for `protocols`
220+
that is a "category", not an item.
221+
* `socket:cancel_monitor/1` no longer badargs for a monitor that was set by
222+
another process, instead it returns `false` as for other unknown
223+
`reference()`s.
224+
225+
Own Id: OTP-19054
226+
227+
[PR-7174]: https://github.com/erlang/otp/pull/7174
228+
[PR-7236]: https://github.com/erlang/otp/pull/7236
229+
[PR-7274]: https://github.com/erlang/otp/pull/7274
230+
[PR-7348]: https://github.com/erlang/otp/pull/7348
231+
[GH-6152]: https://github.com/erlang/otp/issues/6152
232+
[PR-7465]: https://github.com/erlang/otp/pull/7465
233+
[PR-7388]: https://github.com/erlang/otp/pull/7388
234+
[PR-7651]: https://github.com/erlang/otp/pull/7651
235+
[PR-7470]: https://github.com/erlang/otp/pull/7470
236+
[PR-7110]: https://github.com/erlang/otp/pull/7110
237+
[PR-7592]: https://github.com/erlang/otp/pull/7592
238+
[PR-7703]: https://github.com/erlang/otp/pull/7703
239+
[PR-6510]: https://github.com/erlang/otp/pull/6510
240+
[PR-7856]: https://github.com/erlang/otp/pull/7856
241+
[PR-7243]: https://github.com/erlang/otp/pull/7243
242+
[PR-8004]: https://github.com/erlang/otp/pull/8004
243+
[PR-8035]: https://github.com/erlang/otp/pull/8035
244+
[GH-7438]: https://github.com/erlang/otp/issues/7438
245+
[PR-7981]: https://github.com/erlang/otp/pull/7981
246+
[PR-8026]: https://github.com/erlang/otp/pull/8026
247+
[PR-8090]: https://github.com/erlang/otp/pull/8090
248+
[PR-7125]: https://github.com/erlang/otp/pull/7125
249+
[PR-7809]: https://github.com/erlang/otp/pull/7809
250+
[PR-7977]: https://github.com/erlang/otp/pull/7977
251+
24252
## Erts 14.2.5
25253

26254
### Fixed Bugs and Malfunctions

erts/doc/references/erl_cmd.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1424,7 +1424,7 @@ the following flags:
14241424
this command line argument and the `flush_timeout` option will be the actual
14251425
timeout value in effect.
14261426

1427-
Since: OTP @OTP-18938@
1427+
Since: OTP 27.0
14281428

14291429
[](){: #environment_variables }
14301430

erts/doc/src/erlang_system_info.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -836,7 +836,7 @@ Returns various information about the current system (emulator) as specified by
836836
default *halt flush timeout* set by the `erl`
837837
[`+zhft <Timeout>`](erl_cmd.md#+zhft) command line flag.
838838

839-
Since: OTP @OTP-18938@
839+
Since: OTP 27.0
840840

841841
- `info`{: #system_info_info } - Returns a binary containing a string of
842842
miscellaneous system information formatted as in Erlang crash dumps. For more

erts/preloaded/src/erl_prim_loader.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ of the file as a binary.
287287
`$OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia.beam`. For
288288
information about archive files, see `m:code`.
289289
""".
290-
-doc(#{since => <<"OTP @OTP-18943@">>}).
290+
-doc(#{since => <<"OTP 27.0">>}).
291291
-spec read_file(Filename) -> {'ok', Bin} | 'error' when
292292
Filename :: string(),
293293
Bin :: binary().

erts/preloaded/src/erlang.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3241,7 +3241,7 @@ Halt the runtime system.
32413241
Note that the shortest timeout set by the command line flag and the
32423242
`flush_timeout` option will be the actual timeout value in effect.
32433243

3244-
Since: OTP @OTP-18938@
3244+
Since: OTP 27.0
32453245

32463246
- ```erlang
32473247
halt(Abort :: abort, Options :: halt_options())

erts/vsn.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# %CopyrightEnd%
1919
#
2020

21-
VSN = 14.2.5
21+
VSN = 15.0
2222

2323
# Port number 4365 in 4.2
2424
# Port number 4366 in 4.3

lib/asn1/doc/notes.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,34 @@ limitations under the License.
2121

2222
This document describes the changes made to the asn1 application.
2323

24+
## Asn1 5.3
25+
26+
### Fixed Bugs and Malfunctions
27+
28+
- Multiple bugs has been eliminated in the [specialized decode feature](`e:asn1:asn1_spec.md`).
29+
30+
Own Id: OTP-18813 Aux Id: [PR-7790]
31+
32+
[PR-7790]: https://github.com/erlang/otp/pull/7790
33+
34+
### Improvements and New Features
35+
36+
- Specs have been added to all `asn1ct` API functions.
37+
38+
Own Id: OTP-18804 Aux Id: [PR-7738]
39+
40+
- The documentation has been migrated to use Markdown and ExDoc.
41+
42+
Own Id: OTP-18955 Aux Id: [PR-8026]
43+
44+
- The `jer` (JSON Encoding Rules) for ASN.1 now use the new `m:json` module for encoding and decoding JSON. Thus, there is no longer any need for an external JSON library.
45+
46+
Own Id: OTP-19018 Aux Id: [PR-8241]
47+
48+
[PR-7738]: https://github.com/erlang/otp/pull/7738
49+
[PR-8026]: https://github.com/erlang/otp/pull/8026
50+
[PR-8241]: https://github.com/erlang/otp/pull/8241
51+
2452
## Asn1 5.2.2
2553

2654
### Fixed Bugs and Malfunctions

lib/asn1/vsn.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ASN1_VSN = 5.2.2
1+
ASN1_VSN = 5.3

lib/common_test/doc/notes.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,67 @@ limitations under the License.
1919
-->
2020
# Common Test Release Notes
2121

22+
## Common_Test 1.27
23+
24+
### Improvements and New Features
25+
26+
- Calls to `ct:capture_start/0` and `ct:capture_stop/0` are now synchronous to ensure that all output is captured.
27+
28+
Own Id: OTP-18658 Aux Id: [PR-7380]
29+
30+
- The order in which multiple hooks are executed can now be reversed after each config function. See [CTH Execution Order](`e:common_test:ct_hooks_chapter.md#cth_execution_order`).
31+
32+
Own Id: OTP-18682 Aux Id: [GH-7397], [PR-7496], ERIERL-43
33+
34+
- The default CSS will now include a basic dark mode handling if it is preferred by the browser.
35+
36+
Own Id: OTP-18761 Aux Id: [PR-7428]
37+
38+
- `-callback` attributes have been added to `m:ct_suite` and `m:ct_hooks`.
39+
40+
Own Id: OTP-18781 Aux Id: [PR-7701]
41+
42+
- The built-in [cth_log_redirect](`e:common_test:ct_hooks_chapter.md#built-in-cths`) hook can now be configured to replace default logger reports in terminal with HTML logs.
43+
44+
Own Id: OTP-18875 Aux Id: [PR-7891]
45+
46+
- Error handling for the `m:ct_property_test` framework has been enhanced.
47+
48+
Own Id: OTP-18881 Aux Id: [PR-7824]
49+
50+
- Enhance test case documentation, making it clear how a test case can be failed.
51+
52+
Own Id: OTP-18892 Aux Id: [PR-7869]
53+
54+
- The failing line in the test source code is now colored to make it easier to find on the screen.
55+
56+
Own Id: OTP-18898 Aux Id: [PR-7917]
57+
58+
- Function specifications and types have been added to all public API functions.
59+
60+
Own Id: OTP-18913
61+
62+
- The documentation has been migrated to use Markdown and ExDoc.
63+
64+
Own Id: OTP-18955 Aux Id: [PR-8026]
65+
66+
- The suite execution elapsed time is now included in the index page.
67+
68+
Own Id: OTP-18981 Aux Id: [GH-7972], [PR-8112]
69+
70+
[PR-7380]: https://github.com/erlang/otp/pull/7380
71+
[GH-7397]: https://github.com/erlang/otp/issues/7397
72+
[PR-7496]: https://github.com/erlang/otp/pull/7496
73+
[PR-7428]: https://github.com/erlang/otp/pull/7428
74+
[PR-7701]: https://github.com/erlang/otp/pull/7701
75+
[PR-7891]: https://github.com/erlang/otp/pull/7891
76+
[PR-7824]: https://github.com/erlang/otp/pull/7824
77+
[PR-7869]: https://github.com/erlang/otp/pull/7869
78+
[PR-7917]: https://github.com/erlang/otp/pull/7917
79+
[PR-8026]: https://github.com/erlang/otp/pull/8026
80+
[GH-7972]: https://github.com/erlang/otp/issues/7972
81+
[PR-8112]: https://github.com/erlang/otp/pull/8112
82+
2283
## Common_Test 1.26.2
2384

2485
### Fixed Bugs and Malfunctions

lib/common_test/vsn.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
COMMON_TEST_VSN = 1.26.2
1+
COMMON_TEST_VSN = 1.27

0 commit comments

Comments
 (0)