[erlang-questions] Couple of questions ...

James Churchman jameschurchman@REDACTED
Tue Apr 12 00:37:05 CEST 2011


well the norm would be to do the usual import() in just the modules you need it then :-)
its not that much extra typing & keeps the code more understandable 

also how are you importing the code? if its an "include()" or "extends()" then can you specify the export in there? ( i have never tried )


On 11 Apr 2011, at 23:29, Mike Oxford wrote:

> Yep, but exporting it all over is just code-cruft.  I'd like to avoid it if possible.
> 
> 
> On Mon, Apr 11, 2011 at 3:27 PM, James Churchman <jameschurchman@REDACTED> wrote:
> > Unused function warning :
> 
> 
> As a dirty hack, you could export the function that it's complaining about. That will solve the problem.
> 
> The other option I can think of is to make a parse transform that removes the function. You could set an attribute like -remove([{  data_conn_make_inet_link,4  }), read it in a config file, hard code the fun/arity into the PT etc.. and then filter the AST before it gets parsed into the config file so thats its removed before the final compile. I assume that will remove the warning. I could code it for you if you like..
> 
> > "void"
> 
> As far as my understanding, just placing 'ok' atom at the end of the function it the standard. I think that the overhead of doing this is so minuscule you will never notice. Altho having a void may sound a neat idea it would break erlang. Erlang always has defined behaviour under all circumstances, with this "void" under a buggy piece of code, that accidentally sets a var from your void function, there would either need to be a new type of error thrown, or worse still erlang would behave in an unpredictable manor. Erlang is designed to have predictable behaviour even under faulty erlang code :-)
> 
> 
> James
> 
> 
> On 11 Apr 2011, at 23:09, Mike Oxford wrote:
> 
> > Unused function warning
> > =====================================
> > data_conn_make_inet_link(SrcIP, SrcPort, DstIP, DstPort) ->
> >     #inet_link{ src=#inet_src{ip=SrcIP, port=SrcPort}, dst=#inet_dst{ip=DstIP, port=DstPort}}.
> >
> > I want to put this in a "common header," but not every single file which uses the header will use
> > this particular call.
> >
> > It's old getting spammed with warnings about this.
> > It's poor to have to turn off warnings at a global level.
> >
> > May I propose prepending something to suppress warning about it not being used?  Maybe
> > using a leading "-"?    or %ifdef/#ifdef#pragma-style preprocessor controls?  -quiet-include("file"). ?
> >
> > -method()->  %% ignore "unused" warnings
> >
> > I see some discussion of this back around 2008, but I don't see any traction on it since.  Anyone
> > know if this was ever implemented in any form?
> >
> >
> >
> > "void"
> > =====================================
> > If I do not care about the return value of a method, can I do something to tell that to the compiler?
> > No reason to allocate return storage on the frame if I don't care about it anyway?  Or is this too trivial
> > in the scope of "Erlang copies everything everywhere" to be of consideration?
> >
> > _method()->  %% don't allocate storage or worry about returns
> >
> >
> > Thanks!
> >
> > -mox
> >
> >
> > _______________________________________________
> > erlang-questions mailing list
> > erlang-questions@REDACTED
> > http://erlang.org/mailman/listinfo/erlang-questions
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110411/c2924daf/attachment.htm>


More information about the erlang-questions mailing list