-
Notifications
You must be signed in to change notification settings - Fork 60
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
Add Numba #685
base: master
Are you sure you want to change the base?
Conversation
Do not build shared libraries, because: a) it fails to build with an error: [llvm] [ 8%] Built target llvm-tblgen [llvm] Scanning dependencies of target intrinsics_gen [llvm] [ 8%] Building Intrinsics.gen... [llvm] ../../../bin/llvm-tblgen: error while loading shared libraries: libLLVMSupport.so: cannot open shared object file: No such file or directory b) it is not recommended by upstream, i.e. from docs/CMake.rst: **BUILD_SHARED_LIBS**:BOOL Flag indicating if shared libraries will be built. Its default value is OFF. Shared libraries are not supported on Windows and not recommended on the other OSes.
We also needed to put `llvm-config` into path during building.
Nice, +100 :) |
So that it matches the LLVM version we have in Hashstack.
What do the Julia/numba folks need? I think of them as our two primary LLVM customers :) |
That's right. Numba seems to need static libraries (via |
LLVM breaks its API at each feature release, so you probably want specific versions for each dependent (e.g. llvmlite). |
@pitrou do they break the API when going from 3.5.1 to 3.5.2, or do they only break it when going from 3.5 to 3.6? @ahmadia, in any case, it looks like we'll have to have llvm3.5, llvm3.4, etc., or maybe even llvm3.5.1, llvm3.5.2 etc. --- essentially we need a particular version for Numba, a particular version for Julia and a particular version for Clang. It should not clash, hopefully. |
Le 27/03/2015 16:16, Ondřej Čertík a écrit :
Only from 3.5 to 3.6. |
@pitrou thanks. Then it's really simple, we just need to have llvm3.4, llvm3.5, etc. The tough part is how to handle Julia, since I think it requires dynamic libraries. Since upstream recommends static, I would make static the default, and for Julia we can create a package llvm3.4-dynamic or something similar. |
@certik - Are we in the situation where one profile needs multiple versions of LLVM simultaneously installed? |
Yes, if you want to try Julia and Numba, from the same profile. But I don't think the profile itself needs to have both LLVM installed, it's just that Julia needs to be built with a different configuration of LLVM than Numba. So our profile variables can't solve the issue, it needs to be a separate package. |
Okay, this needs to be carefully managed, then. I'd like to avoid On Fri, Mar 27, 2015 at 3:11 PM, Ondřej Čertík [email protected]
|
Me and Mark Florisson discussed this issue in detail, but that's for future features. So you probably need "base_llvm", then specific "llvm_configured_for_julia" and "llvm_configured_for_numba" packages that extend it to override configuration (hopefully with better names that reflect the configuration difference and not who's using them). |
See commit logs. With this PR, one can execute the script from:
http://matthewrocklin.com/blog/work/2015/02/28/Ising/
I.e.: