Hi Daniel,
Thanks.
By the way, I still don't have all my local patches in for testing on
Windows (there are basically 3, one to add count + not to
test/Scripts, one to add my local search headers, and one to hack
around stdint.h), but the current number of test failures is ~60,
which isn't too bad. A lot of the remaining ones are STL iterator
pickyness which should be easy to eliminate if someone sits down to
work through them.
I still have the local patches you gave me before, which I was using,
somewhat successfully, though the three of use trying the tests saw some
different results. But that was a couple months ago, with me being pulled
onto other projects and vacation, so I'll see about running them again, if I
can figure out how I was running them before.
The way I am running them now is using the "clang-test" project in the
project files. That should be the "official" way for MSVC (from a
CMake build), and ideally will "just work" one day.
In fact, this is now working in buildbot too!
http://google1.osuosl.org:8011/waterfall
The buildbot of course has a higher test failure count because it
doesn't get my local patches. The current count is 73 after the fixes
for count/not which just went in.
I'll start looking at those test failures, hoping it's not too far over my head.
I suspect a number of the issues are trivial things regarding to the
use of the debug STL library, which is much pickier on Windows. For
example, all the static analyzer tests were failing due to code like
'&*t.end()'. Then there is a group of tests that use /dev/null, I will
probably fix this in 'lit'. Finally there are issues with standard
include files not being usable. Those are the three major classes of
failures I am aware of.
I do look forward to
having the full solution for running the tests.
Also, what happened with your patch to add MSVC search paths in a more
principled fashion? In my fuzzy memory I thought it had gone in, but I
didn't actually see it in the source.
Regarding the include path patch, it was kind of a hack job, mainly to
facilitate our development. I think you or someone raised some objection
about one part where when both vc80 and c90 are present (both the
VS80COMNTOOLS and VS90COMNTOOLS environment variables are set) and I used
the one Clang was built with. I kind of left it at that.
How do you think I should handle this case? Just use whichever is the later
VS release?
For now, anything is better than nothing. Using the version the tools
was built with would be a fine start I guess, and perhaps closer to
what the user would want.
I've enclosed a refreshed patch, in case you want to see it again. It still
has some hard-coded paths like before, which is also why it's kind of
hackish.
Unless someone objects, I think the MSVC parts are worth putting it.
I'm not sure about the Cygwin/MinGW changes, were these intentional?
- Daniel