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

[SLICOT] Another attempt to work around mingw/BB/LBT problems #5909

Merged
merged 5 commits into from
Nov 24, 2022
Merged

[SLICOT] Another attempt to work around mingw/BB/LBT problems #5909

merged 5 commits into from
Nov 24, 2022

Conversation

RalphAS
Copy link
Contributor

@RalphAS RalphAS commented Nov 23, 2022

Following in the footsteps of Ipopt, we give up on LBT under Windows for the time being.
Since LBT on Julia v1.7 is a minefield (no versioning) we require v1.8+.
We'll hope that the BB/Pkg guys do some magic before LBT jumps a major version. But if we're in the same boat with a more prominent package, we may have a better chance at rescue otherwise.

This PR is intended to address #4969

@amontoison
Copy link
Contributor

Following in the footsteps of Ipopt, we give up on LBT under Windows for the time being. Since LBT on Julia v1.7 is a minefield (no versioning) we require v1.8+. We'll hope that the BB/Pkg guys do some magic before LBT jumps a major version. But if we're in the same boat with a more prominent package, we may have a better chance at rescue otherwise.

You need to link with OpenBLAS_jll and not OpenBLAS32_jll on Windows here.
SLICOT is compiled with an ILP64 BLAS/LAPACK.
I have an example here: https://github.com/JuliaPackaging/Yggdrasil/blob/master/P/PROPACK/build_tarballs.jl#L19

Comment on lines -99 to -113
# The following was derived from #4770 (Pfapack)
# https://github.com/JuliaPackaging/Yggdrasil/pull/4770
# Since we need to link to libblastrampoline which has seen multiple
# ABI-incompatible versions, we need to expand the julia versions we target
julia_versions = [v"1.7", v"1.8", v"1.9", v"1.10"]
function set_julia_version(platforms::Vector{Platform}, julia_version::VersionNumber)
_platforms = deepcopy(platforms)
for p in _platforms
p["julia_version"] = string(julia_version)
end
return _platforms
end
expand_julia_versions(platforms::Vector{Platform}, julia_versions::Vector{VersionNumber}) =
vcat(set_julia_version.(Ref(platforms), julia_versions)...)
platforms = expand_julia_versions(platforms, julia_versions)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this removed?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, you're changing the required version of Julia. But you can't do that without changing the version number of the package, otherwise you're breaking the previous build

Comment on lines -99 to -113
# The following was derived from #4770 (Pfapack)
# https://github.com/JuliaPackaging/Yggdrasil/pull/4770
# Since we need to link to libblastrampoline which has seen multiple
# ABI-incompatible versions, we need to expand the julia versions we target
julia_versions = [v"1.7", v"1.8", v"1.9", v"1.10"]
function set_julia_version(platforms::Vector{Platform}, julia_version::VersionNumber)
_platforms = deepcopy(platforms)
for p in _platforms
p["julia_version"] = string(julia_version)
end
return _platforms
end
expand_julia_versions(platforms::Vector{Platform}, julia_versions::Vector{VersionNumber}) =
vcat(set_julia_version.(Ref(platforms), julia_versions)...)
platforms = expand_julia_versions(platforms, julia_versions)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, you're changing the required version of Julia. But you can't do that without changing the version number of the package, otherwise you're breaking the previous build

@RalphAS RalphAS requested a review from giordano November 24, 2022 04:16
@giordano
Copy link
Member

@andreasvarga would be ok with requiring Julia v1.8 for this? It'd simplify a few things.

@andreasvarga
Copy link

You mean Julia 1.8 and higher? Then I see no problem.

@giordano giordano merged commit a064c12 into JuliaPackaging:master Nov 24, 2022
@andreasvarga
Copy link

The MWE of #47638 works now with Julia 1.8.1 and SLICOT_jll v5.8.1. Thanks everybody for your efforts.

@andreasvarga
Copy link

I successfuly performed the complete tests with the PeriodicSystems (see here). With Julia 1.7 under both Linux and Windows the v5.8.0+2 of SLICOT_jll was loaded, while for Julia 1.8 under both Linux and Windows the v5.8.1+0 of SLICOT_jll was loaded. Perfect!

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 this pull request may close these issues.

4 participants