wbhart / mpir

Multiple Precision Integers and Rationals
GNU General Public License v3.0
229 stars 135 forks source link

appveyor not testing every build-option #280

Open GitMensch opened 5 years ago

GitMensch commented 5 years ago

I wanted to add binaries to the appveyor artifacts and stumbled over this one. We currently have 32/64 + static/shared (2x2), the missing parts are cxx yes/no (x2) and gmpcompat yes/no (x2).

Question: Should I add those to the build matrix as it is currently done (leading to increase of the builds from currently 4 to then 16) or is there a reasonable preference to only check non-cxx and non-gmpcompat once ([currently done in all 4 builds] and enabling those two flags for the current build-matrix = 6 builds in total)?

wbhart commented 5 years ago

Appveyor has a tendency to disable projects that appear to be "dead" with long running tests (especially if they start failing often). Therefore I would suppose they have a preference for testing each option once. In an ideal world we would have a very large compile farm testing all the different arches with random options. But it's far from an ideal world (for this sort of thing).

GitMensch commented 5 years ago

Let's try this a different way: are you ok to:

[note: the PR is unlikely to happen before next week]

Is it correct to assume:

wbhart commented 5 years ago

Let's try this a different way: are you ok to:

  • change the current builds to be gmpcompat and cxx-enabled

Seems ok.

  • add an ABI32 shared the same way it is currently done
  • add an ABI64 static the same way it is currently done

Ok.

[note: the PR is unlikely to happen before next week]

Is it correct to assume:

  • gmp-compat is mpir + copy of libraries+header (so fine to provide binaries "for all")?

It just creates libgmp.so and gmp.h instead of libmpir.so and mpir.h, I think, to be compatible with GMP.

  • cxx primarily adding stuff to the header file?

I think there is a separate gmpxx.h. There might even be a small libgmpxx.so. I actually forget about this, it's been so long since I looked.

One of the main differences is that the tests actually check the C++ tests.