aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stdlib/doc/src')
-rw-r--r--lib/stdlib/doc/src/calendar.xml9
-rw-r--r--lib/stdlib/doc/src/ets.xml6
-rw-r--r--lib/stdlib/doc/src/gen_event.xml2
-rw-r--r--lib/stdlib/doc/src/io.xml17
-rw-r--r--lib/stdlib/doc/src/notes.xml393
5 files changed, 26 insertions, 401 deletions
diff --git a/lib/stdlib/doc/src/calendar.xml b/lib/stdlib/doc/src/calendar.xml
index 8f2b6b747a..6b4fa7f98a 100644
--- a/lib/stdlib/doc/src/calendar.xml
+++ b/lib/stdlib/doc/src/calendar.xml
@@ -323,7 +323,9 @@
<type name="rfc3339_string"/>
<type name="rfc3339_time_unit"/>
<desc>
- <p>Converts an RFC 3339 timestamp into system time.</p>
+ <p>Converts an RFC 3339 timestamp into system time. The data format
+ of RFC 3339 timestamps is described by
+ <url href="https://www.ietf.org/rfc/rfc3339.txt">RFC 3339</url>.</p>
<p>Valid option:</p>
<taglist>
<tag><c>{unit, Unit}</c></tag>
@@ -378,7 +380,10 @@
<type name="rfc3339_string"/>
<type name="rfc3339_time_unit"/>
<desc>
- <p>Converts a system time into RFC 3339 timestamp.</p>
+ <p>Converts a system time into an RFC 3339 timestamp. The data format
+ of RFC 3339 timestamps is described by
+ <url href="https://www.ietf.org/rfc/rfc3339.txt">RFC 3339</url>.
+ The data format of offsets is also described by RFC 3339.</p>
<p>Valid options:</p>
<taglist>
<tag><c>{offset, Offset}</c></tag>
diff --git a/lib/stdlib/doc/src/ets.xml b/lib/stdlib/doc/src/ets.xml
index 305376a425..1995262145 100644
--- a/lib/stdlib/doc/src/ets.xml
+++ b/lib/stdlib/doc/src/ets.xml
@@ -49,14 +49,16 @@
associated with each key. A <c>bag</c> or <c>duplicate_bag</c> table can
have many objects associated with each key.</p>
+ <marker id="max_ets_tables"></marker>
<note>
<p>
The number of tables stored at one Erlang node <em>used</em> to
be limited. This is no longer the case (except by memory usage).
The previous default limit was about 1400 tables and
could be increased by setting the environment variable
- <c>ERL_MAX_ETS_TABLES</c> before starting the Erlang runtime
- system. This hard limit has been removed, but it is currently
+ <c>ERL_MAX_ETS_TABLES</c> or the command line option
+ <seealso marker="erts:erl#+e"><c>+e</c></seealso> before starting the
+ Erlang runtime system. This hard limit has been removed, but it is currently
useful to set the <c>ERL_MAX_ETS_TABLES</c> anyway. It should be
set to an approximate of the maximum amount of tables used. This since
an internal table for named tables is sized using this value. If
diff --git a/lib/stdlib/doc/src/gen_event.xml b/lib/stdlib/doc/src/gen_event.xml
index 51378a6b73..6170801e87 100644
--- a/lib/stdlib/doc/src/gen_event.xml
+++ b/lib/stdlib/doc/src/gen_event.xml
@@ -207,7 +207,7 @@ gen_event:stop -----> Module:terminate/2
</item>
<item>
<p>If the event handler is deleted later, the event manager
- sends a message<c>{gen_event_EXIT,Handler,Reason}</c> to
+ sends a message <c>{gen_event_EXIT,Handler,Reason}</c> to
the calling process. <c>Reason</c> is one of the following:</p>
<list type="bulleted">
<item>
diff --git a/lib/stdlib/doc/src/io.xml b/lib/stdlib/doc/src/io.xml
index f1037ec76b..d4a2713840 100644
--- a/lib/stdlib/doc/src/io.xml
+++ b/lib/stdlib/doc/src/io.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>1996</year><year>2017</year>
+ <year>1996</year><year>2018</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -332,11 +332,22 @@ Here T = [{attributes,[[{id,age,1.5},
{tag,{'PRIVATE',3}},
{mode,implicit}]
ok</pre>
+
+ <p>As from Erlang/OTP 21.0, a field width of value
+ <c>0</c> can be used for specifying that a line is
+ infinitely long, which means that no line breaks
+ are inserted. For example:</p>
+
+ <pre>
+5> <input>io:fwrite("~0p~n", [lists:seq(1, 30)]).</input>
+[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
+ok</pre>
+
<p>When the modifier <c>l</c> is specified, no detection of
printable character lists takes place, for example:</p>
<pre>
-5> <input>S = [{a,"a"}, {b, "b"}].</input>
-6> <input>io:fwrite("~15p~n", [S]).</input>
+6> <input>S = [{a,"a"}, {b, "b"}],
+ io:fwrite("~15p~n", [S]).</input>
[{a,"a"},
{b,"b"}]
ok
diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml
index b925fa3b02..e26c4aba74 100644
--- a/lib/stdlib/doc/src/notes.xml
+++ b/lib/stdlib/doc/src/notes.xml
@@ -31,399 +31,6 @@
</header>
<p>This document describes the changes made to the STDLIB application.</p>
-<section><title>STDLIB 3.5</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p><c>gen_statem</c> improvements.</p> <p> When using an
- exception that is valid but not allowed in a state enter
- call, the reason has been changed from
- <c>{bad_action_from_state_function,Action}</c> to
- <c>{bad_state_enter_action_from_state_function,Action}</c>.
- </p><p> Timer parsing has been improved. Many erroneous
- timeout tuples was not handled correctly. </p><p> The
- documentation has been updated, in particular the User's
- Guide and the pointer to it from the Reference Manual is
- much more obvious. </p>
- <p>
- Own Id: OTP-14015</p>
- </item>
- <item>
- <p>
- The type specifications for <c>file:posix/0</c> and
- <c>inet:posix/0</c> have been updated according to which
- errors file and socket operations should be able to
- return.</p>
- <p>
- Own Id: OTP-14019 Aux Id: ERL-550 </p>
- </item>
- <item>
- <p> File operations used to accept <seealso
- marker="kernel:file#type-name_all">filenames</seealso>
- containing null characters (integer value zero). This
- caused the name to be truncated and in some cases
- arguments to primitive operations to be mixed up.
- Filenames containing null characters inside the filename
- are now <em>rejected</em> and will cause primitive file
- operations to fail. </p> <p> Also environment variable
- operations used to accept <seealso
- marker="kernel:os#type-env_var_name">names</seealso> and
- <seealso
- marker="kernel:os#type-env_var_value">values</seealso> of
- environment variables containing null characters (integer
- value zero). This caused operations to silently produce
- erroneous results. Environment variable names and values
- containing null characters inside the name or value are
- now <em>rejected</em> and will cause environment variable
- operations to fail. </p> <p>Primitive environment
- variable operations also used to accept the <c>$=</c>
- character in environment variable names causing various
- problems. <c>$=</c> characters in environment variable
- names are now also <em>rejected</em>. </p> <p>Also
- <seealso
- marker="kernel:os#cmd/1"><c>os:cmd/1</c></seealso> now
- reject null characters inside its <seealso
- marker="kernel:os#type-os_command">command</seealso>.
- </p> <p><seealso
- marker="erts:erlang#open_port/2"><c>erlang:open_port/2</c></seealso>
- will also reject null characters inside the port name
- from now on.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-14543 Aux Id: ERL-370 </p>
- </item>
- <item>
- <p> Make <c>io_lib:unscan_format/1</c> work with pad char
- and default precision. </p>
- <p>
- Own Id: OTP-14958 Aux Id: PR-1735 </p>
- </item>
- <item>
- <p> The control sequence modifiers <c>t</c> and <c>l</c>
- can be used together in the same control sequence which
- makes it possible to have Unicode atoms and no detection
- of printable character lists at the same time. </p>
- <p>
- Own Id: OTP-14971 Aux Id: PR-1743 </p>
- </item>
- <item>
- <p> Fix a bug in the Erlang code linter: the check of
- guard expressions no longer returns <c>false</c> if the
- map syntax is used. The bug affected the Erlang shell,
- the Debugger, and other modules evaluating abstract code.
- </p>
- <p>
- Own Id: OTP-15035 Aux Id: ERL-613 </p>
- </item>
- <item>
- <p>
- A sys debug fun of type {Fun,State} should not be
- possible to install twice. This was, however, possible if
- the current State was 'undefined', which was mistaken for
- non-existing fun. This has been corrected.</p>
- <p>
- Own Id: OTP-15049</p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- The <c>gen_server</c> has gotten a new callback
- <c>handle_continue/2</c> for check pointing the state.
- This is useful at least when implementing behaviours on
- top of <c>gen_server</c> and for some start up scenarios.</p>
- <p>
- Own Id: OTP-13019 Aux Id: PR-1490 </p>
- </item>
- <item>
- <p> The semantics of timeout parameter
- <c>{clean_timeout,infinity}</c> to
- <c>gen_statem:call/3</c> has been changed to use a proxy
- process for the call. With this change
- <c>clean_timeout</c> implicates a proxy process with no
- exceptions. This may be a hard to observe
- incompatibility: in the presence of network problems a
- late reply could arrive in the caller's message queue
- when catching errors. That will not happen after this
- correction. </p><p> The semantics of timeout parameter
- <c>infinity</c> has not been changed. </p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-13073 Aux Id: PR-1595 </p>
- </item>
- <item>
- <p>A new logging API is added to Erlang/OTP, see the
- <seealso
- marker="kernel:logger"><c>logger(3)</c></seealso> manual
- page, and section <seealso
- marker="kernel:logger_chapter">Logging</seealso> in the
- Kernel User's Guide.</p>
- <p>Calls to <c>error_logger</c> are automatically
- redirected to the new API, and legacy error logger event
- handlers can still be used. It is, however, recommended
- to use the Logger API directly when writing new code.</p>
- <p>Notice the following potential incompatibilities:</p>
- <list> <item><p>Kernel configuration parameters
- <c>error_logger</c> still works, but is overruled if the
- default handler's output destination is configured with
- Kernel configuration parameter <c>logger</c>.</p> <p>In
- general, parameters for configuring error logger are
- overwritten by new parameters for configuring
- Logger.</p></item> <item><p>The concept of SASL error
- logging is deprecated, meaning that by default the SASL
- application does not affect which log events are
- logged.</p> <p>By default, supervisor reports and crash
- reports are logged by the default Logger handler started
- by Kernel, and end up at the same destination (terminal
- or file) as other standard log event from Erlang/OTP.</p>
- <p>Progress reports are not logged by default, but can be
- enabled with the Kernel configuration parameter
- <c>logger_progress_reports</c>.</p> <p>To obtain
- backwards compatibility with the SASL error logging
- functionality from earlier releases, set Kernel
- configuration parameter <c>logger_sasl_compatible</c> to
- <c>true</c>. This prevents the default Logger handler
- from logging any supervisor-, crash-, or progress
- reports. Instead, SASL adds a separate Logger handler
- during application start, which takes care of these log
- events. The SASL configuration parameters
- <c>sasl_error_logger</c> and <c>sasl_errlog_type</c>
- specify the destination (terminal or file) and severity
- level to log for these events.</p></item></list>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-13295</p>
- </item>
- <item>
- <p> Add functions
- <c>calendar:system_time_to_local_time/2</c> and
- <c>calendar:system_time_to_universal_time/2</c>. </p>
- <p>
- Own Id: OTP-13413</p>
- </item>
- <item>
- <p> Functions <c>rand:uniform_real/0</c> and
- <c>rand:uniform_real_s/1</c> have been added. They
- produce uniformly distributed numbers in the range <c>0.0
- =&lt; X &lt; 1.0</c> that are as close to random real
- numbers as Normalized IEEE 754 Double Precision allows.
- Because the random real number exactly <c>0.0</c> is
- infinitely improbable they will never return exactly
- <c>0.0</c>. </p><p> These properties are useful when you
- need to call for example <c>math:log(X)</c> or <c>1 /
- X</c> on a random value <c>X</c>, since that will never
- fail with a number from these new functions. </p>
- <p>
- Own Id: OTP-13764 Aux Id: PR-1574 </p>
- </item>
- <item>
- <p>
- Added maps:iterator/0 and maps:next/1 to be used for
- iterating over the key-value associations in a map.</p>
- <p>
- Own Id: OTP-14012</p>
- </item>
- <item>
- <p>Changed the default behaviour of <c>.erlang</c>
- loading: <c>.erlang</c> is no longer loaded from the
- current directory. <c>c:erlangrc(PathList)</c> can be
- used to search and load an <c>.erlang</c> file from user
- specified directories.</p> <p><c>escript</c>,
- <c>erlc</c>, <c>dialyzer</c> and <c>typer</c> no longer
- load an <c>.erlang</c> at all.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-14439</p>
- </item>
- <item>
- <p>
- Added new uri_string module to stdlib for handling URIs
- (RFC 3986).</p>
- <p>
- Own Id: OTP-14496</p>
- </item>
- <item>
- <p>
- Update Unicode specification to version 10.0.</p>
- <p>
- Own Id: OTP-14503</p>
- </item>
- <item>
- <p><c>filelib:wildcard()</c> now allows characters with a
- special meaning to be escaped using backslashes.</p>
- <p>This is an incompatible change, but note that the use
- of backslashes in wildcards would already work
- differently on Windows and Unix. Existing calls to
- <c>filelib:wildcard()</c> needs to be updated. On
- Windows, directory separators must always be written as a
- slash.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-14577</p>
- </item>
- <item>
- <p>
- The supervisor now stores its child specifications in a
- map instead of a list. This causes a significant
- improvement when starting many children under a
- non-simple_one_for_one supervisor.</p>
- <p>
- Own Id: OTP-14586</p>
- </item>
- <item>
- <p> The <c>base64</c> module is optimized. </p> <p> Note
- that the functions <c>encode/1</c>, <c>decode/1</c>, and
- <c>mime_decode/1</c> fail unless called with an argument
- of the documented type. They used to accept any
- <c>iodata()</c>. </p>
- <p>
- Own Id: OTP-14624 Aux Id: PR-1565 </p>
- </item>
- <item>
- <p> Add function <c>lists:search/2</c>. </p>
- <p>
- Own Id: OTP-14675 Aux Id: PR-102 </p>
- </item>
- <item>
- <p>
- uri_string module extended with functions for handling
- application/x-www-form-urlencoded query strings based on
- the HTML5 specification.</p>
- <p>
- Own Id: OTP-14747</p>
- </item>
- <item>
- <p> Add functions
- <c>calendar:rfc3339_to_system_time/1,2</c> and
- <c>calendar:system_time_to_rfc3339/1,2</c>. </p>
- <p>
- Own Id: OTP-14764</p>
- </item>
- <item>
- <p> The stack traces returned by the functions of the
- <c>erl_eval</c> module more accurately reflect where the
- exception occurred. </p>
- <p>
- Own Id: OTP-14826 Aux Id: PR 1540 </p>
- </item>
- <item>
- <p> Add options <c>atime</c>, <c>mtime</c>, <c>ctime</c>,
- <c>uid</c>, and <c>gid</c> to the <c>erl_tar:add/3,4</c>
- functions. </p>
- <p>
- Own Id: OTP-14834 Aux Id: PR 1608 </p>
- </item>
- <item>
- <p>Added <c>ets:whereis/1</c> for retrieving the table
- identifier of a named table.</p>
- <p>
- Own Id: OTP-14884</p>
- </item>
- <item>
- <p>
- Improved URI normalization functions in the uri_string
- module.</p>
- <p>
- Own Id: OTP-14910</p>
- </item>
- <item>
- <p> The new functions <c>io_lib:fwrite/3</c> and
- <c>io_lib:format/3</c> take a third argument, an option
- list. The only option is <c>chars_limit</c>, which is
- used for limiting the number of returned characters. The
- limit is soft, which means that the number of returned
- characters exceeds the limit with at most a smallish
- amount. If the limit is set, the functions
- <c>format/3</c> and <c>fwrite/3</c> try to distribute the
- number of characters evenly over the control sequences
- <c>pPswW</c>. Furthermore, the control sequences
- <c>pPwP</c> try to distribute the number of characters
- evenly over substructures. </p> <p> A modification of the
- control sequences <c>pPwW</c> is that even if there is no
- limit on the number of returned characters, all
- associations of a map are printed to the same depth. The
- aim is to give a more consistent output as the order of
- map keys is not defined. As before, if the depth is less
- than the number of associations of a map, the selection
- of associations to print is arbitrary. </p>
- <p>
- Own Id: OTP-14983</p>
- </item>
- <item>
- <p> Add functions <c>ordsets:is_empty/1</c> and
- <c>sets:is_empty/1</c>. </p>
- <p>
- Own Id: OTP-14996 Aux Id: ERL-557, PR-1703 </p>
- </item>
- <item>
- <p>
- Improve performance of <c>string:uppercase/1</c>,
- <c>string:lowercase/1</c> and <c>string:casefold/1</c>
- when handling ASCII characters.</p>
- <p>
- Own Id: OTP-14998</p>
- </item>
- <item>
- <p>External funs with literal values for module, name,
- and arity (e.g. <c>erlang:abs/1</c>) are now treated as
- literals. That means more efficient code that produces
- less garbage on the heap.</p>
- <p>
- Own Id: OTP-15003</p>
- </item>
- <item>
- <p>
- sys:statistics(Pid,get) did not report 'out' messages
- from gen_server. This is now corrected.</p>
- <p>
- Own Id: OTP-15047</p>
- </item>
- <item>
- <p>
- A sys debug function can now have the format
- {Id,Fun,State} in addition to the old {Fun,State}. This
- allows installing multiple instances of a debug fun.</p>
- <p>
- Own Id: OTP-15048</p>
- </item>
- <item>
- <p> The <c>lib</c> module is removed:</p> <list
- type="bulleted"> <item><c>lib:error_message/2</c> is
- removed.</item> <item><c>lib:flush_receive/0</c> is
- removed.</item> <item><c>lib:nonl/1</c> is
- removed.</item> <item><c>lib:progname/0</c> is replaced
- by <c>ct:get_progname/0</c>.</item>
- <item><c>lib:send/2</c> is removed.</item>
- <item><c>lib:sendw/2</c> is removed.</item> </list>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15072 Aux Id: PR 1786 </p>
- </item>
- <item>
- <p>
- Function <c>ets:delete_all_objects/1</c> now yields the
- scheduler thread for large tables that take significant
- time to clear. This to improve real time characteristics
- of other runnable processes.</p>
- <p>
- Own Id: OTP-15078</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>STDLIB 3.4.5</title>
<section><title>Fixed Bugs and Malfunctions</title>