<div dir="ltr"><br><br><div class="gmail_quote">On Thu, Apr 9, 2015 at 10:22 AM Richard <<a href="mailto:legalize@xmission.com">legalize@xmission.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
In article <CAOsfVvmev4Y7Q=Wr=<a href="mailto:8RJQFs49S94J0OE97-iJyaWRZVvCD60Jg@mail.gmail.com" target="_blank">8RJQFs49S94<u></u>J0OE97-iJyaWRZVvCD60Jg@mail.<u></u>gmail.com</a>>,<br>
    Manuel Klimek <<a href="mailto:klimek@google.com" target="_blank">klimek@google.com</a>> writes:<br>
<br>
> We actually went from a more expression templatey to a less expression<br>
> templatey design.<br>
<br>
Interesting!  So far, I feel like what I've been trying to match is<br>
completely expressable at compile-time and deferring things to runtime<br>
is making things slow.  This seems to be consistent with the findings<br>
of the imlpementors of OCLint and why they make the statement I quoted<br>
earlier.<br>
<br>
> On Tue, Apr 7, 2015, 3:31 PM Sean Silva <<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a>> wrote:<br>
><br>
> > Although I'm mostly an armchair spectator right now w.r.t. clang tooling<br>
> > stuff, I think that use cases like clang-query and in general the dynamic<br>
> > AST matchers suggests that expression templates aren't a very good solution<br>
> > because they will require reimplementing things from scratch for the<br>
> > "dynamic" case.<br>
<br>
When I look at a library like Boost.Spirit that heavily uses<br>
expression templates I don't see how I'm losing the dynamic case at<br>
all.  Maybe I'm misunderstanding what you're saying.<br>
<br>
> Sam has worked on making clang tidy use cases faster. I<br>
> expect in the end the right thing is to do less duplicate work which I<br>
> think we will be able to do with modules.<br>
<br>
While modules are nice, I don't think it's reasonable to expect that<br>
modules will be deployed over a significant chunk of the world's C++<br>
code anytime soon.  So it doesn't seem practical to say "modules will<br>
fix this".<br></blockquote><div><br></div><div>Well, it's a matter of prioritization.</div><div>1. expression templates will make the code significantly more complex and harder to maintain</div><div>2. we need benchmark results to show that they'll actually get something</div><div>3. we need to have enough engineering resources for the future to maintain the library</div><div><br></div><div>If you're willing to spend the time to prove that expression templates actually help real world benchmarks here without too much complexity, and if you can convince the current maintainers of the library that there will be enough hands on deck to support the implementation going forward, I'm happy to review patches :) (I'd say you mainly have to convince Sam, who has done most of the core changes lately)</div><div><br></div><div>Other than that it's a priorities game.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> > Regardless, I don't think that the primary bottleneck is not doing enough<br>
> > at compile time (of the matchers). Rather we aren't effectively indexing<br>
> > the underlying data set we are trying to query (right now, we're more like<br>
> > grep and less like google). [...] (a<br>
> > good example is using a trigram index to prune the search space for regexp<br>
> > matching <a href="http://swtch.com/~rsc/regexp/regexp4.html" target="_blank">http://swtch.com/~rsc/regexp/<u></u>regexp4.html</a>).<br>
> ><br>
> > * "multiple" here also scales numerically with the number of TU's. An<br>
> > index can avoid visiting certain TU's at all in many cases.<br>
<br>
Thanks for that link Sean, that was an interesting read.  I couldn't<br>
find it "live" on the web, but was able to get it via the wayback<br>
machine on <a href="http://archive.org" target="_blank">archive.org</a>.<br>
--<br>
"The Direct3D Graphics Pipeline" free book <<a href="http://tinyurl.com/d3d-pipeline" target="_blank">http://tinyurl.com/d3d-<u></u>pipeline</a>><br>
     The Computer Graphics Museum <<a href="http://ComputerGraphicsMuseum.org" target="_blank">http://<u></u>ComputerGraphicsMuseum.org</a>><br>
         The Terminals Wiki <<a href="http://terminals.classiccmp.org" target="_blank">http://terminals.classiccmp.<u></u>org</a>><br>
  Legalize Adulthood! (my blog) <<a href="http://LegalizeAdulthood.wordpress.com" target="_blank">http://LegalizeAdulthood.<u></u>wordpress.com</a>><br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div>