<div dir="ltr"><div dir="ltr">On Wed, Apr 22, 2020 at 11:35 PM Manu <<a href="mailto:turkeyman@gmail.com">turkeyman@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><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"><div dir="ltr">On Wed, Apr 22, 2020 at 11:20 PM Steven Schveighoffer via Digitalmars-d <<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 4/22/20 8:04 AM, Manu wrote:<br>
> We have a compile time problem, and this is basically the cure.<br>
> Intuitively, people imagine CTFE is expensive (and it kinda is), but <br>
> really, the reason our compile times are bad is template instantiation.<br>
> <br>
> This DIP single-handedly fixes compile-time issues in programs I've <br>
> written by reducing template instantiations by near-100%, in particular, <br>
> the expensive ones; recursive instantiations, usually implementing some <br>
> form of static map.<br>
> <br>
> <a href="https://github.com/dlang/DIPs/pull/188" rel="noreferrer" target="_blank">https://github.com/dlang/DIPs/pull/188</a><br>
> <br>
> This is an RFC on a draft, but I'd like to submit it with a reference <br>
> implementation soon.<br>
> <br>
> Stefan Koch has helped me with a reference implementation, which has so <br>
> far gone surprisingly smoothly, and has shown 50x improvement in compile <br>
> times in some artificial tests.<br>
<br>
Yes please! Where is the reference implementation? I want to try some <br>
things out.<br></blockquote><div><br></div><div>The link is in the DIP.</div><div>Most tests we've done are working, except template instantiation expansion is not yet implemented: ie, Thing!(Tuple, x, y)...</div><div>That's got a lot of implementation baggage attached to it in DMD.</div></div></div></blockquote><div><br></div><div>Stefan worked out how to make the TemplateInstance case work. The branch is updated, and it's working now!!</div><div>If you wanna do some tests, it'd be really interesting to see how much it helps your code, and also help find edge cases and bugs.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div></div>