<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/stdlib/src, branch OTP-21.2</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Prepare release</title>
<updated>2018-12-10T10:07:05+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2018-12-10T10:07:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a2ca3bd78fc002dd1e6533c191e44092cc3aa949'/>
<id>a2ca3bd78fc002dd1e6533c191e44092cc3aa949</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: Let calendar:system_time_to_rfc3339() keep fractions</title>
<updated>2018-11-29T13:25:41+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-11-26T12:12:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8ec20295ba052e5666fc77b66c09445233943814'/>
<id>8ec20295ba052e5666fc77b66c09445233943814</id>
<content type='text'>
RFC3339 mentions in paragraph 5.1 that if certain conditions are
fulfilled, then sorting date and time strings results in a
time-ordered sequence. One of the conditions is that the strings must
have the same number of fractional second digits. This commits makes
sure this is indeed the case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
RFC3339 mentions in paragraph 5.1 that if certain conditions are
fulfilled, then sorting date and time strings results in a
time-ordered sequence. One of the conditions is that the strings must
have the same number of fractional second digits. This commits makes
sure this is indeed the case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix inadvertently suppressed warning for unused variable</title>
<updated>2018-11-21T05:10:16+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2018-11-21T04:55:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=df0ce3328e4ac64c0bd82fb10a879d4f0732b261'/>
<id>df0ce3328e4ac64c0bd82fb10a879d4f0732b261</id>
<content type='text'>
An external fun could inadvertently suppress warnings for
unused variables, such as in this example:

    bug() -&gt;
        BugVar = foo(),
        if true -&gt;
            fun m:f/1
        end.

There would be no warning that `BugVar` was unused.

The bug was introduced in ff432e262e652, which was the commit
that extended external funs to allow variables.

https://bugs.erlang.org/browse/ERL-762
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An external fun could inadvertently suppress warnings for
unused variables, such as in this example:

    bug() -&gt;
        BugVar = foo(),
        if true -&gt;
            fun m:f/1
        end.

There would be no warning that `BugVar` was unused.

The bug was introduced in ff432e262e652, which was the commit
that extended external funs to allow variables.

https://bugs.erlang.org/browse/ERL-762
</pre>
</div>
</content>
</entry>
<entry>
<title>beam_lib: Remove obsolete module() from the beam() type</title>
<updated>2018-10-19T11:02:36+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2018-10-19T03:52:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=131ff5fac7da80fe8080425182bf29f673ab301c'/>
<id>131ff5fac7da80fe8080425182bf29f673ab301c</id>
<content type='text'>
The type `beam()` in the `beam_lib` module is confusing:

    -type beam() :: module() | file:filename() | binary().

It says that the module name can be used to identify the BEAM module
to be accessed, but passing in the module name only works if the BEAM
file is located in the current working directory because the module
is not searched for in the code path.

The reason that it is allowed to pass in the module name as an atom is
for backward compatibility. A long time ago, atoms instead of strings
were used as filenames. For that reason, `filename` and `file` still
accept atoms as filenames (although the practice is frown
upon). `beam_lib` accepts an atom as the filename for the same reason.

To remove the confusion, remove `module()` from the type and the
mention of it in the documentation. Code that uses an atom as a
filename will still work, but Dialyzer will issue a warning.

https://bugs.erlang.org/browse/ERL-696
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The type `beam()` in the `beam_lib` module is confusing:

    -type beam() :: module() | file:filename() | binary().

It says that the module name can be used to identify the BEAM module
to be accessed, but passing in the module name only works if the BEAM
file is located in the current working directory because the module
is not searched for in the code path.

The reason that it is allowed to pass in the module name as an atom is
for backward compatibility. A long time ago, atoms instead of strings
were used as filenames. For that reason, `filename` and `file` still
accept atoms as filenames (although the practice is frown
upon). `beam_lib` accepts an atom as the filename for the same reason.

To remove the confusion, remove `module()` from the type and the
mention of it in the documentation. Code that uses an atom as a
filename will still work, but Dialyzer will issue a warning.

https://bugs.erlang.org/browse/ERL-696
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'john/compiler/deterministic-paths/OTP-15245/ERL-706' into maint</title>
<updated>2018-10-08T05:50:11+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2018-10-08T05:50:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4312fba6cf15a41b7331c2309104dd82f29be9d6'/>
<id>4312fba6cf15a41b7331c2309104dd82f29be9d6</id>
<content type='text'>
* john/compiler/deterministic-paths/OTP-15245/ERL-706:
  compiler: Forward +source flag to epp and fix bug in +deterministic
  epp: Allow user to set source name independently of input file name
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* john/compiler/deterministic-paths/OTP-15245/ERL-706:
  compiler: Forward +source flag to epp and fix bug in +deterministic
  epp: Allow user to set source name independently of input file name
</pre>
</div>
</content>
</entry>
<entry>
<title>epp: Allow user to set source name independently of input file name</title>
<updated>2018-10-05T09:47:57+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2018-10-05T08:05:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=16b93b98516df3fcc79a52847fa89fdda5b187c0'/>
<id>16b93b98516df3fcc79a52847fa89fdda5b187c0</id>
<content type='text'>
Note that this does *not* affect -include()'d files or the -file()
directive.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Note that this does *not* affect -include()'d files or the -file()
directive.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR-1962 from gomoripeti/ms_bit_size OTP-15343</title>
<updated>2018-10-04T10:11:11+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-10-04T10:11:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=0cb5456831a99e21f11e7331b4e2c56849827944'/>
<id>0cb5456831a99e21f11e7331b4e2c56849827944</id>
<content type='text'>
Document bit_size in match-specs and allow in fun2ms</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Document bit_size in match-specs and allow in fun2ms</pre>
</div>
</content>
</entry>
<entry>
<title>Update kernel, stdlib and sasl appups for OTP-21.2</title>
<updated>2018-09-27T10:15:19+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2018-09-27T10:14:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=26507e04fdc5c9910a24ddc44010c45d2d0027da'/>
<id>26507e04fdc5c9910a24ddc44010c45d2d0027da</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Document bit_size in match-specs and allow in fun2ms</title>
<updated>2018-09-25T14:49:22+00:00</updated>
<author>
<name>Péter Gömöri</name>
<email>gomoripeti@gmail.com</email>
</author>
<published>2018-09-25T14:49:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8f7c468bf851dbaba72bb230bae42034de7d2203'/>
<id>8f7c468bf851dbaba72bb230bae42034de7d2203</id>
<content type='text'>
It is already allowed in match-specs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is already allowed in match-specs.
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: Allow lists with binaries in the Format argument</title>
<updated>2018-09-17T11:19:30+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-09-17T08:33:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2d04d2bdf95c3a5f143ed2a5b9295fbf197b9b0b'/>
<id>2d04d2bdf95c3a5f143ed2a5b9295fbf197b9b0b</id>
<content type='text'>
As a consequence of some refactoring (OTP-14983, option
'chars_limit'), the Format argument of io_lib:format() no longer
accepts binaries in lists in Erlang/OTP 21.0.

Note that if Format is not of type io:format(), control sequences in
Format are ignored. This can result in unpredictable behaviour if, for
example, the output of io_lib:format() is used as Format: if the
output happens to be a string(), then control sequences are
interpreted, otherwise not.

A check that Format is of type io:format() will likely be introduced
in Erlang/OTP 22.0. That will probably mean work for some users, but
considering how unpredictable io_lib:format() is, we should try to fix
that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As a consequence of some refactoring (OTP-14983, option
'chars_limit'), the Format argument of io_lib:format() no longer
accepts binaries in lists in Erlang/OTP 21.0.

Note that if Format is not of type io:format(), control sequences in
Format are ignored. This can result in unpredictable behaviour if, for
example, the output of io_lib:format() is used as Format: if the
output happens to be a string(), then control sequences are
interpreted, otherwise not.

A check that Format is of type io:format() will likely be introduced
in Erlang/OTP 22.0. That will probably mean work for some users, but
considering how unpredictable io_lib:format() is, we should try to fix
that.
</pre>
</div>
</content>
</entry>
</feed>
