<div dir="ltr"><div class="gmail_extra">Ah! Even more.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I just realized that workflow does not seem to depend on the mode.</div><div class="gmail_extra"><br></div><div class="gmail_extra">primLoad seems to be unconditionally processed, so I believe all modules in the primLoads of whatever boot script is used are loaded into the BEAM regardless of interactive/embedded.</div><div class="gmail_extra"><br></div><div class="gmail_extra">In a release, you eager load all modules NOT because embedded mode is on, but because the generated scripts lists them all in primLoads.</div><div class="gmail_extra"><br></div><div class="gmail_extra">What embedded does is basically preventing the error handler from falling back to the code server, here:</div><div class="gmail_extra"><br></div><div class="gmail_extra">    <a href="https://github.com/erlang/otp/blob/9ff28ca4095c7877f4f4a6cab4d691ba52f07372/lib/kernel/src/code_server.erl#L310-L318">https://github.com/erlang/otp/blob/9ff28ca4095c7877f4f4a6cab4d691ba52f07372/lib/kernel/src/code_server.erl#L310-L318</a></div><div class="gmail_extra"><br></div><div class="gmail_extra">That's an aha! moment for me. Because some docs imply that embedded mode means eager loading.</div></div>