Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
The relevant terms were instances of Dialyzer's typesig analysis state
that were stored together with some "dynamic" constraints in a dict. Due
to sharing this was not apparent until we tried to copy the dictionary.
Initial debugging was by Björn Gustavsson.
|
|
|
|
Variable substitution was not generalizing any unknown variables.
|
|
Whenever a variable that could hold one of two or more possible closures was
used in a particular application, the application was assumed to fail if ONE of
the closures would fail in this application. This has been corrected to infer
failing application if ALL possible closures would fail in the particular
application.
|
|
|
|
|
|
Dialyzer does not normally emit warnings for functions that
implement non-terminating server loops. This detection failed
when some of the elements in an SCC terminated normally (being
for example list comprehensions or other generic anonymous
functions that were included in the SCC). This patch fixes that.
|
|
Dialyzer had a minor issue when the arguments of the built-in function
'or' had the fixed value 'false'.
This testcase should return no warnings:
-module(false_false).
-export([false_or/0]).
false_or() ->
false or false.
|
|
Nested list comprehensions are translated into strongly connected
funs but dialyzer ignored this. This meant that self-recursive
analysis was normally executed for each fun and the whole fixpoint
took some time to calculate. This patch adds every fun found in
constraint generation to the SCC that is under analysis and then
solves the SCC as a whole.
Possible issues:
- The returned dict contains more entries than usual. This
triggered a bug in contract checking that is dealt with is
this patch as well (dialyzer_contracts.erl).
- As it's not easy to tell apart real fun SCCs from simple funs it
performance might be hampered in the simple funs case.
While doing these changes, also added and strengthened some specs.
In addition, incorporated a modified patch by Ahmed Omar that fixes
a bug in dialyzer_analysis_callgraph module that kept the files of
only one selected directory in dialyzer's GUI.
|
|
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
|
|
|
|
|