oops, I forgot to provide the information about the VS2012 compiler bug I sent 
yesterday to Luc:


I used VC2008 until 12/2012 and my upgrade was hardware related so I decided to 
push it to the limits and to buy the VS2012 with the brand new XP support – 
until then it was a black box regarding quality reports. I am still very happy 
about all the ALM stuff in VS 2012, the analyzer and test tools etc etc. VS 
_IS_ indeed great, I consider it still as a great product.

Unfortunately the underlying compiler is a different story. I’m not talking 
about v110 vs v110_xp - that simply looks as a dirty hack, I built my own 
vcvars.bat to switch to v110_xp to console as easy as all the other VC profiles 
can do and everything is fine.

I had some strange compilation errors, and some part of my software crashed 
always which was running fine with the old compiler (I switched to Qt 5.0 which 
was a huge change compared with Qt 4, therefore I was not sure whether it is 
related to VS or related to Qt)
After weeks of digging, it revealed that the VS compiler has a bug in the code 
OPTIMIZER: If you enable optimization (/O2) and call toAsciiLower() inline, the 
optimizer creates wrong code. If you are lucky it crashes, if not: you are 
working with a nice byte-cocktail instead of true results. That’s difficult to 
track down. In my opinion, a fundamental function of the compiler fails. I 
wouldn’t call a compiler functional which can only produce reliable but slow 
debug code.

The workaround is to disabled the optimizer in the code via #pragma before and 
after each function calling toAsciiLower() [not very often called, therefore it 
slipped through MS’ quality assessment]. Therefore my 3rdParty-V8 src package 
contains icu with the suffix _fixed_ since I patched it to work around that bug.
It is very annoying to inspect all source codes before you can compile it, and 
since the underlying bug was not published in detail I cannot be sure that only 
toAsciiLower() is affected. That’s a bad situation if you have to trust your 
results. 
We reported the bug shortly after Update 1 was released. They did not fix it in 
2 major updates – and finally you get the fix in the next product for hundreds 
of dollars…

I have installed and played a bit with VS 2013 preview. It’s very nice, at a 
first glance there is not much difference to VS 2012 in the VC++ corner.
But they ship it with the next compiler version v120,  which has some great 
improvements:
-       The above bug is fixed (available in the preview)
-       It does support much more C++11 features lice variadic templates etc. 
(available in the preview)
-       After decades of user complains, MS moved: They implemented a bunch of 
C99 features, to allow to compile C projects like FFMPEG natively with VS!!! 
(available in the RTM)
-       They still support XP (v120_xp) (available in the preview)

To cut a long story short: VS 2013 will be available in autumn (maybe Oct?), 
and I will buy it ASAP to retire VS2012. 
My recommendation is: Save your money and wait some month to get VS2013.


Regards,
Torben

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=55286#55286





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to