summaryrefslogtreecommitdiff
path: root/lib/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stdlib')
-rw-r--r--lib/stdlib/doc/src/base64.xml12
-rw-r--r--lib/stdlib/doc/src/binary.xml2
-rw-r--r--lib/stdlib/doc/src/edlin_expand.xml6
-rw-r--r--lib/stdlib/doc/src/ets.xml2
-rw-r--r--lib/stdlib/doc/src/lists.xml10
-rw-r--r--lib/stdlib/doc/src/math.xml2
-rw-r--r--lib/stdlib/doc/src/notes.xml445
-rw-r--r--lib/stdlib/doc/src/shell.xml10
-rw-r--r--lib/stdlib/doc/src/timer.xml8
-rw-r--r--lib/stdlib/doc/src/zip.xml2
-rw-r--r--lib/stdlib/src/stdlib.app.src2
-rw-r--r--lib/stdlib/src/stdlib.appup.src28
-rw-r--r--lib/stdlib/vsn.mk2
13 files changed, 481 insertions, 50 deletions
diff --git a/lib/stdlib/doc/src/base64.xml b/lib/stdlib/doc/src/base64.xml
index a4ab294336..e3d217ca39 100644
--- a/lib/stdlib/doc/src/base64.xml
+++ b/lib/stdlib/doc/src/base64.xml
@@ -103,10 +103,10 @@
</func>
<func>
- <name name="decode" arity="2" since="OTP @OTP-18247@"/>
- <name name="decode_to_string" arity="2" since="OTP @OTP-18247@"/>
- <name name="mime_decode" arity="2" since="OTP @OTP-18247@"/>
- <name name="mime_decode_to_string" arity="2" since="OTP @OTP-18247@"/>
+ <name name="decode" arity="2" since="OTP 26.0"/>
+ <name name="decode_to_string" arity="2" since="OTP 26.0"/>
+ <name name="mime_decode" arity="2" since="OTP 26.0"/>
+ <name name="mime_decode_to_string" arity="2" since="OTP 26.0"/>
<fsummary>Decode a base64 encoded string to data.</fsummary>
<type variable="Base64"/>
<type variable="Options" name_i="1"/>
@@ -163,8 +163,8 @@
</func>
<func>
- <name name="encode" arity="2" since="OTP @OTP-18247@"/>
- <name name="encode_to_string" arity="2" since="OTP @OTP-18247@"/>
+ <name name="encode" arity="2" since="OTP 26.0"/>
+ <name name="encode_to_string" arity="2" since="OTP 26.0"/>
<fsummary>Encode data into base64.</fsummary>
<type variable="Data"/>
<type variable="Options"/>
diff --git a/lib/stdlib/doc/src/binary.xml b/lib/stdlib/doc/src/binary.xml
index 07f55ed30e..6f55d6d327 100644
--- a/lib/stdlib/doc/src/binary.xml
+++ b/lib/stdlib/doc/src/binary.xml
@@ -244,7 +244,7 @@
<func>
<name name="encode_hex" arity="1" since="OTP 24.0"/>
- <name name="encode_hex" arity="2" since="OTP @OTP-18354@"/>
+ <name name="encode_hex" arity="2" since="OTP 26.0"/>
<fsummary>Encodes a binary into a hex encoded binary with specified case</fsummary>
<desc>
<p>Encodes a binary into a hex encoded binary using the specified case for the hexadecimal digits "a" to "f".</p>
diff --git a/lib/stdlib/doc/src/edlin_expand.xml b/lib/stdlib/doc/src/edlin_expand.xml
index 62e634c1a5..d95d0bf0e4 100644
--- a/lib/stdlib/doc/src/edlin_expand.xml
+++ b/lib/stdlib/doc/src/edlin_expand.xml
@@ -28,7 +28,7 @@
<date></date>
<rev></rev>
</header>
- <module since="OTP @OTP-14835@">edlin_expand</module>
+ <module since="OTP 26.0">edlin_expand</module>
<modulesummary>Shell expansion and formatting of expansion suggestions.</modulesummary>
<description>
<p>This module provides an expand_fun for the erlang shell
@@ -38,8 +38,8 @@
</description>
<funcs>
<func>
- <name name="expand" arity="1" since="OTP @OTP-14835@"/>
- <name name="expand" arity="2" since="OTP @OTP-14835@"/>
+ <name name="expand" arity="1" since="OTP 26.0"/>
+ <name name="expand" arity="2" since="OTP 26.0"/>
<fsummary>Standard expanion function for the erl shell.</fsummary>
<desc>
<p>The standard expansion function is able to expand strings to
diff --git a/lib/stdlib/doc/src/ets.xml b/lib/stdlib/doc/src/ets.xml
index 2aa05a599a..855f38d2ae 100644
--- a/lib/stdlib/doc/src/ets.xml
+++ b/lib/stdlib/doc/src/ets.xml
@@ -999,7 +999,7 @@ Error: fun containing local Erlang function calls
</func>
<func>
- <name name="lookup_element" arity="4" since="OTP @OTP-18279@"/>
+ <name name="lookup_element" arity="4" since="OTP 26.0"/>
<fsummary>Return the <c>Pos</c>:th element of all objects with a
specified key in an ETS table, or <c>Default</c> if there is no such object.</fsummary>
<desc>
diff --git a/lib/stdlib/doc/src/lists.xml b/lib/stdlib/doc/src/lists.xml
index 1a14654821..8bf10b71b5 100644
--- a/lib/stdlib/doc/src/lists.xml
+++ b/lib/stdlib/doc/src/lists.xml
@@ -177,7 +177,7 @@
<func>
<name name="enumerate" arity="1" since="OTP 25.0"/>
<name name="enumerate" arity="2" since="OTP 25.0"/>
- <name name="enumerate" arity="3" since="OTP @OTP-18495@"/>
+ <name name="enumerate" arity="3" since="OTP 26.0"/>
<fsummary>Annotates elements with their index.</fsummary>
<desc>
<p>Returns <c><anno>List1</anno></c> with each element
@@ -1059,7 +1059,7 @@ splitwith(Pred, List) ->
<func>
<name name="zip" arity="2" since=""/>
- <name name="zip" arity="3" since="OTP @OTP-18318@"/>
+ <name name="zip" arity="3" since="OTP 26.0"/>
<fsummary>Zip two lists into a list of two-tuples.</fsummary>
<desc>
<p>"Zips" two lists into one list of two-tuples,
@@ -1098,7 +1098,7 @@ splitwith(Pred, List) ->
<func>
<name name="zip3" arity="3" since=""/>
- <name name="zip3" arity="4" since="OTP @OTP-18318@"/>
+ <name name="zip3" arity="4" since="OTP 26.0"/>
<fsummary>Zip three lists into a list of three-tuples.</fsummary>
<desc>
<p>"Zips" three lists into one list of
@@ -1113,7 +1113,7 @@ splitwith(Pred, List) ->
<func>
<name name="zipwith" arity="3" since=""/>
- <name name="zipwith" arity="4" since="OTP @OTP-18318@"/>
+ <name name="zipwith" arity="4" since="OTP 26.0"/>
<fsummary>Zip two lists into one list according to a fun.</fsummary>
<desc>
<p>Combines the elements of two lists into one list.
@@ -1133,7 +1133,7 @@ splitwith(Pred, List) ->
<func>
<name name="zipwith3" arity="4" since=""/>
- <name name="zipwith3" arity="5" since="OTP @OTP-18318@"/>
+ <name name="zipwith3" arity="5" since="OTP 26.0"/>
<fsummary>Zip three lists into one list according to a fun.</fsummary>
<desc>
<p>Combines the elements of three lists into one
diff --git a/lib/stdlib/doc/src/math.xml b/lib/stdlib/doc/src/math.xml
index 69df237496..c0b0d60f61 100644
--- a/lib/stdlib/doc/src/math.xml
+++ b/lib/stdlib/doc/src/math.xml
@@ -110,7 +110,7 @@ erf(X) = 2/sqrt(pi)*integral from 0 to X of exp(-t*t) dt.</pre>
</func>
<func>
- <name name="tau" arity="0" since="OTP @OTP-18361@"/>
+ <name name="tau" arity="0" since="OTP 26.0"/>
<fsummary>Ratio of the circumference of a circle to its radius.</fsummary>
<desc>
<p>Ratio of the circumference of a circle to its radius.</p>
diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml
index 0906db1359..3f9edddbc1 100644
--- a/lib/stdlib/doc/src/notes.xml
+++ b/lib/stdlib/doc/src/notes.xml
@@ -31,6 +31,451 @@
</header>
<p>This document describes the changes made to the STDLIB application.</p>
+<section><title>STDLIB 5.0</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ All process calls in <c>dets</c> have been updated to use
+ the receive queue optimizations.</p>
+ <p>
+ Own Id: OTP-18275 Aux Id: PR-6045 </p>
+ </item>
+ <item>
+ <p> <c>proc_lib:start*/*</c> has become synchronous when
+ the started process fails. This requires that a failing
+ process use a new function <c>proc_lib:init_fail/2,3</c>,
+ or exits, to indicate failure. All OTP behaviours have
+ been fixed to do this. </p><p> All these start functions
+ now consume the <c>'EXIT'</c> message from a process link
+ for all error returns. Previously it was only the
+ <c>start_link/*</c> functions that did this, and only
+ when the started function exited, not when it used
+ <c>init_ack/1,2</c> or <c>init_fail/2,3</c> to create the
+ return value. </p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-18471 Aux Id: GH-6339, PR-6843 </p>
+ </item>
+ <item>
+ <p>Fixed a bug where <c>file:read(standard_io, ...)</c>
+ unexpectedly returned <c>eof</c> in binary mode.</p>
+ <p>
+ Own Id: OTP-18486 Aux Id: PR-6881 </p>
+ </item>
+ <item>
+ <p>In the shell, <c>v(N)</c> would fail to retrieve the
+ command if the command's return value was
+ <c>undefined</c>.</p>
+ <p>
+ Own Id: OTP-18548 Aux Id: PR-6967 </p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>The Erlang shell has been improved to support the
+ following features:</p> <list> <item>Auto-complete
+ variables, record names, record field names, map keys,
+ function parameter types and filenames.</item> <item>Open
+ external editor in the shell (with C-o) to edit the
+ current expression in an editor.</item> <item>Support
+ defining records (with types), functions and function
+ typespecs, and custom types in the shell.</item> <item>Do
+ not save pager commands, and input to io:getline in
+ history.</item> </list>
+ <p>
+ Own Id: OTP-14835 Aux Id: PR-5924 </p>
+ </item>
+ <item>
+ <p>
+ Gen_server now caches external functions for use in
+ handle_call, handle_cast and handle_info.</p>
+ <p>
+ Own Id: OTP-15597 Aux Id: PR-5831 </p>
+ </item>
+ <item>
+ <p>The TTY/terminal subsystem has been rewritten by
+ moving more code to Erlang from the old linked-in driver
+ and implementing all the I/O primitives needed in a NIF
+ instead. </p><p> On Unix platforms the user should not
+ notice a lot of difference, besides better handling of
+ unicode characters and fixing of some long standing bugs.
+ </p><p> Windows users will notice that erl.exe has the
+ same functionality as a normal Unix shell and that
+ werl.exe has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix. </p><p> The
+ re-write brings with it a number of bug fixes and feature
+ additions:</p> <list> <item>The TTY is now reset when
+ Erlang exits, fixing zsh to not break when terminating an
+ Erlang session.</item> <item><c>standard_error</c> now
+ uses the same unicode mode as <c>standard_io</c>.</item>
+ <item>Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the
+ shell.</item> <item>Tab expansion now works on remote
+ nodes started using the JCL interface.</item> <item>It is
+ now possible to configure the shell slogan and the
+ session slogans (that is the texts that appear when you
+ start an Erlang shell). See the kernel documentation for
+ more details.</item> <item>Added shell:start_interactive
+ for starting the interactive shell from a non-interactive
+ Erlang session (for example an escript).</item> <item>On
+ Windows, when starting in detached mode the standard
+ handler are now set to <c>nul</c> devices instead of
+ being unset.</item> <item> Standard I/O now always
+ defaults to <c>unicode</c> mode if supported. Previously
+ the default was <c>latin1</c> if the runtime system had
+ been started with <c>-oldshell</c> or <c>-noshell</c>
+ (for example in an <c>escript</c>). To send raw bytes
+ over standard out, one now explicitly has to specify
+ <c>io:setopts(standard_io, [{encoding, latin1}]).</c>
+ </item> </list>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-17932 Aux Id: PR-6144 GH-3150 GH-3390 GH-4343
+ GH-4225 </p>
+ </item>
+ <item>
+ <p>Added the <c>zip:zip_get_crc32/2</c> function to
+ retrieve the CRC32 checksum from an opened ZIP
+ archive.</p>
+ <p>
+ Own Id: OTP-18159 Aux Id: PR-6904 </p>
+ </item>
+ <item>
+ <p>
+ Added the options <c>post_process_args</c> and
+ <c>detached</c> to the <c>peer:start</c> function.</p>
+ <p>
+ Own Id: OTP-18176 Aux Id: PR-6118 </p>
+ </item>
+ <item>
+ <p>The <c>re:replace/3,4</c> functions now accept a fun
+ as the replacement argument.</p>
+ <p>
+ Own Id: OTP-18221 Aux Id: PR-6197 </p>
+ </item>
+ <item>
+ <p>The performance of the <c>base64</c> module has been
+ significantly improved. For example, on an x86_64 system
+ with the JIT both encode and decode are more than three
+ times faster than in Erlang/OTP 25.</p>
+ <p>
+ Own Id: OTP-18228 Aux Id: GH-5639 </p>
+ </item>
+ <item>
+ <p>
+ Improved implementation of <seemfa
+ marker="stdlib:timer#apply_interval/4"><c>timer:apply_interval/4</c></seemfa>
+ reducing load on the timer server, and introduction of
+ the new function <seemfa
+ marker="stdlib:timer#apply_repeatedly/4"><c>timer:apply_repeatedly/4</c></seemfa>.
+ <c>timer:apply_repeatedly/4</c> is similar to
+ <c>timer:apply_interval/4</c>, but
+ <c>timer:apply_repeatedly/4</c> prevents parallel
+ execution of triggered <c>apply</c> operations which
+ <c>timer:apply_interval/4</c> does not.</p>
+ <p>
+ Own Id: OTP-18236 Aux Id: PR-6256 </p>
+ </item>
+ <item>
+ <p>The <c>base64</c> module now supports encoding and
+ decoding with an alternate URL safe alphabet, and an
+ option for accepting or adding missing <c>=</c> padding
+ characters.</p>
+ <p>
+ Own Id: OTP-18247 Aux Id: PR-6280, PR-6711 </p>
+ </item>
+ <item>
+ <p>
+ Add <c>shell:whereis/0</c> which can be used to locate
+ the current shell process.</p>
+ <p>
+ Own Id: OTP-18272 Aux Id: PR-6279 </p>
+ </item>
+ <item>
+ <p>
+ The Erlang shell's auto-completion when typing <c>tab</c>
+ has been changed to happen after the editing current line
+ instead of before it.</p>
+ <p>
+ This behaviour can be configured using a the
+ <c>shell_expand_location</c> STDLIB configuration
+ parameter.</p>
+ <p>
+ Own Id: OTP-18278 Aux Id: PR-6260 </p>
+ </item>
+ <item>
+ <p>
+ New function <c>ets:lookup_element/4</c> with a
+ <c>Default</c> argument returned if the key did not exist
+ in the table. The old <c>ets:lookup_element/3</c> raises
+ a <c>badarg</c> exception which can be both inconvenient
+ and slower.</p>
+ <p>
+ Own Id: OTP-18279 Aux Id: PR-6234 </p>
+ </item>
+ <item>
+ <p>
+ Typing <c>Ctrl+L</c> in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type <c>Alt+L</c>. This brings the behaviour of
+ <c>Ctrl+L</c> closer to how bash and other shells work.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-18285 Aux Id: PR-6262 </p>
+ </item>
+ <item>
+ <p>
+ <c>peer</c> nodes using <c>standard_io</c> connections
+ now include standard error from the node in the io stream
+ from the started node.</p>
+ <p>
+ Own Id: OTP-18287 Aux Id: PR-5955 </p>
+ </item>
+ <item>
+ <p>A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <c>&lt;&lt;A:8&gt;&gt; = &lt;&lt;B:4,C:4&gt;&gt;
+ = Bin</c></p>
+ <p>
+ Own Id: OTP-18297 Aux Id: GH-6348 </p>
+ </item>
+ <item>
+ <p>
+ Improve type specification of
+ <c>unicode:characters_to_list()</c>.</p>
+ <p>
+ Own Id: OTP-18301 Aux Id: PR-6350 </p>
+ </item>
+ <item>
+ <p>In the <c>lists</c> module, the <c>zip</c> family of
+ functions now takes options to allow handling lists of
+ different lengths.</p>
+ <p>
+ Own Id: OTP-18318 Aux Id: PR-6347 </p>
+ </item>
+ <item>
+ <p>It is documented that <c>$\^X</c> is the ASCII code
+ for Control X, where X is an uppercase or lowercase
+ letter. However, this notation would work for any
+ character X, even then it didn't make sense.</p>
+ <p>In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the
+ <c>\^</c> characters: <c>@</c>, <c>[</c>, <c>\</c>,
+ <c>]</c>, <c>^</c>, <c>_</c>, and <c>?</c>. Attempt to
+ use other characters will be rejected with a compiler
+ error.</p>
+ <p>The value for <c>$\^?</c> is now 127 (instead of 31 as
+ in earlier releases).</p>
+ <p>
+ Own Id: OTP-18337 Aux Id: GH-6477, PR-6503 </p>
+ </item>
+ <item>
+ <p>The <c>binary:encode_hex/2</c> function has been added
+ to allow the encoded hexadecimal digits to be in either
+ lower or upper case.</p>
+ <p>
+ Own Id: OTP-18354 Aux Id: PR-6297 </p>
+ </item>
+ <item>
+ <p>
+ Variants of <c>timer:tc()</c> with user specified time
+ unit have been introduced.</p>
+ <p>
+ Own Id: OTP-18355 Aux Id: PR-6507 </p>
+ </item>
+ <item>
+ <p>
+ New function <c>math:tau/0</c>. Returns
+ <c>2*math:pi()</c>.</p>
+ <p>
+ Own Id: OTP-18361 Aux Id: PR-6536 </p>
+ </item>
+ <item>
+ <p>The BIFs <c>min/2</c> and <c>max/2</c> are now allowed
+ to be used in guards and match specs.</p>
+ <p>
+ Own Id: OTP-18367 Aux Id: GH-6544 </p>
+ </item>
+ <item>
+ <p>
+ Optimized <c>gen_server:multi_call()</c>.</p>
+ <p>
+ Own Id: OTP-18385 Aux Id: PR-6698 </p>
+ </item>
+ <item>
+ <p>Map comprehensions as suggested in EEP 58 has now been
+ implemented.</p>
+ <p>
+ Own Id: OTP-18413 Aux Id: EEP-58, PR-6727 </p>
+ </item>
+ <item>
+ <p>Some map operations have been optimized by changing
+ the internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by <c>maps:to_list/1</c> and
+ <c>maps:next/1</c>. The new order is unpredictable and
+ may change between different invocations of the Erlang
+ VM.</p>
+ <p>For applications where order is important, there is a
+ new function <c>maps:iterator/2</c> for creating
+ iterators that return the map elements in a deterministic
+ order. There are also new modifiers <c>k</c> and <c>K</c>
+ for the format string for <c>io:format()</c> to support
+ printing map elements ordered.</p>
+ <p>
+ Own Id: OTP-18414 Aux Id: PR-6151 </p>
+ </item>
+ <item>
+ <p>
+ Make gen_server fail "silently" with a new return value
+ for init/1.</p>
+ <p>
+ Own Id: OTP-18423 Aux Id:
+ https://github.com/erlang/backlog/issues/142 </p>
+ </item>
+ <item>
+ <p>Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.</p>
+ <p>This greatly improves the performance of
+ <c>gen_server:send_request/3</c>,
+ <c>gen_server:wait_response/2</c>, and similar
+ functions.</p>
+ <p>
+ Own Id: OTP-18431 Aux Id: PR-6739 </p>
+ </item>
+ <item>
+ <p>It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.</p>
+ <p>That means that to use feature <c>maybe_expr</c> in
+ Erlang/OTP 26, it is sufficient to enable it during
+ compilation.</p>
+ <p>In Erlang/OTP 27, feature <c>maybe_expr</c> will be
+ enabled by default, but it will be possible to disable
+ it.</p>
+ <p>
+ Own Id: OTP-18445</p>
+ </item>
+ <item>
+ <p>
+ Static supervisors are very idle processes after they
+ have started so they will now be hibernated after start
+ to improve resource management.</p>
+ <p>
+ Own Id: OTP-18474 Aux Id: PR-6895 </p>
+ </item>
+ <item>
+ <p>
+ Deprecates <c>dbg:stop_clear/0</c> because it is simply a
+ function alias to <c>dbg:stop/0</c></p>
+ <p>
+ Own Id: OTP-18478 Aux Id: GH-6903 </p>
+ </item>
+ <item>
+ <p>Support has been added in <c>ms_transform</c> for the
+ actions <c>caller_line/0</c>,
+ <c>current_stacktrace/0</c>, and
+ <c>current_stacktrace/1</c>.</p>
+ <p>
+ Own Id: OTP-18494 Aux Id: PR-6924 </p>
+ </item>
+ <item>
+ <p>The family of enumeration functions in module
+ <c>lists</c> has been extended with <c>enumerate/3</c>
+ that allows a step value to be supplied.</p>
+ <p>
+ Own Id: OTP-18495 Aux Id: PR-6943 </p>
+ </item>
+ <item>
+ <p>
+ Update Unicode to version 15.0.0.</p>
+ <p>
+ Own Id: OTP-18500</p>
+ </item>
+ <item>
+ <p>The regular expression library powering the <c>re</c>
+ module is likely to be changed in Erlang/OTP 27. See
+ <seeguide
+ marker="system/general_info:upcoming_incompatibilities#new_re_engine">Upcoming
+ Potential Incompatibilities</seeguide>.</p>
+ <p>
+ Own Id: OTP-18511 Aux Id: PR-7017 </p>
+ </item>
+ <item>
+ <p>Improved the performance of <c>sets:subtract/2</c>
+ when subtracting a small number of elements.</p>
+ <p>
+ Own Id: OTP-18515 Aux Id: GH-6990 </p>
+ </item>
+ <item>
+ <p>The linter will no longer raise warnings for
+ underspecified opaque types.</p>
+ <p>
+ Own Id: OTP-18518 Aux Id: GH-7015 </p>
+ </item>
+ <item>
+ <p>Added the new built-in type <c>dynamic()</c>
+ introduced in EEP-61, improving support for gradual type
+ checkers.</p>
+ <p>
+ Own Id: OTP-18522</p>
+ </item>
+ <item>
+ <p>
+ The by <c>gen_statem</c> previously used call proxy
+ process that was used for preventing late replies from
+ reaching the client at timeout or connection loss has
+ been removed. It is no longer needed since <i>process
+ aliases</i> take care of this, are used, and supported by
+ all Erlang nodes that an OTP 26 Erlang node can
+ communicate with.</p>
+ <p>
+ Own Id: OTP-18537 Aux Id: PR-7081 </p>
+ </item>
+ <item>
+ <p>Added the <c>argparse</c> module for simplified
+ argument handling in escripts and similar.</p>
+ <p>
+ Own Id: OTP-18558 Aux Id: PR-6852 </p>
+ </item>
+ <item>
+ <p>Added support for multiple line expressions and
+ navigation in the shell. Added new keybindings:</p>
+ <list> <item> navigate up (ctrl+up)/(alt+up) </item>
+ <item> navigate down (ctrl+down)/(alt+down) </item>
+ <item> insert newline in middle of line (alt+enter)
+ </item> <item> navigate top (alt+&lt;)/(alt+shift+up)
+ </item> <item> navigate bottom
+ (alt+&gt;)/(alt+shift+down) </item> <item> clear current
+ expression (alt+c) </item> <item> cancel search (alt+c)
+ </item> <item> opening editor on mac (option+o)/(alt+o)
+ </item> </list> <p>Modifies the prompt for new lines to
+ make it clearer that the prompt has entered multi-line
+ mode. Supports terminal with small window size, recommend
+ not go lower than 7 rows and 40 columns. Modifies the
+ search prompt to support multi-line statements. Redraw
+ the prompt after continuing from JCL menu. </p>
+ <p>
+ Own Id: OTP-18575 Aux Id: PR-7169 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
<section><title>STDLIB 4.3.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/stdlib/doc/src/shell.xml b/lib/stdlib/doc/src/shell.xml
index ba6dc771e9..187b719dd2 100644
--- a/lib/stdlib/doc/src/shell.xml
+++ b/lib/stdlib/doc/src/shell.xml
@@ -957,7 +957,7 @@ q - quit erlang
</func>
<func>
- <name name="start_interactive" arity="0" since="OTP @OTP-17932@"/>
+ <name name="start_interactive" arity="0" since="OTP 26.0"/>
<fsummary>Start the interactive shell</fsummary>
<desc>
<p>Starts the interactive shell if it has not already been started.
@@ -967,9 +967,9 @@ q - quit erlang
</func>
<func>
- <name name="start_interactive" arity="1" clause_i="1" since="OTP @OTP-17932@"/>
- <name name="start_interactive" arity="1" clause_i="2" since="OTP @OTP-17932@"/>
- <name name="start_interactive" arity="1" clause_i="3" since="OTP @OTP-17932@"/>
+ <name name="start_interactive" arity="1" clause_i="1" since="OTP 26.0"/>
+ <name name="start_interactive" arity="1" clause_i="2" since="OTP 26.0"/>
+ <name name="start_interactive" arity="1" clause_i="3" since="OTP 26.0"/>
<fsummary>Start the interactive shell</fsummary>
<desc>
<p>Starts the interactive shell if it has not already been started.
@@ -1075,7 +1075,7 @@ q - quit erlang
</func>
<func>
- <name name="whereis" arity="0" since="OTP @OTP-17932@"/>
+ <name name="whereis" arity="0" since="OTP 26.0"/>
<fsummary>Return the current shell process.</fsummary>
<desc>
<p>Returns the current shell process on the node where the
diff --git a/lib/stdlib/doc/src/timer.xml b/lib/stdlib/doc/src/timer.xml
index 3fceddbec6..75706f7b2d 100644
--- a/lib/stdlib/doc/src/timer.xml
+++ b/lib/stdlib/doc/src/timer.xml
@@ -112,7 +112,7 @@
</func>
<func>
- <name name="apply_repeatedly" arity="4" since="OTP @OTP-18236@"/>
+ <name name="apply_repeatedly" arity="4" since="OTP 26.0"/>
<fsummary>Spawn a process evaluating <c>Module:Function(Arguments)</c>
repeatedly at intervals of <c>Time</c>.</fsummary>
<desc>
@@ -341,9 +341,9 @@
</func>
<func>
- <name name="tc" arity="2" clause_i="2" since="OTP @OTP-18355@"/>
- <name name="tc" arity="3" clause_i="2" since="OTP @OTP-18355@"/>
- <name name="tc" arity="4" since="OTP @OTP-18355@"/>
+ <name name="tc" arity="2" clause_i="2" since="OTP 26.0"/>
+ <name name="tc" arity="3" clause_i="2" since="OTP 26.0"/>
+ <name name="tc" arity="4" since="OTP 26.0"/>
<fsummary>Measure the real time it takes to evaluate <c>apply(Module,
Function, Arguments)</c> or <c>apply(Fun, Arguments)</c>.</fsummary>
<type_desc variable="Time">In the specified <c>TimeUnit</c></type_desc>
diff --git a/lib/stdlib/doc/src/zip.xml b/lib/stdlib/doc/src/zip.xml
index 6ba9f4c212..5d5d83d270 100644
--- a/lib/stdlib/doc/src/zip.xml
+++ b/lib/stdlib/doc/src/zip.xml
@@ -507,7 +507,7 @@
</func>
<func>
- <name name="zip_get_crc32" arity="2" since="OTP @OTP-18159@"/>
+ <name name="zip_get_crc32" arity="2" since="OTP 26.0"/>
<fsummary>Extracts a crc32 checksum from an open archive.</fsummary>
<desc>
<p>Extracts one crc32 checksum from an open archive.</p>
diff --git a/lib/stdlib/src/stdlib.app.src b/lib/stdlib/src/stdlib.app.src
index a71ad0a954..2422a4def4 100644
--- a/lib/stdlib/src/stdlib.app.src
+++ b/lib/stdlib/src/stdlib.app.src
@@ -115,6 +115,6 @@
dets]},
{applications, [kernel]},
{env, []},
- {runtime_dependencies, ["sasl-3.0","kernel-@OTP-17932@","erts-13.1","crypto-4.5",
+ {runtime_dependencies, ["sasl-3.0","kernel-9.0","erts-13.1","crypto-4.5",
"compiler-5.0"]}
]}.
diff --git a/lib/stdlib/src/stdlib.appup.src b/lib/stdlib/src/stdlib.appup.src
index 13efc74d85..922f4f8767 100644
--- a/lib/stdlib/src/stdlib.appup.src
+++ b/lib/stdlib/src/stdlib.appup.src
@@ -19,24 +19,16 @@
%%
%% We allow upgrade from, and downgrade to all previous
%% versions from the following OTP releases:
-%% - OTP 23
%% - OTP 24
%% - OTP 25
+%% - OTP 26
%%
%% We also allow upgrade from, and downgrade to all
%% versions that have branched off from the above
%% stated previous versions.
%%
{"%VSN%",
- [{<<"^3\\.13$">>,[restart_new_emulator]},
- {<<"^3\\.13\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.13\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.13\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.14$">>,[restart_new_emulator]},
- {<<"^3\\.14\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.14\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.14\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.15$">>,[restart_new_emulator]},
+ [{<<"^3\\.15$">>,[restart_new_emulator]},
{<<"^3\\.15\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.15\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.15\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
@@ -56,16 +48,9 @@
{<<"^4\\.2$">>,[restart_new_emulator]},
{<<"^4\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^4\\.3$">>,[restart_new_emulator]},
- {<<"^4\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}],
- [{<<"^3\\.13$">>,[restart_new_emulator]},
- {<<"^3\\.13\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.13\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.13\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.14$">>,[restart_new_emulator]},
- {<<"^3\\.14\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.14\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.14\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.15$">>,[restart_new_emulator]},
+ {<<"^4\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^4\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
+ [{<<"^3\\.15$">>,[restart_new_emulator]},
{<<"^3\\.15\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.15\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.15\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
@@ -85,4 +70,5 @@
{<<"^4\\.2$">>,[restart_new_emulator]},
{<<"^4\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^4\\.3$">>,[restart_new_emulator]},
- {<<"^4\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}.
+ {<<"^4\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^4\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
diff --git a/lib/stdlib/vsn.mk b/lib/stdlib/vsn.mk
index d6706e69bf..a114206c29 100644
--- a/lib/stdlib/vsn.mk
+++ b/lib/stdlib/vsn.mk
@@ -1 +1 @@
-STDLIB_VSN = 4.3.1
+STDLIB_VSN = 5.0