<div dir="ltr">Thanks! "<span style="font-family:arial,sans-serif;font-size:13px">dialyzer --build_plt --apps erts kernel stdlib" fixes this. My Makefile now looks like:</span><div><font face="arial, sans-serif"><br>
</font></div><div><font face="arial, sans-serif"><a href="https://github.com/mcandre/mcandre/blob/master/erlang/Makefile">https://github.com/mcandre/mcandre/blob/master/erlang/Makefile</a><br></font><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">...would be nice if Erlang automatically generated this PLT as post-install.</span></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sat, Nov 16, 2013 at 6:26 AM, Kostis Sagonas <span dir="ltr"><<a href="mailto:kostis@cs.ntua.gr" target="_blank">kostis@cs.ntua.gr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 11/15/2013 10:34 PM, Andrew Pennebaker wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks, I might do that!<br>
<br>
...so there's no way to tell dialyzer to just automatically add stdlibs<br>
to plt?<br>
</blockquote>
<br></div>
Dialyzer is agnostic of what stdlib is, whether it contains a module named string or not, or for that matter whether you want to use the string module from stdlib or some other module named string in your application. So you need to tell it what applications to cache in your .dialyzer_plt when you build it for the first time.<br>
<br>
By the way, the sequence of commands you use below is not the one that I would use. Instead, I would first build a minimal PLT once:<br>
<br>
dialyzer --build_plt --apps erts kernel stdlib<br>
<br>
and then use this PLT to analyze the modules of my application:<br>
<br>
erlc -Wall +debug_info *.erl<br>
dialyzer *.beam<br>
<br>
You do not need to add your application's modules to the PLT to analyze them. If at some point you discover that you need more stuff from the OTP libraries to analyze your application (e.g. the 'random' module), you can add them incrementally by a command of the form:<br>
<br>
dialyzer --add_to_plt --apps crypto<br>
<br>
Hope it helps,<br>
<br>
Kostis<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
On Fri, Nov 15, 2013 at 2:52 AM, Anthony Molinaro<br></div><div class="im">
<<a href="mailto:anthonym@alumni.caltech.edu" target="_blank">anthonym@alumni.caltech.edu</a> <mailto:<a href="mailto:anthonym@alumni.caltech.edu" target="_blank">anthonym@alumni.<u></u>caltech.edu</a>>> wrote:<br>
<br>
You can add them to your .plt with something like<br>
<br>
# dialyzer --add_to_plt --apps crypto stdlib proper ...<br>
<br>
Which should get rid of the warnings.<br>
<br>
-Anthony<br>
<br>
<br>
On Nov 14, 2013, at 8:03 PM, Andrew Pennebaker<br></div>
<<a href="mailto:andrew.pennebaker@gmail.com" target="_blank">andrew.pennebaker@gmail.com</a> <mailto:<a href="mailto:andrew.pennebaker@gmail.com" target="_blank">andrew.pennebaker@<u></u>gmail.com</a>>><div class="im">
<br>
wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Is there a way to clear the "unknown functions" from dialyzer<br>
output? They tend to distract from any warnings I'm trying to find.<br>
<br>
$ make lint<br>
erlc -Wall +debug_info ios7crypt.erl<br>
dialyzer *.beam --build_plt --quiet<br>
dialyzer *.beam<br>
</blockquote></div></blockquote>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div></div>Cheers,<div><br></div><div>Andrew Pennebaker</div><div><a href="http://www.yellosoft.us" target="_blank">www.yellosoft.us</a></div>
</div>