Skip to content
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

Consider provide dynamically linked precompiled binaries for macos and linux #2069

Closed
jneira opened this issue Aug 3, 2021 · 6 comments
Closed
Labels
CI Continuous integration type: enhancement New feature or request

Comments

@jneira
Copy link
Member

jneira commented Aug 3, 2021

  • As we are suggesting using it to workaround several issues: th problems in macos, compatibility across different linux versions, etc
  • Instead ask users to build hls from source in the target machine or enabling dynamic linking we can offer a direct link to the binary
  • We will continue using the static linked ones as default, for vscode extension dlownloads, ghcup, etc
    • We can consider distribute them auto later adding them as another alternative (with an option in the vscode extension, adding it in ghcup if it is compatible with the ghc used there //cc @hasufell)
  • Documenting the pros and contras (it would need a special ghc version with the bootstrap libraries dynamically linked???)
  • It seems they would not be needed in Windows and they would produce more problems than solutions, afaik

cc @pepeiborra

@jneira jneira added type: enhancement New feature or request CI Continuous integration labels Aug 3, 2021
@hasufell
Copy link
Member

hasufell commented Aug 3, 2021

What problems would a dynamic binary solve on linux?

On mac, you can't statically link anyway, so I don't understand what would change there.

@jneira
Copy link
Member Author

jneira commented Aug 3, 2021

From my deep ignorance of the linux world, would not be possible to make a hls binary portable across several linux versions linking it dynamically and building it in the more compatible linux version (the lowest one?)

@pepeiborra
Copy link
Collaborator

The motivation is best described in #2000 (comment)

Distributing dynamically linked binaries is complicated because you also need to distribute the Haskell package shared objects and any C dependencies. Moreover, you need to manipulate rpaths or use an LD_LIBRARY_PATH wrapper.

@jneira
Copy link
Member Author

jneira commented Aug 3, 2021

Oh, that does not sound good, thanks for noting it 🤔
As you commented elsewhere we would need someone with the required expertise to setup and maintain those distributions.

(As alternative not exclusive i've proposed add the possibility to build hls from source using ghcup: https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/201)

@jneira
Copy link
Member Author

jneira commented Aug 3, 2021

Ok so this is not a good idea given our actual context and there is an alternative, building from source, which could be make easier though ghcup.
Sorry for the noise and thanks for share your thoughts and knowledge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous integration type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants