<div dir="ltr">There is an atom caching algorithm that is used. It is described here: <a href="http://erlang.org/doc/apps/erts/erl_ext_dist.html#distribution_header">http://erlang.org/doc/apps/erts/erl_ext_dist.html#distribution_header</a><div><br></div><div>tldr; atoms are integers inside the same VM. atoms are strings when sending in-between nodes, but there is a cache that uses the integers of the remote node to send atoms.</div><div><br></div><div>Lukas<br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 6, 2018 at 5:13 PM, Glenn Kasten <span dir="ltr"><<a href="mailto:gkasten@google.com" target="_blank">gkasten@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I'm curious about the implementation of message-passing of atoms (symbols) <div>among unrelated runtime instances, in particular how the atoms are interned.</div><div>I would assume that among a single runtime instance, atoms are passed</div><div>as small integers rather than strings, yet that would not work between unrelated runtime instances</div><div>unless the atoms are interned to a consistent value per atoms.</div><div>For example, at first connection between runtimes, do the runtimes undergo</div><div>an atom negotiation protocol so they can agree on the interned values?</div><div>Or something else?</div><div><br><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://en.wikipedia.org/wiki/Symbol_(programming)" target="_blank">https://en.wikipedia.org/wiki/<wbr>Symbol_(programming)</a><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://en.wikipedia.org/wiki/String_interning" target="_blank">https://en.wikipedia.org/wiki/<wbr>String_interning</a><br></div><br class="gmail-m_3868595636441018001gmail-Apple-interchange-newline">Thanks,</div><div>Glenn</div><span class="gmail-HOEnZb"><font color="#888888"><div><br></div><div><br></div><div><br></div><div><br></div><div><br clear="all"><div><br></div>-- <br><div class="gmail-m_3868595636441018001gmail_signature">Glenn Kasten<br>Android Media<br>x35392<br></div>
</div></font></span></div>
<br>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div></div></div>