[erlang-questions] hot code reloading

t x txrev319@REDACTED
Sun Mar 2 09:40:09 CET 2014

Hi Bob,

  Thanks for the clarification.

I ran a simple test:

%% begin code


sleep() ->
    after 3000 ->

local_call() -> local_call.

remote_call() -> remote_call.

loop() ->
    io:format("local_call: ~p~n", [local_call()]),
    io:format("remote_call: ~p~n", [hot:remote_call()]),

%% end code

updating local_call/remote_call to
  local_call_updated / remote_call_updated .

And you're absolute right, the hot:remote_call() line called the new function.

Thanks for the clarification!

On Sun, Mar 2, 2014 at 12:10 AM, Bob Ippolito <bob@REDACTED> wrote:
> The remote call bar:hello() will always call the newest version of
> bar:hello/0. The calling module is irrelevant, even if the call happens from
> the old version of bar the newest version will always be called using that
> syntax. A local call from bar to hello() (or an equivalent closure) would
> use the current version referenced by that process.
> Modules are not linked together in any way so how or when they were compiled
> is not so relevant.
> On Saturday, March 1, 2014, t x <txrev319@REDACTED> wrote:
>> Hi,
>>   I'm reading Chapter 8 of Programming Erlang, and I want to verify if
>> my mental model of erlang code reloading is correct. My erlang is a
>> bit weak, so I'm going to use C++ notation.
>> https://gist.github.com/anonymous/9299344
>>   Is the above correct with respect to *compile* and *lookup* ?
>>   It seems to me the defining characteristics of erlang's code hot
>> reloading is:
>>   * we have an "old" and a "new"
>>   * the new becomes the old, and we kill all processes spawned by the old
>>   Suppose we have
>>   * module foo, module bar;
>>   * foo:hi(), refers to bar:hello();
>>   * we recompile bar; now, all foo's references to bar, uses the
>> _latest_ bar, not the bar that existed when foo was compiled
>> If I have misunderstood anything, please correct me.
>> Thanks!
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions

More information about the erlang-questions mailing list