Skip to content
This repository has been archived by the owner on Mar 4, 2019. It is now read-only.

Project status and goals #32

Open
MatthiasKauer opened this issue Oct 15, 2017 · 6 comments
Open

Project status and goals #32

MatthiasKauer opened this issue Oct 15, 2017 · 6 comments

Comments

@MatthiasKauer
Copy link

Hi,
I am very excited about what I think you are trying to achieve with this project.
However, I am not sure if my impression is correct and I have trouble evaluating the maturity of this project.
Could you say a few words on the following questions?

  • Does static-julia mainly aim to provide speed by compiling ahead of time or is this more about the distribution of libraries and executables?
  • How portable is a library or executable created with this project? Does it still depend on libjulia?
  • Can I build a Python wheel library that doesn't require Julia to be installed on the user's computer with this project?
  • Is this an independent project or is it part of the effort for Julia 1.0? Are you "almost done" or "just starting out"?

Best regards,
Matthias

@MatthiasKauer
Copy link
Author

Ok, it seems like I have answered some of my questions:

o AG82w matt@hp840:~/dvl/static-julia (master)$ ldd builddir/hello 
        linux-vdso.so.1 =>  (0x00007ffebb7cd000)
        libhello.so => /home/matt/dvl/static-julia/builddir/libhello.so (0x00007f2663a05000)
        libjulia.so.0.6 => /opt/julia-903644385b/lib/libjulia.so.0.6 (0x00007f2663307000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2662f20000)
        libLLVM-3.9.so => /opt/julia-903644385b/lib/julia/libLLVM-3.9.so (0x00007f266111a000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2660f15000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2660d0d000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2660af0000)
        libstdc++.so.6 => /opt/julia-903644385b/lib/julia/libstdc++.so.6 (0x00007f266076f000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2660466000)
        libgcc_s.so.1 => /opt/julia-903644385b/lib/julia/libgcc_s.so.1 (0x00007f266024e000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555dbfa53000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2660033000)

So libjulia is still required right now.

Is it reasonable to attempt static linking or putting the shared libjulia file into the same directory for easier distribution?

@MatthiasKauer
Copy link
Author

Your forum post https://discourse.julialang.org/t/compiling-and-building-binaries-from-your-julia-code/5687 I stumbled upon also clears up many things.

@ViralBShah
Copy link
Member

The eventual goal is to be able to build standalone libraries and executables, and ship as part of a python wheel without needing Julia, or distributing a Julia package without source.

For now, it will live here, and we'll try to make sure it works well. I do hope that as julia gets better at this sort of thing, these capabilities should move into the julia codebase - but that is certainly post 1.0.

@MatthiasKauer
Copy link
Author

Thank you for getting back to me. I will be watching this project :)
Is this project currently waiting for features from 1.0?
Could we get standalone libs on 0.6 already? We'd need to build a static libjulia from the main repo first, right?

@ViralBShah
Copy link
Member

ViralBShah commented Oct 16, 2017

Currently, this will give you executables or shared libraries that depend on the libjulia.so and any other libraries such as BLAS/other dependencies, or any BinDeps dependencies your code may be using.

@MatthiasKauer
Copy link
Author

Ok. In other words, if we want static executables, there are a lot of build scripts to be adjusted to offer static libraries. In fact, the whole Julia ecosystem would have to offer a static library, right?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants