[erlang-questions] Can't run my command line Erlang program

Andrew Pennebaker <>
Fri Nov 15 22:34:49 CET 2013


Thanks, I might do that!

...so there's no way to tell dialyzer to just automatically add stdlibs to
plt?


On Fri, Nov 15, 2013 at 2:52 AM, Anthony Molinaro <
> wrote:

> You can add them to your .plt with something like
>
> # dialyzer --add_to_plt --apps crypto stdlib proper ...
>
> Which should get rid of the warnings.
>
> -Anthony
>
>
> On Nov 14, 2013, at 8:03 PM, Andrew Pennebaker <
> > wrote:
>
> Is there a way to clear the "unknown functions" from dialyzer output? They
> tend to distract from any warnings I'm trying to find.
>
> $ make lint
> erlc -Wall +debug_info ios7crypt.erl
> dialyzer *.beam --build_plt --quiet
> dialyzer *.beam
>   Checking whether the PLT /Users/andrew/.dialyzer_plt is up-to-date... yes
>   Proceeding with analysis...
> Unknown functions:
>   crypto:exor/2
>   erlang:binary_to_list/1
>   erlang:get_module_info/1
>   erlang:get_module_info/2
>   erlang:list_to_integer/2
>   erlang:now/0
>   getopt:parse/2
>   getopt:usage/2
>   init:get_plain_arguments/0
>   init:stop/0
>   io:format/1
>   io:format/2
>   io_lib:format/2
>   proper:forall/2
>   proper:quickcheck/1
>   proper_types:int/0
>   proper_types:list/1
>   random:seed/3
>   random:uniform/1
>   string:concat/2
>   string:substr/3
>  done in 0m0.17s
> done (passed successfully)
>
>
> On Thu, Nov 14, 2013 at 10:59 PM, Andrew Pennebaker <
> > wrote:
>
>> I think I was trying to account for errors in parsing integers. In any
>> case, I think my program still works fine without this check, especially as
>> we agree that dialyzer proves it's unnecessary.
>>
>>
>> https://github.com/mcandre/ios7crypt/commit/8d7f7760b15ffa48a5113356803f620f3935c256#diff-7f4a95d512e55854e52ac3744eaafeb1L52
>>
>>
>> On Thu, Nov 14, 2013 at 8:00 PM, Kostis Sagonas <>wrote:
>>
>>> On 11/15/2013 01:46 AM, Andrew Pennebaker wrote:
>>>
>>>> In particular, I'm confused what dialyzer doesn't like about line 60.
>>>>
>>>> 59  FirstOne = case is_binary(FirstTemp) of
>>>> 60    true -> binary_to_list(FirstTemp);
>>>> 61    false -> FirstOneRaw
>>>> 62  end,
>>>>
>>>> Not sure what's wrong. I tried using `_` instead of `false`, but got the
>>>> same warning. Should I use an if/else instead of case?
>>>>
>>>
>>> Dialyzer is telling you that it thinks FirstTemp will never be a binary
>>> in your program, so the case statement you have there is unnecessary. So,
>>> effectively it tells you that you can rewrite the code above to:
>>>
>>>       FirstOne = FirstOneRaw,
>>>
>>> The question is why do you expect that FirstTemp may be a binary at that
>>> point?
>>>
>>> Kostis
>>>
>>
>>
>>
>> --
>> Cheers,
>>
>> Andrew Pennebaker
>> www.yellosoft.us
>>
>
>
>
> --
> Cheers,
>
> Andrew Pennebaker
> www.yellosoft.us
>
> _______________________________________________
>
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>


-- 
Cheers,

Andrew Pennebaker
www.yellosoft.us
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20131115/595114a1/attachment.html>


More information about the erlang-questions mailing list