tshort / StaticCompiler.jl

Compiles Julia code to a standalone library (experimental)
Other
490 stars 31 forks source link

Automatic LLVM installation #19

Closed aminya closed 4 years ago

aminya commented 4 years ago

Fixes https://github.com/tshort/StaticCompiler.jl/issues/7

[WIP]

codecov-io commented 4 years ago

Codecov Report

Merging #19 into master will decrease coverage by 0.02%. The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #19      +/-   ##
==========================================
- Coverage   91.11%   91.09%   -0.03%     
==========================================
  Files          12       12              
  Lines         439      449      +10     
==========================================
+ Hits          400      409       +9     
- Misses         39       40       +1
Impacted Files Coverage Δ
src/helpers/juliaconfig.jl 88.88% <0%> (-2.42%) :arrow_down:
src/helpers/standalone-exe.jl 94.73% <0%> (+0.79%) :arrow_up:
src/helpers/helpers.jl 85.71% <0%> (+2.38%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 51a2240...0956b47. Read the comment docs.

tshort commented 4 years ago

Interesting.

I think @maleadt is looking to do the same as part of LLVM.jl (based on a tidbit on Slack). If that happens, we might get it for free. He mentioned a concern of needing to match Julia's version of LLVM with the downloaded version. Not sure how that will happen.

aminya commented 4 years ago

That's a good point. I think it is better to move the code to LLVM.jl itself, so everyone one including us can use it.

maleadt commented 4 years ago

This is not going to work, for now. Adding a dependency on LLVM_jll requires you to pick a version, which in turn is going to pull in binaries according to that version, and not by matching the LLVM version that Julia provides. In that case, there will be incompatibilities between, e.g., the IR delivered by Julia and the LLVM library from LLVM_jll to process that IR.

aminya commented 4 years ago

But can't we find the LLVM version? https://github.com/JuliaLang/julia/blob/master/src/llvm-version.h

maleadt commented 4 years ago

That is unrelated, and not used by e.g. Pkg to select which package version of LLVM_jll to install.

aminya commented 4 years ago

I am going to close this here. If anything is going to be made, it should be in LLVM.jl or PackageCompiler.jl.