<div dir="ltr"><br><div class="gmail_quote">On Sun, Oct 5, 2008 at 2:18 AM, Bjorn Gustavsson <span dir="ltr"><<a href="mailto:bgustavsson@gmail.com">bgustavsson@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr"><div class="gmail_quote">2008/10/4 Edwin Fine <span dir="ltr"><<a href="mailto:erlang-questions_efine@usa.net" target="_blank">erlang-questions_efine@usa.net</a>></span><div class="Ih2E3d"><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div dir="ltr"><dl><dt>In the documentation for compiler-4.5.4, in the options it states</dt><dd><br></dd><dt><span>export_all</span>
</dt><dd>

Causes all functions in the module to be exported.</dd></dl>This does not explain that previously inlined functions become "uninlined" and are also exported. I suggest changing this to the following:<br><dl><dt>

</dt></dl></div></blockquote></div><div>Are you sure about "uninlined"?</div><div></div></div></div></blockquote><div><br>It was a bad explanation on my part to write "uninlined." What I meant
there is that a separate, standalone function is also created.  Before I wrote this email I had already looked at the assembler to check my facts and had seen
that the function was still inlined, but also created as a
separate function. Bad wording, sorry.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div dir="ltr"><div class="gmail_quote"><div>
<br></div><div>The expected behavior is that exported functions are still inlined, but still kept as a exported functions. Examining</div>
<div>the assembly code for the following module</div><div><br></div><div><div>-module(t).</div><div><br></div><div>-compile(export_all).</div><div>-export([t/0]).</div><div>-compile({inline,[{foo,0}]}).</div><div><br></div>

<div>t() -></div><div>    foo().</div><div><br></div><div>foo() -></div><div>    42.</div><div><br></div><div>it can be seen that the call to foo/0 has been replaced with 42 in t/0.</div></div><div class="Ih2E3d"><div>
</div></div></div></div></blockquote><div><br>Yes, agreed.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div dir="ltr"><div class="gmail_quote">
<div class="Ih2E3d"><div><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr"><dl><dt>
<span>export_all</span>
  </dt><dd>

Causes all functions in the module to be exported<b>, including functions that are declared as inline.</b></dd></dl>I think it's rather important to know this.</div></blockquote><div><br></div></div><div>Why? The functions are still being inlined as expected.</div>

<div></div></div></div></blockquote><div><br>My concern is that the extra separate function bodies take up unnecessary space, and if there are many functions included in many modules (as there are in my situation, where I have 5 inlined functions in an hrl file that gets included everywhere), it could create significant code bloat (say, 50 modules and 4 unused but exported functions per module). Granted, this is only likely to happen if export_all is applied in the compilation of all modules. And granted, the expansion of the inlined code is likely to cause much more bloat than the extra unused functions.<br>
<br>If you tell me this is not an issue, I will accept that. In any case, it wouldn't hurt to put this is the documentation, would it?<br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr"><div class="gmail_quote"><div>/Bjorn</div><div></div></div></div></blockquote><div><br>Regards,<br>Edwin Fin e<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr"><div class="gmail_quote"><div><br></div><div>-- <br></div></div>Björn Gustavsson, Erlang/OTP, Ericsson AB<br>
<div><br></div></div>
</blockquote></div><br></div>