Subject: Re: [boost] [regression runner] Preference libstdc++ vs. libc++
From: Edward Diener (eldiener_at_[hidden])
Date: 2017-03-09 14:05:13
On 3/9/2017 8:36 AM, degski via Boost wrote:
> On 8 March 2017 at 11:47, Edward Diener via Boost <boost_at_[hidden]>
>> Thanks for the link, but it hardly qualifies as documentation for that
>> product. If it is like clang for Windows targeting VC++ it has a broken
>> emulation of the non-standard VC++ preprocessor which makes it more than
>> useless to me.
> ... about as useless as cl.exe (C1/C2) itself, I guess...
You have missed the point in regard to Boost. The point is:
1) VC++, although having a non-standard C++ preprocessor, will work with
Boost PP/VMD because of the workarounds programmed in those libraries to
deal with that compiler.
2) Clang targeting VC++ has a broken emulation of the non-standard VC++
preprocessor, which means it will not work with Boost PP/VMD.
3) Many Boost libraries use Boost PP for their preprocessing tasks.
4) Therefore many Boost libraries will not work with clang targeting VC++.
5) I have reported to clang bugs regarding their broken emulation of the
non-standard VC++ preprocessor, and they have completely ignored those
6) Therefore if clang/C2, or whatever is the latest name Microsoft has
given to their largely undocumented product, also contains the broken
emulation of the non-standard VC++ preprocessor, it will not work with
7) If there is a mode by which clang/C2 does not use the broken
emulation of the non-standard VC++ preprocessor, but instead implements
clang's usual C++ standard preprocessor, as Peter Dimov has suggested,
there is no Boost Build support for clang/C2 AFAICS to test this.
8) I am not willing to try to change Boost PP/VMD to work with clang's
broken emulation of the non-standard VC++ preprocessor. If anyone else
would like to do it, please go ahead. Getting Boost PP/VMD to work with
the non-standard VC++ preprocessor was enough work, as I am pretty sure
that Paul Mensonides who did that for Boost PP will attest also.
This is what I mean when I say that clang/C2 is currently useless to me
as someone who programs using Boost libraries. Personally it may be
great for VC++ developers despite its almost total lack of
documentation, but it is not ready for programming using Boost.
> The only
> usefullness of the Clang/C2 combo is the better debugging support it
> provides (as compared to Clang/LLVM)... Clang/C2 cannot beat Clang/LLVM, at
> best it's on par (but often not) and it's released version is lagging the
> clang/LLVM release schedule.... As/when used from the IDE, Clang/LLVM
> integrates and works well... makes programming in C++ on Windows much more
> pleasant (more comprehensible error messages, although the M$ STL doesn't
> always help in this regard) and often generates better code...
> As to docs: the exe's do have (clang) help screens, accessible from the
> command-line. General Clang/LLVM docs on the web-site...
> As to vapourware: I guess it is, since AFAIK it (Clang/C2) is still an
> 'experimental' project, and as such not supported (as in 'don't use in
> production code').