<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/dialyzer/src, branch OTP-17.2</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>[dialyzer] Use the  option 'dialyzer' to control the compiler</title>
<updated>2014-06-17T10:32:52+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2014-05-19T12:50:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=deca0a0687285af2c807715c9cc5de0a02c16ec2'/>
<id>deca0a0687285af2c807715c9cc5de0a02c16ec2</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 handling of literal records</title>
<updated>2014-06-17T10:32:51+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2014-05-13T06:31:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8498a35ce141c6e16feed198540b910b9475b2e2'/>
<id>8498a35ce141c6e16feed198540b910b9475b2e2</id>
<content type='text'>
This ticket is about records in Erlang code, and when to check the
fields against the (optional) types given when defining records.

Dialyzer operates on the Erlang Core format, where there are no trace
of records. The fix implemented is a Real Hack:

Given the new option 'dialyzer' erl_expand_records marks the line
number of records in a way that is undone by v3_core, which in turn
inserts annotations that can be recognized by Dialyzer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This ticket is about records in Erlang code, and when to check the
fields against the (optional) types given when defining records.

Dialyzer operates on the Erlang Core format, where there are no trace
of records. The fix implemented is a Real Hack:

Given the new option 'dialyzer' erl_expand_records marks the line
number of records in a way that is undone by v3_core, which in turn
inserts annotations that can be recognized by Dialyzer.
</pre>
</div>
</content>
</entry>
<entry>
<title>[dialyzer] Correct docs about options</title>
<updated>2014-06-03T06:53:51+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2014-05-28T11:21:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=0b0412383192ff40e80aec0ade4a8b0fe7e23e9b'/>
<id>0b0412383192ff40e80aec0ade4a8b0fe7e23e9b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>hipe: fix a bug concerning typed record fields</title>
<updated>2014-05-13T06:32:28+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2014-05-09T10:31:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=be579cbae4a9ab54ae0e56a8e729211c8e1db18f'/>
<id>be579cbae4a9ab54ae0e56a8e729211c8e1db18f</id>
<content type='text'>
When checking typed record fields Dialyzer failed to handle
types containing remote types.

Thanks to Erik Søe Sørensen for reporting this bug.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When checking typed record fields Dialyzer failed to handle
types containing remote types.

Thanks to Erik Søe Sørensen for reporting this bug.
</pre>
</div>
</content>
</entry>
<entry>
<title>Correct the name of a compiler option and fix the corresponding warnings</title>
<updated>2014-04-10T13:59:42+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2014-04-02T09:57:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f789906490ac7854baa08663b344422340df9739'/>
<id>f789906490ac7854baa08663b344422340df9739</id>
<content type='text'>
The option `warn_export_vars` was erroneously written as `warn_exported_vars`
in Makefiles of dialyzer and typer. As a result, `erlc` was silent about such
warnings (why on earth doesn't it complain on unrecognized options??) which
were corrected as part of this change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The option `warn_export_vars` was erroneously written as `warn_exported_vars`
in Makefiles of dialyzer and typer. As a result, `erlc` was silent about such
warnings (why on earth doesn't it complain on unrecognized options??) which
were corrected as part of this change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'ks/hipe-is_map-support/OTP-11831'</title>
<updated>2014-03-31T08:37:01+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-03-31T08:37:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=07eee76fa86019a922784099403ad3d9f0d958eb'/>
<id>07eee76fa86019a922784099403ad3d9f0d958eb</id>
<content type='text'>
* ks/hipe-is_map-support/OTP-11831:
  Reinstate native code compilation of cerl and erl_types
  Take out no_native compiler attribute
  Add support for the compilation of the is_map/1 guard to native code
  Add 'map' to the set of icode_type_test()s
  Support the translation of the is_map BEAM instruction to Icode
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ks/hipe-is_map-support/OTP-11831:
  Reinstate native code compilation of cerl and erl_types
  Take out no_native compiler attribute
  Add support for the compilation of the is_map/1 guard to native code
  Add 'map' to the set of icode_type_test()s
  Support the translation of the is_map BEAM instruction to Icode
</pre>
</div>
</content>
</entry>
<entry>
<title>Reinstate native code compilation of cerl and erl_types</title>
<updated>2014-03-28T16:47:10+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2014-03-28T16:47:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=918f0a26da2ad559bb674e19fce952c2564b9b45'/>
<id>918f0a26da2ad559bb674e19fce952c2564b9b45</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Report wall clock time instead of runtime when crashing</title>
<updated>2014-03-28T14:41:07+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2014-03-26T00:21:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=673ea91e8bdf0572bda2e13eb5afb1cfc1578870'/>
<id>673ea91e8bdf0572bda2e13eb5afb1cfc1578870</id>
<content type='text'>
On SMPs, the time reports that Dialyzer produced when crashing were
inaccurate. Fix this by using wall_clock rather than runtime.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On SMPs, the time reports that Dialyzer produced when crashing were
inaccurate. Fix this by using wall_clock rather than runtime.
</pre>
</div>
</content>
</entry>
<entry>
<title>Dialyzer now plays nicely with funs that come as "external" arguments</title>
<updated>2014-03-28T11:01:53+00:00</updated>
<author>
<name>Stavros Aronis</name>
<email>aronisstav@gmail.com</email>
</author>
<published>2014-03-26T17:06:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1a23202000716bbc430f1212c06d7ef622acdd3e'/>
<id>1a23202000716bbc430f1212c06d7ef622acdd3e</id>
<content type='text'>
Two steps are needed to make this work:

1) Avoid generating the additional "apply_constraint" in dialyzer_typesig by
   reporting every function argument as a potential external function (patch on
   dialyzer_dep).

   This will produce correct success typings for all functions in the test case,
   but dataflow would miss the key warnings that help identify the bugs.

2) Patch dialyzer_dataflow so that it uses the "handle just external" path as a
   fallback whenever there are any external calls. As a result, if we have info
   about some paths, then:

   a) use the old "handle known apply" code to mark these functions as used and
   b) ignore the generalized result and use the one found by typesig for the
      return value of the apply itself.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Two steps are needed to make this work:

1) Avoid generating the additional "apply_constraint" in dialyzer_typesig by
   reporting every function argument as a potential external function (patch on
   dialyzer_dep).

   This will produce correct success typings for all functions in the test case,
   but dataflow would miss the key warnings that help identify the bugs.

2) Patch dialyzer_dataflow so that it uses the "handle just external" path as a
   fallback whenever there are any external calls. As a result, if we have info
   about some paths, then:

   a) use the old "handle known apply" code to mark these functions as used and
   b) ignore the generalized result and use the one found by typesig for the
      return value of the apply itself.
</pre>
</div>
</content>
</entry>
<entry>
<title>Correct some type declarations</title>
<updated>2014-03-24T14:00:22+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2014-03-19T14:45:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5dd69f0c646d83c98a70975431db209e53aa0817'/>
<id>5dd69f0c646d83c98a70975431db209e53aa0817</id>
<content type='text'>
The types of some record fields were wrong. This file uses some module
local format of race warnings and when the analysis is done transforms
this format into the format of general dialyzer warnings. This change
fixes the type declaration of the race_warning field of the #races{}
record which was wrong.  In addition, declared the type of the state
field in some other record that, long ago, could not be declared since
mutually recursive types were not supported by Dialyzer's analysis.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The types of some record fields were wrong. This file uses some module
local format of race warnings and when the analysis is done transforms
this format into the format of general dialyzer warnings. This change
fixes the type declaration of the race_warning field of the #races{}
record which was wrong.  In addition, declared the type of the state
field in some other record that, long ago, could not be declared since
mutually recursive types were not supported by Dialyzer's analysis.
</pre>
</div>
</content>
</entry>
</feed>
