[erlang-questions] PLT for R15B

Bengt Kleberg <>
Thu Jan 5 11:51:12 CET 2012


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

On Thu, 2012-01-05 at 11:27 +0100, Olivier BOUDEVILLE wrote:
> 
> 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 
> 
> 
>  
> Envoyé par :
>  
> 
> 05/01/2012 10:53 
>         Veuillez répondre à
>     
> 
> 
> 
> 
>                 A
> undisclosed-recipients:; 
>                cc
>  
>             Objet
> Re:
> [erlang-questions] PLT for R15B
> 
> 
> 
> 
> 
> 
> 
> 
> 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
> 
> On Thu, 2012-01-05 at 10:37 +0100, Olivier BOUDEVILLE wrote:
> > 
> > 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.
> 
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
> 
> 
> 
> 
> 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.




More information about the erlang-questions mailing list