New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some tests fail #1868
Comments
Have you also run |
|
It gives a clue how bad is using "stock" LLVM. All of these fails are bugs fixed in LLVM trunk and there are patches back-ported to LLVM 10 and in some cases to LLVM 9. Every test from these list is responsible for different problem. It's probably better not to distribute ISPC, which fails at so many tests, than provide a broken ISPC to users. |
It's even better to switch to the |
ISPC doesn't build with the latest LLVM: #1870 |
Devel is not a good idea. LLVM API is constantly changing, we are tracking these changes and making the changes accordingly. Right now we build with LLVM trunk, but not building with past snapshots of trunk. Also, we are not fully validating with random trunk snapshot and they are know to be less stable. |
I think it might be better to include a private definition in patched llvm and when compile with stock llvm make a explicit compile error with explanation why it refuse to compile and link to a FAQ. |
@cloudhan I thought about it, but distro maintainers extremely don't like the idea to use any LLVM builds other than their canonical one. I see their reasons, but it still doesn't work well for us. In the past we were requiring LLVM build with assertions and dumps enabled, so distro maintainers were hacking our code to disable this checks. I probably end up adding what you suggested to be able to warn a user that the build is likely not passing all the tests and uses wrong LLVM build. |
You should also clearly document in README what version or revision of LLVM a particular release works with. |
We document LLVM version that we used for the specific release in ReleaseNotes. This is the best version to use (assuming all the patches are applied). We also maintain compatibility with other versions (for example for 1.14.1 we can build with LLVM 8.0-12.0), but this is mostly to keep compiler functional across multiple LLVMs to be able to analyze regressions. The range of "compatible versions" are defined here and you basically won't be able to build with completely unsupported version. But we don't validate ISPC against all the versions, just do basic testing. Also, for every release we publish a Dockerfile, which reproduces Linux build. It contains LLVM version. For example, here's Dockerfile for v1.14.1 release. |
If the build always assumes extra patches this means that ISPC isn't really compatible with these LLVM versions. This development model would most likely cause broken ISPC packages on most systems. |
That's why I don't like the idea of using "stock" LLVM build for ISPC build. One the bright side, most likely other packages, which depend on ISPC are mostly not affected. |
Closing as inactive. If this is still an issue please reopen. |
Version 1.14.1
FreeBSD 12.2
clang-10
The text was updated successfully, but these errors were encountered: