But do you actually need those changes that pavel is working on? That looks like a whole bunch of code that someone who just wants to print a demangled name won’t care about. How involved are bugs usually, because I’m imagining they’re a) usually just a couple lines change and b) pretty infrequent. Once the relicense happens, you just change the include path and include the real one.<br><br>I mean I agree it’s a bit ugly, but I don’t think it’s any more ugly than moving it to support and hacking up the file with ifdefs so that it both is and isn’t part of support at the same time. After all, we already have two vaguely similar demanglers in the tree. One in llvm and one in libcxxabi. So that doesn’t actually get any worse.<br><br>I pretty strongly dislike the alternative of moving demangler to support and “lying” about it being part of support :-:<br><div class="gmail_quote"><div dir="ltr">On Thu, Aug 16, 2018 at 5:53 PM Erik Pilkington via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">erik.pilkington added a comment.<br>
<br>
In <a href="https://reviews.llvm.org/D50828#1203493" rel="noreferrer" target="_blank">https://reviews.llvm.org/D50828#1203493</a>, @zturner wrote:<br>
<br>
> Another option is to simply move it into support and say that going forward<br>
> merges to libcxxabi might get more difficult. Perhaps this isn’t so bad<br>
> though. Isn’t the itanium demangler mostly complete? If the potential for<br>
> future changes to it is low, maybe this is an acceptable tradeoff.<br>
<br>
<br>
It's pretty much complete, but there is still going to be a steady stream of updates. Each release of C++ is likely to add a handful more constructs that need manglings, and often new attributes/extensions get custom manglings that need to be handled as well.<br>
<br>
> Then we<br>
> could just move it to support, use it and evolve it any way we want with no<br>
> restrictions, and when new functionality gets added to the itanium mangler<br>
> that needs to be port to libcxxabi, it’s a little more effort than a simple<br>
> copy paste because you have to think about it some.<br>
> <br>
> Thoughts?<br>
<br>
-1 from me, large-scale refactorings such as this, or Pavel's plans here: <a href="https://reviews.llvm.org/D50599" rel="noreferrer" target="_blank">https://reviews.llvm.org/D50599</a> would make updating/fixing bugs in the demangler a nightmare. I really don't want to have to implement every feature twice. Not to mention its just plain ugly to have two vaguely similar demanglers in the source tree.<br>
<br>
<br>
Repository:<br>
rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D50828" rel="noreferrer" target="_blank">https://reviews.llvm.org/D50828</a><br>
<br>
<br>
<br>
</blockquote></div>