Committed in r187916. Please go ahead and close the bug. Thanks for the patch!<div><br><div class="gmail_quote">On Mon, Aug 5, 2013 at 10:09 AM, Will Wilson <span dir="ltr"><<a href="mailto:will@indefiant.com" target="_blank">will@indefiant.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks Richard. Updated patch including context & FIXME attached ready for committing.<div><br></div>
<div>Cheers,</div><div>Will.</div></div><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On 5 August 2013 08:46, Richard Smith <span dir="ltr"><<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In future, please include some context in your unified diffs.<div><br></div><div>LGTM with a FIXME for improving the deserialization approach.<div>

<div><br><br><div class="gmail_quote">On Sun, Aug 4, 2013 at 9:58 AM, Will Wilson <span dir="ltr"><<a href="mailto:will@indefiant.com" target="_blank">will@indefiant.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks for the review. I've done a consistency pass and clang-formatted the patch.<div><br></div><div>


While I'd like to look into optimizing the deserialization approach I doubt I'll get a chance for some time. Can this will suffice until I (or someone else) gets a chance to optimize the approach? Let me know!</div>



<div><br></div><div>FYI, it's been working perfectly on a large body of MSVC code for the past week.<div><br><div>- Will.</div></div></div></div><div class="gmail_extra"><div><div><br><br><div class="gmail_quote">
On 28 July 2013 22:32, Richard Smith <span dir="ltr"><<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Sun, Jul 28, 2013 at 11:31 AM, Will Wilson <span dir="ltr"><<a href="mailto:will@indefiant.com" target="_blank">will@indefiant.com</a>></span> wrote:<br>



</div><div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi All,
<div><br></div><div>I've attached a preliminary patch for some feedback. This is my first foray into the serialization code so I've taken the simplest approach I could for now.</div><div><br></div><div>I've also moved LateParsedTemplateMap from the Parser to Sema. I did try and avoid this but plumbing the necessary calls via Sema to the Parser proved messy, and after considering the options I decided that moving the state to Sema was the lesser of the two evils.</div>





<div><br></div><div>Some may consider it a layering violation but as Sema effectively needs the data to finish its job and the state is nothing more than a couple of Decl pointers and a sequence of Tokens I thought it reasonable - after all Sema already deals with Tokens.</div>




</div></blockquote><div><br></div></div><div>I'm not a big fan of the layering here, but I agree that it's preferable to having Serialization know about the Parser.</div><div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr"><div>As I said the serialization approach I've taken is about as simplistic as possible. Lazy lookup/deserialization should really be performed on each FunctionDecl as they're instantiated rather than as a job lot for the whole TU (as currently implemented) - but I was hoping for some feedback before attempting that.</div>




</div></blockquote><div><br></div></div><div>That was the only substantial comment I had on the patch. Please also fix up the formatting (no line break before open brace, space before "&" not after -- clang-format-diff can fix these for you) and inconsistent naming (WriteLateParsedTemplates versus ReadLateParsedTemplateFunctions versus LateParsedTemplatedFunction).</div>




</div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div dir="ltr"><div><span style="color:rgb(68,68,68);font-family:Arial,Helvetica,sans-serif"><b>Indefiant Ltd.</b></span></div>



</div>
</font></span></div>
</blockquote></div><br></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div dir="ltr"><div><span style="color:rgb(68,68,68);font-family:Arial,Helvetica,sans-serif"><b>Indefiant Ltd.</b></span></div>

</div>
</font></span></div>
</blockquote></div><br></div>