<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/dialyzer/src, branch KennethL-patch-1</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>dialyzer: Optimize handling of a lot of warnings</title>
<updated>2018-01-22T14:27:30+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-01-17T13:09:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=bd873955db32c470f082c3629627a10c84c9c208'/>
<id>bd873955db32c470f082c3629627a10c84c9c208</id>
<content type='text'>
If the number of warnings is huge the '--'/2 operator is slow.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the number of warnings is huge the '--'/2 operator is slow.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Extend the map implementation's handling of ?unit</title>
<updated>2017-11-22T14:07:46+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-11-15T11:57:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=985f5a1fae38caed84cde8bc09f6f60e91710f20'/>
<id>985f5a1fae38caed84cde8bc09f6f60e91710f20</id>
<content type='text'>
The Maps implementation handles ?unit in more cases.

Exactly when t_is_none_or_unit() is to be called is not clear to me.
The added cases are about a map type being ?unit, but the key or the
value of an association can also be ?unit, but that is not always
checked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Maps implementation handles ?unit in more cases.

Exactly when t_is_none_or_unit() is to be called is not clear to me.
The added cases are about a map type being ?unit, but the key or the
value of an association can also be ?unit, but that is not always
checked.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Display error messages without call stack</title>
<updated>2017-11-10T15:36:02+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-11-10T14:00:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=ffd24a6d63b94c8871dc718204bc2cf805ceba73'/>
<id>ffd24a6d63b94c8871dc718204bc2cf805ceba73</id>
<content type='text'>
As of commit 12b379 many of the reasons displayed after
"Analysis failed with error:"
erroneously include a call stack. The bug is now corrected.

The bug was pointed out in
http://erlang.org/pipermail/erlang-questions/2017-October/093838.html.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of commit 12b379 many of the reasons displayed after
"Analysis failed with error:"
erroneously include a call stack. The bug is now corrected.

The bug was pointed out in
http://erlang.org/pipermail/erlang-questions/2017-October/093838.html.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update runtime deps to depend on new stdlib functionality</title>
<updated>2017-09-19T10:54:58+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2017-09-19T10:54:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5bc277e16e359072bba4c872de31ea486d77e042'/>
<id>5bc277e16e359072bba4c872de31ea486d77e042</id>
<content type='text'>
~tw and new string functions are new since OTP-20 (stdlib-3.4)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
~tw and new string functions are new since OTP-20 (stdlib-3.4)
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Improve check of unknown types</title>
<updated>2017-09-15T06:17:49+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-09-08T11:16:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=96cf13613c53b641cf7e8a45f83fb71809d6b336'/>
<id>96cf13613c53b641cf7e8a45f83fb71809d6b336</id>
<content type='text'>
The implementation of OTP-14218 (commit 6d3b38a) has a weakness: only
a very limited part of the type form is checked. This is now fixed:
types not used by specs are checked equally well as types used by
specs.

The new function erl_types:t_from_form_check_remote() checks usage of
remote types. It does not expand used local types, and has (almost) no
limits on depth and size.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The implementation of OTP-14218 (commit 6d3b38a) has a weakness: only
a very limited part of the type form is checked. This is now fixed:
types not used by specs are checked equally well as types used by
specs.

The new function erl_types:t_from_form_check_remote() checks usage of
remote types. It does not expand used local types, and has (almost) no
limits on depth and size.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Do not fix ETS tables when merging PLTs</title>
<updated>2017-09-12T12:38:59+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-09-11T11:11:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fbed19107051cb0830434a8ffe09f16e0ddbd944'/>
<id>fbed19107051cb0830434a8ffe09f16e0ddbd944</id>
<content type='text'>
This commit removes the call to ets:safe_fixtable/2 introduced in
commit 9458495. ETS memory can now be reclaimed while merging PLTs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit removes the call to ets:safe_fixtable/2 introduced in
commit 9458495. ETS memory can now be reclaimed while merging PLTs.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Improve handling of Unicode</title>
<updated>2017-09-05T09:02:26+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-07-03T07:06:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1e0a02473337ccfeebeab6b0691072197f571ed6'/>
<id>1e0a02473337ccfeebeab6b0691072197f571ed6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Fix a bug where merging PLT:s could lose info</title>
<updated>2017-08-24T10:20:23+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-08-24T08:09:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=94584953199d3fd22b5f89f59a430396fcffcfd1'/>
<id>94584953199d3fd22b5f89f59a430396fcffcfd1</id>
<content type='text'>
A missing call to ets:safe_fixtable/2 meant that information
was sometimes lost when merging PLT:s.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A missing call to ets:safe_fixtable/2 meant that information
was sometimes lost when merging PLT:s.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Run more of analyses in subprocess</title>
<updated>2017-06-13T11:40:26+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-05-16T12:23:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3f185989845ab0324b8a96988066b644d15ab791'/>
<id>3f185989845ab0324b8a96988066b644d15ab791</id>
<content type='text'>
Memory consumption is marginally reduced.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Memory consumption is marginally reduced.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Do not use two records for PLTs</title>
<updated>2017-06-13T11:40:26+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-04-13T13:53:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3ffed207dffdaad6924e3333f8ee30ac5920aa24'/>
<id>3ffed207dffdaad6924e3333f8ee30ac5920aa24</id>
<content type='text'>
Instead of two records, #plt{} with dict:s and #mini_plt{} with ETS
tables, one record is used for representing PLT:s in RAM.

The #mini_plt{} is the one now used throughout analyses, but it is
called #plt{}.

When writing the PLT to file, another record is used, #file_plt{} (as
before). When creating #file_plt{}, the #plt{} is deleted (it cannot
be used for further analyses).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of two records, #plt{} with dict:s and #mini_plt{} with ETS
tables, one record is used for representing PLT:s in RAM.

The #mini_plt{} is the one now used throughout analyses, but it is
called #plt{}.

When writing the PLT to file, another record is used, #file_plt{} (as
before). When creating #file_plt{}, the #plt{} is deleted (it cannot
be used for further analyses).
</pre>
</div>
</content>
</entry>
</feed>
