<div class="gmail_quote">On Wed, Jun 6, 2012 at 4:22 PM, Stephan T. Lavavej <span dir="ltr"><<a href="mailto:stl@exchange.microsoft.com" target="_blank">stl@exchange.microsoft.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
[Nathan Ridge]<br>
<div class="im">> Instead of asking them to get rid of it, why don't you ask them to fix it?<br>
<br>
</div>I did. When I'm elected World Controller in 2012, I'll actually get everything I ask for. Or else.<br>
<br>
[Chandler Carruth]<br>
<div class="im">> (I would encourage folks to at least keep STL on the to-line, or mail him directly as he may not read cfe-dev as closely as others...)<br>
<br>
</div>Thanks. I actually subscribed, then disabled mail delivery, since I wasn't planning to monitor cfe-dev for the MSVC bat-signal like I do for Boost. (I was planning to check the web archives for replies, and only later realized that I'd break threading if I didn't have any mails to reply to.)<br>

<div class="im"><br>
> The common problem is that standard library headers shipping with the compile *should* have access to the extensions.<br>
<br>
</div>Yeah. In VC's STL, we definitely attempt to remain portable except when we absolutely must use extensions (e.g. DLL stuff, type traits compiler hooks), but the CRT, ATL/MFC, windows.h, and other libraries definitely vary in their use of extensions.<br>

<div class="im"><br>
> The right approach is for Clang to not set flags when being built by Visual Studio that are flaky or problematic.<br>
<br>
</div>A few others that are hopefully not relevant:<br>
<br>
* /J is incredibly evil.<br>
* /RTCc breaks strictly conforming code by design (e.g. casts that truncate). I am barely willing to fix /RTCc problems in the STL when the fixes are trivial, but we don't run our tests with this.<br>
* /Wp64 is notoriously buggy (it has actually been command-line deprecated for three major versions: VC9-11). It suffers from false positives and false negatives, especially in templated code. The correct thing to do is to compile with a 64-bit-targeting compiler in order to catch 64-bit problems.<br>

<br>
[Benjamin Kramer]<br>
<div class="im">> The /Za flag was added to the build of clang not to encourage writing portable code but because an extension<br>
> was breaking perfectly valid c++ code for "pre-C++11 move emulation".<br>
<br>
</div>I wasn't aware of that (but it doesn't surprise me - in fact I bet it's the Evil Extension).<br>
<br>
However, I consider breaking real move semantics to be more severe than breaking simulated move semantics.<br>
<div class="im"><br>
> I find the decision to deprecate /Za worrisome because it is a useful feature, but that's your choice<br>
<br>
</div>It's actually the compiler team's choice (they have to worry about things like dev/test cost and breaking users; those aren't my costs and I love breaking users) - my preferences are certainly #1 remove extensions outright, #2 fix /Za, #3 remove /Za, #4 command-line deprecate /Za (as a prelude to #3), #5 notify people when we see them using /Za.<br>

<div class="im"><br>
> Coverage of building clang with msvc11 will probably decline sharply when it hits the market as setting up a build will require buying a license<br></div></blockquote><div><br></div><div>Is this more of a legal or technical issue?  Right now, you can get a C++ toolchain from the "free" tools by installing Visual Studio 2012 Express and then the Windows 8 SDK.  Both of these will presumably be free for RTM.  I just built LLVM with this combination.</div>
<div><br></div><div>The Win 8 SDK even states "<span style="color:rgb(42,42,42);font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:12px;line-height:16px">You can use the Windows SDK, along with your chosen development environment, to write Windows Metro style apps [...]; <i><b>desktop applications that use the native (Win32/COM) programming model; ..."</b></i></span></div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
</div>I don't actually know anything about this subject (and I won't until I can get VC11 RTM in a VM), but if you care about command-line builds only (as I do), I believe that Magic 8 Ball says Outlook Good.<br>
</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
> A few words to /W4: We experimented with having an automated builder using /W4 in the msvc8-days but it was very noisy and slowed down the build by 2x or so<br>
<br>
</div>Compared to /W3, or compared to no (!!!) warnings at all? That is news to me.<br>
<span class="HOEnZb"><font color="#888888"><br>
STL<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">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/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><br><div>Thanks,</div><div><br></div><div>Justin Holewinski</div><br>