Age | Commit message (Collapse) | Author |
|
Record field types have been modified due to commit 8ce35b2:
"Take out automatic insertion of 'undefined' from typed record fields".
|
|
|
|
The -dialyzer() attribute can be used for suppressing warnings in a
module by specifying functions or warning options. It can also be used
for requesting warnings in a module.
|
|
The pre-defined types array(), dict(), digraph(), gb_set(), gb_tree(),
queue(), set(), and tid() have been removed.
|
|
|
|
The types array(), dict(), digraph(), gb_set(), gb_tree(), queue(),
set(), and tid() have been deprecated. They will be removed in OTP 18.0.
Instead the types array:array(), dict:dict(), digraph:graph(),
gb_set:set(), gb_tree:tree(), queue:queue(), sets:set(), and ets:tid()
can be used. (Note: it has always been necessary to use ets:tid().)
It is allowed in OTP 17.0 to locally re-define the types array(), dict(),
and so on.
New types array:array/1, dict:dict/2, gb_sets:set/1, gb_trees:tree/2,
queue:queue/1, and sets:set/1 have been added.
|
|
It is now OK to inspect and modify the internals of opaque types within
the scope of the module.
The contracts are used for decorating types with opaqueness when it is
harmless to do so. The opaqueness is propagated by the typesig module
and also by the dataflow module.
A lot of details have been fixed or updated. In particular the modules
erl_types and erl_bif_types have been modified extensively.
The version in vsn.mk has been updated to 2.7. The reason is a
modification of #opaque{} in erl_types.
Dialyzer seems to be about five percent slower than it used to be.
|
|
The original implementation of the type signature solver is called 'v1'
and the newly introduced alternative implementation is called 'v2'.
It is possible to run just the one of the solvers (in case there is a
bug in for instance the v2 implementation) or both solvers
("--solver v1 --solver v2"). In the latter case an error is thrown if
the outcome differ.
|
|
|
|
The final version of the callgraph needs not be "reduced" for more efficient
copying.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Only the info and contracts dicts were neccessary for success typing
inference and these have been converted to ETS tables.
|
|
Dataflow analysis was structured to find SCCs of modules, without making
any use of the information that these were indeed SCCs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Warnings about wrong contract ranges are post-processed to be displayed in the
file/line that contains the contract, although they can also be emitted while
processing other modules. For this relocation to succeed the module that
contains the contract should be currently under analysis. If this is not the
case the warning is displayed in the file/line of the call that proves the
discrepancy in the contract.
|
|
The relevant commit is 8342fcf5395133a19d647f2ace606af9b7fc1732.
The old patch could emit warnings even for function that had a
problematic spec even without refinement. This warnings would
consume the relevant invalid spec warnings. This patch takes
care of this by ensuring that normal invalid spec messages are
emitted if the call that triggers the blame contract range
warning is in another module.
|
|
|
|
Applies to the specification of the return value of a function.
|
|
Bumped version number and wrote RELEASE_NOTES.
Included all changes described in release notes.
Some spec-related changes to some files in lib/hipe/cerl.
|
|
* ks/hipe:
dialyzer: Fix system_limit exception in race analysis
syntax_tools: Add types and specs for most exported functions
syntax_tools: Support the --enable-native-libs configure option
syntax_tools: Remove $Id$ annotations
dialyzer: New version for the R13B04 release
hipe: Miscellaneous additions
typer: New version for the R13B04 release
Fix a HiPE compiler bug evaluating an expression that throws system_limit
OTP-8460 ks/hipe
|
|
|
|
|