-
Notifications
You must be signed in to change notification settings - Fork 556
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
Upgrade Clp -- v1.17.9 #8066
Upgrade Clp -- v1.17.9 #8066
Conversation
C/Coin-OR/Clp/build_tarballs.jl
Outdated
Dependency("MUMPS_seq_jll", compat="$(MUMPS_seq_version)"), | ||
Dependency("OpenBLAS32_jll", OpenBLAS32_version), | ||
Dependency("CompilerSupportLibraries_jll"), | ||
Dependency(PackageSpec(name="CoinUtils_jll", uuid="be027038-0da8-5614-b30d-e42594cb92df"), compat="$(CoinUtils_version)"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay. Confession time. I've been putting this off because the previous releases did not use strict =
compat bounds. So it's highly probable that releasing new CoinUtils etc will break Clp.
I think we should retroactively fix all the compat bounds, but I haven't gotten around to it yet. Partially because there is less and less motivation to fix the COIN stuff now that HiGHS works so well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
alexis@HP-Spectre:~/Bureau/git/Yggdrasil$ grep -nr CoinUtils_jll .
./C/Coin-OR/Bonmin/build_tarballs.jl:67: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/Cgl/build_tarballs.jl:63: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/BiCePS/build_tarballs.jl:46: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/ALPS/build_tarballs.jl:47: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/Cbc/build_tarballs.jl:68: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/Osi/build_tarballs.jl:61: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/MibS/build_tarballs.jl:43: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/SYMPHONY/build_tarballs.jl:55: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/CHiPPS_BLIS/build_tarballs.jl:41: Dependency("CoinUtils_jll", compat="$(CoinUtils_version)"),
./C/Coin-OR/Clp/build_tarballs.jl:82: Dependency(PackageSpec(name="CoinUtils_jll", uuid="be027038-0da8-5614-b30d-e42594cb92df"), compat="$(CoinUtils_version)"),
It will impact a lot of packages if I upgrade CoinUtils_jll
with LBT
.
Maybe it's not a good idea to updete the COIN-OR packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes... I should have fixed the compat ages ago, but it wasn't standard practice when I worked on them all. We thought that following semver was enough...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to draw a graph of all the COIN-OR dependencies to figure out the right order to update them all in...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
make -j${nproc} | ||
make install | ||
""" | ||
|
||
platforms = supported_platforms() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
platforms = supported_platforms() | |
# platforms is a global constant defined in coin-or-common.jl |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
platforms = expand_cxxstring_abis(supported_platforms())
platforms = filter!(!Sys.isfreebsd, platforms)
We don't want to use expand_cxxstring_abis
is the code if it is not in C++.
We don't apply expand_gfortran_versions
by default for the same reason.
I also don't think that FreeBSD is an issue now.
I suppose that you added these options a long time ago.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't want to use expand_cxxstring_abis is the code if it is not in C++
Clp is written in C++?
I think they got added because at one point the auditor complained. But that was definitely a number of years ago so things might have changed.
--with-coinutils-lib="-lCoinUtils" \ | ||
--with-osi-lib="-lOsi -lCoinUtils" \ | ||
--with-mumps-lib="-L${libdir} -ldmumps -lzmumps -lcmumps -lsmumps -lmumps_common -lmpiseq -lpord -lmetis -lopenblas -lgfortran -lpthread" \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess we needed to expand on fortran versions because of this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think so because Clp doesn't contain Fortran code.
It's MUMPS that is linked to libgfortran
.
We need all these options only if we use static libraries.
Because we have a shared library libdmumps.$dlext
, this library is already linked to libmetis
, libpord
, libgfortran
etc...
Co-authored-by: Oscar Dowson <[email protected]>
I tried this locally and needed:
|
Updated at #9088 |
@odow