<div dir="ltr">On the one hand, I like this proposal. But that is because every system I care about has or can easily acquire a GCC 4.9 baseline compiler. So when I imagine that you want to move to GCC 5 instead of GCC 4.9, I get extremely nervous.<div><br></div><div>I *do* think we should be prepared to move the baseline forward though. We picked GCC 4.7 a *very* long time ago.</div><div><br></div><div>I understand that there are systems without GCC 4.9 now, but there were systems without GCC 4.7 when we raised the minimum requirements to that version. For me, the question is more how easily users on those systems could update. If it is reasonably straight forward, I would be fine moving the baseline up. If there are reasons why installing a newer GCC would be very hard, that would be more concerning to me.</div><div><br></div><div>I do think moving past GCC 4.9 presents a unique challenge due to the ABI break which took place between GCC 4.9 and GCC 5. For example, for me, "just installing" a newer version of GCC works great right up until GCC 5 where it starts to break for ABI reasons.</div><div><br></div><div><br></div><div>However, once all of that is settled and we know what the baseline compilers are, I'm 100% in favor of adopting essentially all of the features they support and that work reliably. If we can get most of C++14, great, let's do it. To Pete's point, I do think C++17 has more exciting features in the pipeline, but I think we should take a greedy approach here, and adopt as many features as are beneficial as early as we can get away with given the host compilers we support.</div><div><br></div><div>Which means the primary question is about the host compilers IMO.</div><div><br></div><div>-Chandler</div><div><div><br><div class="gmail_quote"><div dir="ltr">On Sat, Oct 1, 2016 at 10:33 PM Zachary Turner via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">A thread was started over the summer to discuss the timeline for bumping LLVM up to Visual Studio 2015 to enable the use of various new language features.  Currently the ETA for this is sometime in mid-October, so within 2-3 weeks.<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">With this happening imminently, I thought it would be worth tossing this out there and seeing what people think.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">With VS on 2015, the major lagging compiler is going to be GCC.  Our minimum GCC requirement is 4.7, which is quite old (almost 4 years for anyone keeping count).  What are the challenges with pushing this forward?</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">With VS2015, the biggest remaining missing C++14 features are variable templates, sized allocation, and extended constexpr.  But it gains generic lambdas, init-captures, decltype(auto) return, and auto return without requiring the trailing -> decltype syntax.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">While GCC doesn't claim to "fully" support C++14 until 5.2 (which is only about 1 year old), you can get all of the above features with GCC 4.9</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">So if we're willing to allow "partial" C++14 support in LLVM (i.e a whitelisted set of features), we may be able to get many of the most useful features by going to GCC 4.9, which is still a good 2.5 years old.  </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">One potentially added benefit of this is that GCC supports <regex> in 4.9.  This might allow us to kill of llvm::Regex in favor of standardizing on std::regex, as GCC is currently the only supported compiler without a regex implementation.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Thoughts?</div></div>
_______________________________________________<br class="gmail_msg">
LLVM Developers mailing list<br class="gmail_msg">
<a href="mailto:llvm-dev@lists.llvm.org" class="gmail_msg" target="_blank">llvm-dev@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="gmail_msg">
</blockquote></div></div></div></div>