[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
-module(hot).
-compile(export_all).
sleep() ->
receive
after 3000 ->
true
end.
local_call() -> local_call.
remote_call() -> remote_call.
loop() ->
sleep(),
io:format("local_call: ~p~n", [local_call()]),
io:format("remote_call: ~p~n", [hot:remote_call()]),
loop().
%% 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