Macaulay2 / M2

The primary source code repository for Macaulay2, a system for computing in commutative algebra, algebraic geometry and related fields.
https://macaulay2.com
330 stars 228 forks source link

add control of versions of external libraries in ./configure #1024

Open dimpase opened 4 years ago

dimpase commented 4 years ago

It is not so hard (I can do this if we agree to go forward with this) to add checks for versions of external libraries in ./configure to match ones in libraries/*/Makefile.in.

One further question here is whether we want to be a bit more fine-grained and have optional MINVERSION = <blah> in these files, so that the test would check that the version of the library is at least MINVERSION, if it is set, and otherwise use VERSION.

(I've been bitten by this a number of times, I guess I'm not alone, so this would be a reasonable improvement, IMHO)

dimpase commented 4 years ago

@antonleykin

DanGrayson commented 4 years ago

I don't see the point. I prefer to install a version test only if we have some concrete reason -- where we know that an earlier version couldn't possibly work. Better than a version test would be a feature test, if that's the point.

DanGrayson commented 4 years ago

In any case, there is no reason to try to match the version numbers in our library makefiles, as those are intended to always be the very latest version.

dimpase commented 4 years ago

A feature test is often just not possible, as the problem can manifest itself only on some platforms (and having different library versions on different platforms is hard), or only in a hard to reproduce way. A case at hand is https://github.com/antonleykin/M2/pull/5

dimpase commented 4 years ago

How do you test for "random crashes", or "much improved performance", or "better documentation"? There are plenty of cases for just doing version tests. I'm not making this up, I'm telling from the experience of unvendoring SageMath dependencies, many many more than in M2, see https://trac.sagemath.org/ticket/27330

mahrud commented 4 years ago

@dimpase the CMake build accomplishes this in the cmake/check-libraries.cmake file. Would you like to keep this open for the same feature using autotools, or should it be closed?