[erlang-bugs] Undetected undefined remote function calls

Robert Virding robert.virding@REDACTED
Tue Dec 18 16:48:51 CET 2012


To clarify myself:

Calling foo:bar() is doing an intermodule call in which case detecting whether the function exists or not is left to run-time and it is irrelevant which module it is.

Robert

----- Original Message -----
> From: "Robert Virding" <robert.virding@REDACTED>
> To: "Kostis Sagonas" <kostis@REDACTED>
> Cc: "erlang-bugs" <erlang-bugs@REDACTED>
> Sent: Tuesday, 18 December, 2012 4:21:16 PM
> Subject: Re: [erlang-bugs] Undetected undefined remote function calls
> 
> Not really. You are making a fully qualified "external" call to a
> function in another module, which in this case happens to be the
> same module, and the function's existence is checked at run-time.
> Even if the function existed when you make the call you would not
> make an internal jump but go through the modules exported function
> table. Calling function foo/1 in the same module behaves differently
> if you call it foo(5) or if you call it module:foo(5). So in that
> sense it does make perfect sense to NOT complain about an undefined
> function.
> 
> It is similar to the difference in doing exit(boom) and exist(self(),
> boom).
> 
> Robert
> 
> ----- Original Message -----
> > From: "Kostis Sagonas" <kostis@REDACTED>
> > To: "erlang-bugs" <erlang-bugs@REDACTED>
> > Sent: Monday, 17 December, 2012 11:48:58 AM
> > Subject: [erlang-bugs] Undetected undefined remote function calls
> > 
> > Shouldn't the compiler be complaining that the module below
> > contains
> > an
> > undefined function?  (*)
> > 
> > %%===================
> > -module(foo).
> > -export([test/0]).
> > 
> > test() ->
> >    foo:bar().
> > %%===================
> > 
> > Kostis
> > 
> > (*) Or is this treated as a call to a "future" version of the
> > module?
> > :P
> > _______________________________________________
> > erlang-bugs mailing list
> > erlang-bugs@REDACTED
> > http://erlang.org/mailman/listinfo/erlang-bugs
> > 
> _______________________________________________
> erlang-bugs mailing list
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs
> 



More information about the erlang-bugs mailing list