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 github actions #77

Closed JohnCremona closed 11 months ago

JohnCremona commented 11 months ago

There are some warnings, also some failures, in the github action workflows (e.g. https://github.com/JohnCremona/eclib/actions/runs/7170540058).

@isuruf can you help? I think that the filing action is the one you added in April. Apologies if I am wrong about that.

If you or @dimpase know what to do to avoid the warnings about node12/node16 then that would also help. Thanks!

dimpase commented 11 months ago

one of them is a C++ trouble (macOS):

libtool: compile:  x86_64-apple-darwin13.4.0-clang++ -DPACKAGE_NAME=\"eclib\" -DPACKAGE_TARNAME=\"eclib\" -DPACKAGE_VERSION=\"20231211\" "-DPACKAGE_STRING=\"eclib 20231211\"" -DPACKAGE_BUGREPORT=\"john.cremona@gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"eclib\" -DVERSION=\"20231211\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_CXX11=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 -DHAVE_PTHREAD=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -Drestrict=__restrict__ -DHAVE_FLOOR=1 -DHAVE_MEMMOVE=1 -DHAVE_MEMSET=1 -DHAVE_POW=1 -DHAVE_SQRT=1 -DHAVE_STRCHR=1 -I. -DFLINT=1 -D_THREAD_SAFE -pthread -D_FORTIFY_SOURCE=2 -isystem /Users/runner/miniconda3/envs/eclib-deps/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/runner/miniconda3/envs/eclib-deps/include -MT interface.lo -MD -MP -MF .deps/interface.Tpo -c interface.cc  -fno-common -DPIC -o .libs/interface.o
In file included from interface.cc:24:
In file included from ./eclib/interface.h:51:
./eclib/templates.h:64:12: error: no member named 'ptr_fun' in namespace 'std'
using std::ptr_fun;
      ~~~~~^
1 error generated.
make[1]: *** [interface.lo] Error 1
make: *** [all-recursive] Error 1

and the other one is a cancelled job (probably cause the 1st errored out) An explanation for the C++ issue is here: https://github.com/bat/bat/issues/325 (macOS by default uses C++17, which removed ptr_fun from std.)

As to the fix, do you know C++ lambda functions? One should, C++, as predicted, is becoming a badly implemented Lisp 😄 https://github.com/gipert/bat/commit/e9c53556f6e1e0ffbb81075e31bceb9ce911c799

JohnCremona commented 11 months ago

Thanks @dimpase that is a good idea. I use the construct in only 3 places, dating back a while, and instead I have already been using the lambda constructions. I will replace those -- and there is likely to be a version 20231212 now updating 20231211.

I should have seen that compiler error message myself, apologies.

JohnCremona commented 11 months ago

OK, use of std::ptr_fun has been removed, let's see if the workflow action passes.

JohnCremona commented 11 months ago

OK, use of std::ptr_fun has been removed, let's see if the workflow action passes.

It's good now. I'll leave this open pending a fix of the node12 action warning.

dimpase commented 11 months ago

I'll leave this open pending a fix of the node12 action warning.

where do you see this warning? post the URL please

JohnCremona commented 11 months ago

https://github.com/JohnCremona/eclib/actions/runs/7180060199 https://github.com/JohnCremona/eclib/actions/runs/7180060203

dimpase commented 11 months ago

fixed in https://github.com/JohnCremona/eclib/pull/78

JohnCremona commented 11 months ago

fixed in #78

Thanks! I will merge that in a minute.