As part of my work to update libffi to 3.3, I need to update lang/ecl to 20.4.24. The update can be found as part of this differential, which also tracks the libffi update: https://reviews.freebsd.org/D25163
Adding salvadore@ and thierry@ for the SageMath side.
@thierry: Is the math/sage update needed for this to go in?
(In reply to Niclas Zeising from comment #2) math/sage in PR 247298 works with lang/ecl and math/maxima as currently in the ports tree. It is reported by upstream as working with ECL-20.4.24, but I have not yet found the time to test it after this upgrade. Maybe some adjustments will be required for Maxima or Sage itself - but it should be possible.
I will soon update maxima to version 5.44.0, in case it is useful for you to know it.
@Niclas Can you include the lang/ecl patch separately as an attachment here please.
Created attachment 215656 [details] update lang/ecl Here is a separate patch for just lang/ecl, as requested by koobs.
What's the state on this, is it OK to go in, or should I wait for maxima?
Could you please wait until tonight (GMT) ? I'm still testing it… Just FTI, I tested the `make check' target (to be launched after install, because ecl is needed), and here is its result: Did 233 tests (1 crashed), 17813 checks. Pass: 17810 (100%) Fail: 3 ( 0%) Failure details: -------------------------------- MIX.0016.FIFO-TESTS: CRASH [SIMPLE-STREAM-ERROR]: C operation (fread) signaled an error. C library explanation: Resource temporarily unavailable. I don't know if this is expected/important/whatever.
(In reply to Thierry Thomas from comment #8) Of course I can wait. There is no rush, I just wanted to know status on things. Is the test failure from ecl? Does the version in ports pass all tests today? I'll try to look into this later today or during the weekend.
(In reply to Niclas Zeising from comment #9) No problem related to the tests failure for me: I just listed it FYI.
Maxima from D25303 seems OK, but math/sage fails with theses messages: build/cythonized/sage/libs/ecl.c:3734:57: error: use of undeclared identifier 'ECL_OPT_TRAP_SIGCHLD'; did you mean 'ECL_OPT_TRAP_SIGILL'? __pyx_t_3 = __Pyx_PyInt_From_cl_fixnum(ecl_get_option(ECL_OPT_TRAP_SIGCHLD)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 180, __pyx_L1_error) ^~~~~~~~~~~~~~~~~~~~ ECL_OPT_TRAP_SIGILL /usr/local/include/ecl/external.h:972:9: note: 'ECL_OPT_TRAP_SIGILL' declared here ECL_OPT_TRAP_SIGILL, ^ build/cythonized/sage/libs/ecl.c:4406:57: error: use of undeclared identifier 'ECL_OPT_SIGALTSTACK_SIZE' __pyx_t_3 = __Pyx_PyInt_From_cl_fixnum(ecl_get_option(ECL_OPT_SIGALTSTACK_SIZE)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error) ^ build/cythonized/sage/libs/ecl.c:4731:18: error: use of undeclared identifier 'ECL_OPT_TRAP_SIGCHLD'; did you mean 'ECL_OPT_TRAP_SIGILL'? ecl_set_option(ECL_OPT_TRAP_SIGCHLD, 0); ^~~~~~~~~~~~~~~~~~~~ ECL_OPT_TRAP_SIGILL /usr/local/include/ecl/external.h:972:9: note: 'ECL_OPT_TRAP_SIGILL' declared here ECL_OPT_TRAP_SIGILL, ^ 3 errors generated. I do not yet know if these signals have been removed intentionally from ECL and imply a fix in Sage, but investigating…
(In reply to Thierry Thomas from comment #11) Looks like ECL_OPT_TRAP_SIGCHLD was removed here: https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f7e224b84e0b6cc13a56fe5ac71c6050a20676f0 I'm looking in the math/sage repo to see if this has been resolved upstream and we can bring in the patch.
(In reply to Niclas Zeising from comment #12) Looking at the ecl code, src/sage/libs/ecl.pyx, it might be as simple as ripping out the ECL_OPT_TRAP_SIGCHLD stuff, since as far as I understand, everything that it does is disabling the handling of SIGCHLD in ecl, as per the comment here: https://github.com/sagemath/sage/blob/develop/src/sage/libs/ecl.pyx#L246 . I'm only guessing though.
(In reply to Niclas Zeising from comment #13) I found this, that could work? https://git.sagemath.org/sage.git/commit/?h=u/gh-spaghettisalat/ecl-update&id=7250c3cd7368aaf27705c2dabe09a01e37fbd284
Yes, specially the part about a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx I'm trying it, will let you know.
That did the trick, it compiles and installs cleanly, and the examples from Maxima (built with ECL) are OK: ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 9.1, Release Date: 2020-05-20 │ │ Using Python 3.7.7. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: f = maxima.eval('ij_entry[i,j] := i/j') sage: A = maxima('genmatrix(ij_entry,4,4)'); A matrix([1,1/2,1/3,1/4],[2,1,2/3,1/2],[3,3/2,1,3/4],[4,2,4/3,1]) sage: A.determinant() 0 sage: A.echelon() matrix([1,1/2,1/3,1/4],[0,0,0,0],[0,0,0,0],[0,0,0,0]) sage: A.eigenvalues() [[0,4],[3,1]] sage: A.eigenvectors() [[[0,4],[3,1]],[[[1,0,0,-4],[0,1,0,-2],[0,0,1,-4/3]],[[1,2,3,4]]]]
Created attachment 215747 [details] Patch to be chase the upgrades of lang/ecl and math/maxima Attached is a patch to be committed together (or just after) the upgrades of lang/ecl and math/maxima.
(In reply to Thierry Thomas from comment #17) Thank you very much for helping out testing, diagnosing and providing a fix!
What's missing to get this and math/maxima updated?
(In reply to Niclas Zeising from comment #9) The failures when running the test suite had been reported by others: see https://trac.sagemath.org/ticket/22191#comment:237 and they have been fixed upstream: https://gitlab.com/embeddable-common-lisp/ecl/-/commit/75877dd8f0d534552284ba4380ba65baa74f028f
Created attachment 216044 [details] lang/ecl: Update to 20.4.24 v2 (In reply to Thierry Thomas from comment #20) Thank you! I added the patch and rolled a new diff that's attached. I'm still waiting for the math/maxima update, hopefully we can get this over the finish line soon. :)
A commit references this bug: Author: zeising Date: Sat Jul 4 17:28:49 UTC 2020 New revision: 541226 URL: https://svnweb.freebsd.org/changeset/ports/541226 Log: lang/ecl: Update to 20.4.24 Update lang/ecl to 20.4.24. PR: 247283 Reviewed by: thierry Approved by: olgeni (maintainer) Changes: head/lang/ecl/Makefile head/lang/ecl/distinfo head/lang/ecl/files/extra-patch-src_Makefile.in head/lang/ecl/files/extra-patch-src_aclocal.m4 head/lang/ecl/files/extra-patch-src_lsp_format.lsp head/lang/ecl/files/patch-75877dd.c head/lang/ecl/pkg-plist
A commit references this bug: Author: zeising Date: Sat Jul 4 17:31:47 UTC 2020 New revision: 541228 URL: https://svnweb.freebsd.org/changeset/ports/541228 Log: math/sage: Change lang/ecl and math/maxima update Chase the update of math/sage and lang/ecl Bump portrevision PR: 247283 Submitted by: thierry Changes: head/math/sage/Makefile head/math/sage/files/patch-src_sage_libs_ecl.pxd head/math/sage/files/patch-src_sage_libs_ecl.pyx