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

Unable to install HSL extension in Windows #217

Closed
IlyaOrson opened this issue Aug 31, 2022 · 7 comments · Fixed by #263
Closed

Unable to install HSL extension in Windows #217

IlyaOrson opened this issue Aug 31, 2022 · 7 comments · Fixed by #263

Comments

@IlyaOrson
Copy link

I settled the env variable pointing to the HSL source location but could not install nor build the MadNLPHSL extension.

pkg> build MadNLPHSL
    Building MadNLPHSL  `C:\Users\ilyao\.julia\scratchspaces\44cfe95a-1eb2-52ea-b672-e2afdf69b78f\78742b9e9faaba0ade5617cdaca5e34f63c5fa8e\build.log`
ERROR: Error building `MadNLPHSL`:
ERROR: LoadError: Unable to open libLLVM!
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:35
  [2] (::BinaryProvider.var"#open_libllvm#124")()
    @ BinaryProvider C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\PlatformNames.jl:652
  [3] detect_cxx11_string_abi()
    @ BinaryProvider C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\PlatformNames.jl:655
  [4] detect_compiler_abi()
    @ BinaryProvider C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\PlatformNames.jl:668
  [5] top-level scope
    @ C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\PlatformNames.jl:685
  [6] include(mod::Module, _path::String)
    @ Base .\Base.jl:419
  [7] include(x::String)
    @ BinaryProvider C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\BinaryProvider.jl:1
  [8] top-level scope
    @ C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\BinaryProvider.jl:12
  [9] include
    @ .\Base.jl:419 [inlined]
 [10] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
    @ Base .\loading.jl:1554
 [11] top-level scope
    @ stdin:1
in expression starting at C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\PlatformNames.jl:685
in expression starting at C:\Users\ilyao\.julia\packages\BinaryProvider\U2dKK\src\BinaryProvider.jl:1
in expression starting at stdin:1
ERROR: LoadError: Failed to precompile BinaryProvider [b99e7846-7c00-51b0-8f62-c81ae34c0232] to C:\Users\ilyao\.julia\compiled\v1.8\BinaryProvider\jl_B958.tmp.
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:35
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base .\loading.jl:1705
  [3] compilecache
    @ .\loading.jl:1649 [inlined]
  [4] _require(pkg::Base.PkgId)
    @ Base .\loading.jl:1337
  [5] _require_prelocked(uuidkey::Base.PkgId)
    @ Base .\loading.jl:1200
  [6] macro expansion
    @ .\loading.jl:1180 [inlined]
  [7] macro expansion
    @ .\lock.jl:223 [inlined]
  [8] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:1144
  [9] include(fname::String)
    @ Base.MainInclude .\client.jl:476
 [10] top-level scope
    @ none:5
in expression starting at C:\Users\ilyao\.julia\packages\MadNLPHSL\8XAiY\deps\build.jl:1

This is my system info:

pkg> st MadNLP MadNLPHSL
Status `D:\ilyao\Documents\research\neural_ode\transcription_neuralode\Project.toml`
  [2621e9c9] MadNLP v0.5.0
  [7fb6135f] MadNLPHSL v0.3.0

julia> versioninfo()
Julia Version 1.8.0
Commit 5544a0fab7 (2022-08-17 13:38 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 16 × AMD Ryzen 7 4800H with Radeon Graphics
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, znver2)
  Threads: 1 on 16 virtual cores
@sshin23
Copy link
Member

sshin23 commented Aug 31, 2022

Thanks for reporting this @IlyaOrson, we'll try to look into it. MadNLPHSL build on Windows has not been tested before, and it might have some issues. Alternatively, you can compile your HSL library externally and set the environment variable MADNLP_HSL_LIBRARY_PATH or run MadNLP on WSL or docker.

But from the error stack trace, the error seems to be caused by BinaryProvider.jl. Have you tried using BinaryProvider?

@IlyaOrson
Copy link
Author

Indeed the error seems to be unrelated to MadNLP.
This is the upstream issue JuliaPackaging/BinaryProvider.jl#211

@IlyaOrson
Copy link
Author

Apparently that repo is not maintained anymore and the recommendation is to move to JLLs for binary dependencies.
Would it be possible to do that with the HSL library?

@sshin23
Copy link
Member

sshin23 commented Aug 31, 2022

@IlyaOrson unfortunately no, we cannot redistribute HSL due to license issues. But indeed BinaryProvider seems to be dead. I'll keep this open and look into alternatives

@amontoison
Copy link
Contributor

@sshin23
I updated HSL.jl to drop BinaryProvider if it can help you:
JuliaSmoothOptimizers/HSL.jl#112

@amontoison
Copy link
Contributor

@sshin23 @frapac
For information, I released JuliaHSL.

@sshin23
Copy link
Member

sshin23 commented Jun 7, 2023

Thanks, @amontoison, that's great news! One less thing for MadNLP to worry about :) We'll look into the ways to incorporate this into MadNLP

@sshin23 sshin23 linked a pull request Jun 8, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants