<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/stdlib/test, branch OTP-22.0.3</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967' into maint-22</title>
<updated>2019-06-12T07:51:22+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-06-12T07:51:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=aa5a674421f5485bfd479ae4445ce66959dc1b75'/>
<id>aa5a674421f5485bfd479ae4445ce66959dc1b75</id>
<content type='text'>
* hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967:
  stdlib: Fix a bug concerning io_lib option 'chars_limit'

# Conflicts:
#	lib/stdlib/test/io_SUITE.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967:
  stdlib: Fix a bug concerning io_lib option 'chars_limit'

# Conflicts:
#	lib/stdlib/test/io_SUITE.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: Fix a bug concerning io_lib option 'chars_limit'</title>
<updated>2019-06-11T07:46:14+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-06-11T06:58:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=acc3b04fb0128fca1770a3823b6651f632d73939'/>
<id>acc3b04fb0128fca1770a3823b6651f632d73939</id>
<content type='text'>
See also https://bugs.erlang.org/browse/ERL-967.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See also https://bugs.erlang.org/browse/ERL-967.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957' into maint-22</title>
<updated>2019-05-29T11:24:46+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-05-29T11:24:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=797aca26c3bbf9004f8539433fc1a1a5c27db9fb'/>
<id>797aca26c3bbf9004f8539433fc1a1a5c27db9fb</id>
<content type='text'>
* hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957:
  stdlib: Fix a bug concerning io_lib option 'chars_limit'

# Conflicts:
#	lib/stdlib/test/io_SUITE.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957:
  stdlib: Fix a bug concerning io_lib option 'chars_limit'

# Conflicts:
#	lib/stdlib/test/io_SUITE.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: Fix a bug concerning io_lib option 'chars_limit'</title>
<updated>2019-05-29T11:13:28+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-05-28T07:38:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8bdcb96c3c33afd7f85fc2953970b6709f04a74a'/>
<id>8bdcb96c3c33afd7f85fc2953970b6709f04a74a</id>
<content type='text'>
See also https://bugs.erlang.org/browse/ERL-957.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See also https://bugs.erlang.org/browse/ERL-957.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hasse/stdlib/optimize_io_format/OTP-15705'</title>
<updated>2019-05-07T13:08:19+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-05-07T13:08:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3317a39043dbe7aaa41f04a892a695c105915a32'/>
<id>3317a39043dbe7aaa41f04a892a695c105915a32</id>
<content type='text'>
* hasse/stdlib/optimize_io_format/OTP-15705:
  stdlib: Optimize pretty printing of strings with chars_limit
  stdlib: Optimize printing of maps a bit
  stdlib: Optimize pretty printing of lists slightly
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/stdlib/optimize_io_format/OTP-15705:
  stdlib: Optimize pretty printing of strings with chars_limit
  stdlib: Optimize printing of maps a bit
  stdlib: Optimize pretty printing of lists slightly
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hasse/stdlib/check_spec_module/OTP-15563/ERL-845'</title>
<updated>2019-05-07T05:51:45+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-05-07T05:51:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fb9cd9534b94fe8c24bc5412205dd97577894b59'/>
<id>fb9cd9534b94fe8c24bc5412205dd97577894b59</id>
<content type='text'>
* hasse/stdlib/check_spec_module/OTP-15563/ERL-845:
  stdlib: Do not allow specs for functions in other modules
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/stdlib/check_spec_module/OTP-15563/ERL-845:
  stdlib: Do not allow specs for functions in other modules
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: Do not allow specs for functions in other modules</title>
<updated>2019-05-03T10:17:02+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-04-29T14:13:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=60e47cba35ff565a33b25ecb01e96881ab7fe0da'/>
<id>60e47cba35ff565a33b25ecb01e96881ab7fe0da</id>
<content type='text'>
See also https://bugs.erlang.org/browse/ERL-845.

[Kostis:]

My suggestion is that the compiler refuses to compile modules that
contain specs for functions that are not from this module. I do not
remember when / why this `feature' was introduced, but thinking about
it I see a lot of (ugly) semantics issues with it. For example, should
one be allowed to declare in the foo module that lists:flatten/1 takes
an integer() as an argument and returns a binary()? Should one be
allowed to declare a spec in some module m1 for a function of m2 that
is not defined in m2?

There are all kinds of checks that will need to be added to dialyzer
to protect itself from these semantics issues. The compiler already
refuses to compile modules that contain specs for non-existing
functions of the module. Similarly, it should refuse to compile
modules that contain specs for functions of other modules - unless it
can somehow check that these functions are indeed defined, but it is
not how the compiler currently works.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See also https://bugs.erlang.org/browse/ERL-845.

[Kostis:]

My suggestion is that the compiler refuses to compile modules that
contain specs for functions that are not from this module. I do not
remember when / why this `feature' was introduced, but thinking about
it I see a lot of (ugly) semantics issues with it. For example, should
one be allowed to declare in the foo module that lists:flatten/1 takes
an integer() as an argument and returns a binary()? Should one be
allowed to declare a spec in some module m1 for a function of m2 that
is not defined in m2?

There are all kinds of checks that will need to be added to dialyzer
to protect itself from these semantics issues. The compiler already
refuses to compile modules that contain specs for non-existing
functions of the module. Similarly, it should refuse to compile
modules that contain specs for functions of other modules - unless it
can somehow check that these functions are indeed defined, but it is
not how the compiler currently works.
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: Optimize pretty printing of strings with chars_limit</title>
<updated>2019-05-03T07:57:17+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-05-02T07:46:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cfb22ab07199e68aae1a69203a67ea1e4520f9bf'/>
<id>cfb22ab07199e68aae1a69203a67ea1e4520f9bf</id>
<content type='text'>
Avoid traversing all of string arguments when limiting the output with
the 'chars_limit' option.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid traversing all of string arguments when limiting the output with
the 'chars_limit' option.
</pre>
</div>
</content>
</entry>
<entry>
<title>unicode_util gc/1</title>
<updated>2019-05-02T05:19:26+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-05-02T05:19:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=adfd75bfdb9724daa6cc2215d7ae84b99397e8de'/>
<id>adfd75bfdb9724daa6cc2215d7ae84b99397e8de</id>
<content type='text'>
Could expand binary to list for to many elements.
Fix and add tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Could expand binary to list for to many elements.
Fix and add tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug string:slice/3 on bad input</title>
<updated>2019-04-30T10:39:24+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-04-30T10:39:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c53cb8cf9b446104d50f65a855684b4fe02c011e'/>
<id>c53cb8cf9b446104d50f65a855684b4fe02c011e</id>
<content type='text'>
Fixed bug in slice which wrongly could return &lt;&lt;&gt;&gt; for non-utf8 binary input.

Also give a better error reason when non-utf8 binaries are given as
input to some functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed bug in slice which wrongly could return &lt;&lt;&gt;&gt; for non-utf8 binary input.

Also give a better error reason when non-utf8 binaries are given as
input to some functions.
</pre>
</div>
</content>
</entry>
</feed>
