JohnCremona / eclib

The eclib package includes mwrank (for 2-descent on elliptic curves over Q) and modular symbol code used to create the elliptic curve database.
GNU General Public License v2.0
21 stars 15 forks source link

update macros. if ntl is not found try enabling c++11, then try findi… #14

Closed kiwifb closed 8 years ago

kiwifb commented 8 years ago

…ng ntl again before giving up.

Also got rid of superfluous ntl_found variable - it wasn't used that much and could easily be rid of.

JohnCremona commented 8 years ago

Thanks -- I'll test on the old NTL and then the new.

kiwifb commented 8 years ago

I don't remember if threads are on by default in newer ntl, you may have to set NTL_THREAD_BOOST=on. If it is off you won't be using c++11 and be back to the behavior of the old version.

kiwifb commented 8 years ago

Any news on this? Once we get givaro/fflas-ffpack/linbox upgrade a big chunk of stuff will be ready for c++11 and I can hack singular and flint to work with a newer ntl and threads.

JohnCremona commented 8 years ago

Sorry I did not reply earlier, the comment came in the day before I started 4 weeks of being very busy and then I forgot. I will merge in your patch as soon as I can.

On 25 April 2016 at 22:30, François Bissey notifications@github.com wrote:

Any news on this? Once we get givaro/fflas-ffpack/linbox upgrade a big chunk of stuff will be ready for c++11 and I can hack singular and flint to work with a newer ntl and threads.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/JohnCremona/eclib/pull/14#issuecomment-214529479

JohnCremona commented 8 years ago

I have tested this as follows. On one machine which still has NTL version 6.2.0 (and library libntl.so.4 ) it works fine. On another machine I installed NTL version 9.7.1 (installed library is called /usr/local/lib/libntl.so.23) and rebuilt eclib and again it works fine. These NTL Version numbers look odd to me but otherwise all is good for me.

  1. Should I also test with C++11 somehow enabled, whatever that means? How should I do that?
  2. I suppose I ought to increment the LT_REVISION and the distribution date before releasing this version?
kiwifb commented 8 years ago

C++11 is used when threads are enabled. You have to configure ntl like so:

./configure NTL_THREAD_BOOST=on ${whatever_other_options_you use)

This will test your compiler for C++11 support and then use C++11 threads in ntl. You may want to observe what happen without this PR or an appropriate CXXFLAGS.

JohnCremona commented 8 years ago

I should have said: on the machine on which I had installed the new NTL it all worked fine without your PR (with and without configuring with NTL_THREAD_BOOST=on). I will test again with your patch.

JohnCremona commented 8 years ago

I just did that and it still works fine: your branch, both with and without NTL_THREAD_BOOST=on, new NTL. So I will merge your branch (and retest, since there are several commits on the master which you do not have).