AMDG On 03/09/2018 01:02 PM, John Maddock via Boost wrote:
The clang-win toolset is known to be broken. I don't know if it ever worked. I believe that clang-linux (using regular clang, not clang-cl) works for most platforms other than OSX. (Yes, I know, cleaning up this mess is on my todo list.)
Using:
using clang : : "C:/Program Files/LLVM/bin/clang-cl.exe" : <compatibility>vc14.1 ;
Results in:
$ ../../../b2 config_info clang C:\cygwin64\home\John\user-config.jam:47: Unescaped special character in argument <cxxflags>-std:c++latest ..\..\..\libs\log\build\Jamfile.v2:45: Unescaped special character in argument <define>$(flag)=1 M:/data/boost/boost/tools/build/src/build\configure.jam:288: in try-find-build *** argument error * rule log-check-result ( result ) * called with: ( ) * missing argument result M:/data/boost/boost/tools/build/src/build\configure.jam:86:see definition of rule 'log-check-result' being called M:/data/boost/boost/tools/build/src/build\configure.jam:391: in find-builds-raw
This is a bug in configure.jam. I think I know what's going on. (It still won't work after I fix this particular problem, but at least the error won't be quite as inscrutable.)
<snip>
Using:
using clang : : "C:/Program Files/LLVM/bin/clang.exe" ;
Does indeed seem to work OK, and as far as I can tell it's clang on top of msvc-14.1.
They're harmless for now, but will break at some unspecified time in the future, when I switch to the new lexer.
It would help a lot if the message said which characters were special and need escaping.
The full list is ":;{}=+?*()<>" (some of which are context sensitive) In general, the easiest fix is to quote the whole token. I'll see about adjusting the message. In Christ, Steven Watanabe