<p><br>
On Feb 24, 2014 1:15 AM, "Andrei Alexandrescu" <<a href="mailto:SeeWebsiteForEmail@erdani.org">SeeWebsiteForEmail@erdani.org</a>> wrote:<br>
><br>
> On 2/23/14, 4:07 AM, Walter Bright wrote:<br>
>><br>
>> <a href="http://wiki.dlang.org/DIP56">http://wiki.dlang.org/DIP56</a><br>
>><br>
>> Manu has needed always inlining, and I've needed never inlining. This<br>
>> DIP proposes a simple solution.<br>
><br>
><br>
> This makes inlining dependent on previously-seen code. Would that make parallel compilation more difficult?<br>
><br>
> I've always thought the obvious/simple way would be an attribute such as @forceinline and @noinline that applies to individual functions.<br>
><br>
><br>
> Andrei<br>
></p>
<p>GDC already has both of these as a compiler extended attribute (need to document these!!!)</p>
<p>import gcc.attribute;</p>
<p>@attribute("forceinline") ...</p>
<p>Being backend attributes, you can't enforce that these attributes actually take effect in user code (no static asserts!) - but you have some guarantee in that the backend will complain if it can't apply the attribute - this is good because the compiler will always produce a better diagnostic than some user static assert, always.</p>

<p>Regards<br>
-- <br>
Iain Buclaw</p>
<p>*(p < e ? p++ : p) = (c & 0x0f) + '0';</p>