[erlang-questions] PLT for R15B

19 views
Skip to first unread message

Olivier BOUDEVILLE

unread,
Jan 5, 2012, 4:37:17 AM1/5/12
to erlang-q...@erlang.org

Hi,

Just to report a few warnings that are output when generating the full PLT for R15B, as it may highlight a few minor defects:

"""
client_server.erl:34: Call to missing or unexported function ssl:seed/1
client_server.erl:49: Call to missing or unexported function ssl:peercert/2
client_server.erl:66: Call to missing or unexported function ssl:peercert/2
eunit_test.erl:302: Call to missing or unexported function eunit_test:nonexisting_function/0
xrc.erl:124: Call to missing or unexported function wxXmlResource:reload/2
Unknown functions:
  asn1rt_driver_handler:load_driver/0
  wxWindows:'Destroy'/1
  wx_core:quit/0
"""

On a side note, even before R15B, on some low-end computers (typically a 32-bit laptop with only 1GB of RAM, yet with some swap) we were not able anymore to generate that kind of full PLT, due to memory exhaustion.

As for eunit_test:nonexisting_function/0, this does not look at all as a defect, so it might be interesting to be able to hide those expected warnings one way or another (dialyzer suppression files anyone?).

Best regards,

Olivier.
---------------------------
Olivier Boudeville

EDF R&D : 1, avenue du Général de Gaulle, 92140 Clamart, France
Département SINETICS, groupe ASICS (I2A), bureau B-226
Office : +33 1 47 65 59 58 / Mobile : +33 6 16 83 37 22 / Fax : +33 1 47 65 27 13



Ce message et toutes les pièces jointes (ci-après le 'Message') sont établis à l'intention exclusive des destinataires et les informations qui y figurent sont strictement confidentielles. Toute utilisation de ce Message non conforme à sa destination, toute diffusion ou toute publication totale ou partielle, est interdite sauf autorisation expresse.

Si vous n'êtes pas le destinataire de ce Message, il vous est interdit de le copier, de le faire suivre, de le divulguer ou d'en utiliser tout ou partie. Si vous avez reçu ce Message par erreur, merci de le supprimer de votre système, ainsi que toutes ses copies, et de n'en garder aucune trace sur quelque support que ce soit. Nous vous remercions également d'en avertir immédiatement l'expéditeur par retour du message.

Il est impossible de garantir que les communications par messagerie électronique arrivent en temps utile, sont sécurisées ou dénuées de toute erreur ou virus.
____________________________________________________

This message and any attachments (the 'Message') are intended solely for the addressees. The information contained in this Message is confidential. Any use of information contained in this Message not in accord with its purpose, any dissemination or disclosure, either whole or partial, is prohibited except formal approval.

If you are not the addressee, you may not copy, forward, disclose or use any part of it. If you have received this message in error, please delete it and all copies from your system and notify the sender immediately by return message.

E-mail communication cannot be guaranteed to be timely secure, error or virus-free.

Bengt Kleberg

unread,
Jan 5, 2012, 4:52:46 AM1/5/12
to erlang-q...@erlang.org
Greetings,

You mention that you no longer get memory exhaustion when building a PLT
for OTP. Is this correct? When I did

dialyzer -build_otp -r lib/*-0/ebin

I run out of memory on a 4 GB Linux machine.


bengt

_______________________________________________
erlang-questions mailing list
erlang-q...@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions

Attila Rajmund Nohl

unread,
Jan 5, 2012, 5:01:20 AM1/5/12
to erlang-questions
2012/1/5, Olivier BOUDEVILLE <olivier.b...@edf.fr>:

> Hi,
>
> Just to report a few warnings that are output when generating the full PLT
> for R15B, as it may highlight a few minor defects:
>
> """
> client_server.erl:34: Call to missing or unexported function ssl:seed/1
> client_server.erl:49: Call to missing or unexported function
> ssl:peercert/2
> client_server.erl:66: Call to missing or unexported function
> ssl:peercert/2
> eunit_test.erl:302: Call to missing or unexported function
> eunit_test:nonexisting_function/0
> xrc.erl:124: Call to missing or unexported function wxXmlResource:reload/2

The client_server and the xrc seem to be not updated example code, so
I don't think it's a defect in OTP itself. Of course, it would be nice
to fix the examples. On the other hand I can't use the R15B dialyzer
on our product, it hangs. Actually it's quite hard to decide if it
hangs or just slow, but with R14B dialyzer finished in 10 minutes on a
particular set of files, but in R15B dialyzer doesn't finish in 3
hours, so I guess it's a hang. Is there a simple way to check if
dialyzer is still alive? It would make finding the minimal example
easier.

Olivier BOUDEVILLE

unread,
Jan 5, 2012, 5:27:03 AM1/5/12
to bengt....@ericsson.com, erlang-q...@erlang.org

Hi,

Not exactly, the computers we use routinely have at least 8GB of RAM, so we hadn't noticed anything until trying to do the same with older laptops.

I was thinking that due to the better compactness of 32-bit VMs and to the potential use of swap (I *suppose* it was used indeed) this could have worked on these computers, but even in a lean and mean context with as much memory freed as possible before launching Dialyzer, this could not do the trick.

Actually we integrated some time ago an automatic PLT generation into our custom script to install Erlang (from sources), this is why we ended up generating the PLT on different kinds of computers (not knowing to what extent we could build once for all a PLT for a given Erlang version; architectures and paths may differ, possibly causing issues).

It boils down in our case to run: $dialyzer_exec --build_plt -r $erlang_beam_root --output_plt $actual_plt_file

and indeed it is quite long (less than two hours here, though) but terminates (provided there is enough RAM of course).

Not sure such a PLT could be generated incrementally in a simple manner with the same global level of checking?

Best regards,

Olivier.
---------------------------
Olivier Boudeville

EDF R&D : 1, avenue du Général de Gaulle, 92140 Clamart, France
Département SINETICS, groupe ASICS (I2A), bureau B-226
Office : +33 1 47 65 59 58 / Mobile : +33 6 16 83 37 22 / Fax : +33 1 47 65 27 13



bengt....@ericsson.com
Envoyé par : erlang-quest...@erlang.org

05/01/2012 10:53

Veuillez répondre à
bengt....@ericsson.com

A
undisclosed-recipients:;
cc
erlang-q...@erlang.org
Objet
Re: [erlang-questions] PLT for R15B


Bengt Kleberg

unread,
Jan 5, 2012, 5:51:12 AM1/5/12
to erlang-q...@erlang.org
To build a OTP PLT on a 4 G machine I do a shell loop like this:

for ( i in lib/*0/ebin ) {
dialyzer -add_to_plt -r $i
}

I have not considered the possibility that this will make me miss some
warnings. Will it?

bengt

Reply all
Reply to author
Forward
0 new messages