I haven't contributed to Clang yet, and I'm not familiar with IBM's anything really, but I feel like your proposal is beating around the bush a bit.<div><br></div><div>In my opinion, Clang is too deeply coupled and adheres too closely to the OOP style.</div><div><br></div><div>For example, the Sena class is over 10,000 lines, all by it's self.</div><div><br></div><div>That to me is an indication that it's trying to do too much.</div><div><br></div><div>I don't believe in hard limits, but my modules are around 1000-1200 lines total, including both the struct definitions and function definitions that operate on them.</div><div><br></div><div>Hell, my (slightly minimal but not overly so) Unicode library which supports UTF-8, UTF-16, and UTF-32 is only about 3200 lines, and it includes a string formatting subsystem and String to Number and Number to String subsystems...</div><div><br></div><div>My point is that Clang's abstraction layers aren't broken down in the correct places, and it could use some serious refactoring.</div><div><br></div><div><br><br>On Sunday, January 6, 2019, Bouman, N.J. via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Clang developers,<br>
<br>
In order to get better re-compilation speeds for heavily templated code,<br>
it is sometimes suggested to move the definition of a template out of a header file, and use explicit instantiation.<br>
<br>
It seems that IBM’s C++ compiler features a technique (“tempinc”) that can generate such explicit instantiations automatically, as long as the developer adheres to some rules. See, for example: <a href="http://www.msg.ucsf.edu/local/programs/IBM_Compilers/C:C++/html/compiler/ref/tutmplat5.htm" target="_blank">http://www.msg.ucsf.edu/local/<wbr>programs/IBM_Compilers/C:C++/<wbr>html/compiler/ref/tutmplat5.<wbr>htm</a><br>
<br>
Note that I have never used the IBM compiler and its “tempinc” technique myself,<br>
but I was wondering whether people on this list are familiar with and/or have experience with this technique and whether it has been considered for inclusion into Clang (or why it was rejected).<br>
<br>
Kind regards,<br>
Niek J Bouman<br>
<br>
______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</blockquote></div>