summaryrefslogtreecommitdiff
path: root/lib/dialyzer
diff options
context:
space:
mode:
authorErlang/OTP <otp@erlang.org>2023-02-14 14:02:51 +0100
committerErlang/OTP <otp@erlang.org>2023-02-14 14:02:51 +0100
commit587341d994f91af5b30483ee9434e932e3d7b802 (patch)
treee9e87bb3c2392ab395c7c7976d715cd594851027 /lib/dialyzer
parent8da90c85f1ff756ddd62973381038c072b9213e3 (diff)
downloaderlang-587341d994f91af5b30483ee9434e932e3d7b802.tar.gz
Prepare release
Diffstat (limited to 'lib/dialyzer')
-rw-r--r--lib/dialyzer/doc/src/notes.xml111
-rw-r--r--lib/dialyzer/vsn.mk2
2 files changed, 112 insertions, 1 deletions
diff --git a/lib/dialyzer/doc/src/notes.xml b/lib/dialyzer/doc/src/notes.xml
index 50c5d28c2e..18a07891e3 100644
--- a/lib/dialyzer/doc/src/notes.xml
+++ b/lib/dialyzer/doc/src/notes.xml
@@ -32,6 +32,117 @@
<p>This document describes the changes made to the Dialyzer
application.</p>
+<section><title>Dialyzer 5.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>When checking behaviors, Dialyzer could generate false
+ warning that a callback function did not have the correct
+ type according to the spec in the behavior
+ definition.</p>
+ <p>
+ Own Id: OTP-18237 Aux Id: GH-6221, PR-6243 </p>
+ </item>
+ <item>
+ <p>In a spec, <c>list(none())</c> used to mean
+ <c>none()</c>. It has now been corrected to mean the
+ empty list.</p>
+ <p>
+ Own Id: OTP-18276 Aux Id: GH-6333 </p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>Dialyzer has a new incremental mode that be invoked by
+ giving the <c>--incremental</c> option when running
+ Dialyzer. This new incremental mode is likely to become
+ the default in a future release.</p>
+ <p>Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model is
+ optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code, analysing
+ it again, and so on, without explicit reference to the
+ building and checking of a PLT.</p>
+ <p>In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of files
+ they care about, and Dialyzer does the legwork in terms
+ of deciding how to most efficiently report all of the
+ relevant warnings given the cached results it may already
+ have in the PLT (and if a PLT doesn't exist, incremental
+ mode will create one).</p>
+ <p>
+ Own Id: OTP-18188 Aux Id: PR-5997 </p>
+ </item>
+ <item>
+ <p>Dialyzer now produces clearer error messages for
+ contract violations.</p>
+ <p>
+ Own Id: OTP-18238 Aux Id: PR-6271 </p>
+ </item>
+ <item>
+ <p>The name of a built-in type can now be reused as the
+ name of type locally. That is useful when an OTP release
+ introduces a new built-in type; having the possibility to
+ redefine built-in types locally can make it easier to
+ maintain code that works in multiple OTP releases.</p>
+ <p>
+ Own Id: OTP-18282 Aux Id: GH-6132, PR-6335 </p>
+ </item>
+ <item>
+ <p>Dialyzer's overloaded domain warning becomes is
+ disabled by default, and can be enabled with the flag
+ <c>-Woverlapping_contract</c>.</p>
+ <p>Dialyzer used to issue a warning for overloaded
+ domains stating <c>"such contracts are currently
+ unsupported and are simply ignored"</c>. </p>
+ <p>These contracts are not "ignored" but rather, Dialyzer
+ takes the union of the overloaded domains. This means
+ that we lose the dependency from each corresponding input
+ to output type. Because of this, the warning is really
+ about not being able to establish a dependency between
+ the input and output types of each respective overloaded
+ function specification.</p>
+ <p>
+ Own Id: OTP-18342 Aux Id: GH-6117, PR-6654 </p>
+ </item>
+ <item>
+ <p>
+ Dialyzer has enabled (by default) warnings about unknown
+ types and functions.</p>
+ <p>
+ Prior to this change, Dialyzer had warnings about unknown
+ types and functions disabled (by default).</p>
+ <p>
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested by
+ the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the
+ <c>-Wunknown</c> function is enabled by default:</p>
+ <p>
+ <c>dialyzer moduler.erl -Wunknown -Wmissing_return</c></p>
+ <p>
+ <c>dialyzer moduler.erl -Wmissing_return</c></p>
+ <p>
+ Dialyzer has a new flag, <c>-Wno_unknown</c>. Its purpose
+ is to suppress warnings about unknown functions and
+ types.</p>
+ <p>
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: <c>dialyzer module.erl
+ -Wno_unknown</c></p>
+ <p>
+ Own Id: OTP-18439 Aux Id: GH-5695,PR-6822 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
<section><title>Dialyzer 5.0.4</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/dialyzer/vsn.mk b/lib/dialyzer/vsn.mk
index dc8f066894..a4dcbc90c3 100644
--- a/lib/dialyzer/vsn.mk
+++ b/lib/dialyzer/vsn.mk
@@ -1 +1 @@
-DIALYZER_VSN = 5.0.4
+DIALYZER_VSN = 5.1