Bug 247283

Summary: lang/ecl: Update to 20.4.24
Product: Ports & Packages Reporter: Niclas Zeising <zeising>
Component: Individual Port(s)Assignee: Jimmy Olgeni <olgeni>
Status: Closed FIXED    
Severity: Affects Only Me CC: salvadore, thierry, zeising
Priority: --- Flags: olgeni: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
URL: https://reviews.freebsd.org/D25163
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247298
https://reviews.freebsd.org/D25303
Bug Depends on:    
Bug Blocks: 247028    
Attachments:
Description Flags
update lang/ecl
none
Patch to be chase the upgrades of lang/ecl and math/maxima
none
lang/ecl: Update to 20.4.24 v2 none

Description Niclas Zeising freebsd_committer freebsd_triage 2020-06-15 16:58:23 UTC
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
Comment 1 Jimmy Olgeni freebsd_committer freebsd_triage 2020-06-15 20:24:40 UTC
Adding salvadore@ and thierry@ for the SageMath side.
Comment 2 Niclas Zeising freebsd_committer freebsd_triage 2020-06-16 08:36:55 UTC
@thierry: Is the math/sage update needed for this to go in?
Comment 3 Thierry Thomas freebsd_committer freebsd_triage 2020-06-16 12:57:44 UTC
(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.
Comment 4 Lorenzo Salvadore freebsd_committer freebsd_triage 2020-06-16 13:31:43 UTC
I will soon update maxima to version 5.44.0, in case it is useful for you to know it.
Comment 5 Kubilay Kocak freebsd_committer freebsd_triage 2020-06-17 01:28:56 UTC
@Niclas Can you include the lang/ecl patch separately as an attachment here please.
Comment 6 Niclas Zeising freebsd_committer freebsd_triage 2020-06-17 11:29:59 UTC
Created attachment 215656 [details]
update lang/ecl

Here is a separate patch for just lang/ecl, as requested by koobs.
Comment 7 Niclas Zeising freebsd_committer freebsd_triage 2020-06-18 11:11:59 UTC
What's the state on this, is it OK to go in, or should I wait for maxima?
Comment 8 Thierry Thomas freebsd_committer freebsd_triage 2020-06-18 11:44:09 UTC
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.
Comment 9 Niclas Zeising freebsd_committer freebsd_triage 2020-06-18 11:52:40 UTC
(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.
Comment 10 Thierry Thomas freebsd_committer freebsd_triage 2020-06-18 12:04:09 UTC
(In reply to Niclas Zeising from comment #9)

No problem related to the tests failure for me: I just listed it FYI.
Comment 11 Thierry Thomas freebsd_committer freebsd_triage 2020-06-18 15:12:25 UTC
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…
Comment 12 Niclas Zeising freebsd_committer freebsd_triage 2020-06-18 16:15:52 UTC
(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.
Comment 13 Niclas Zeising freebsd_committer freebsd_triage 2020-06-18 16:31:35 UTC
(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.
Comment 14 Niclas Zeising freebsd_committer freebsd_triage 2020-06-18 16:54:14 UTC
(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
Comment 15 Thierry Thomas freebsd_committer freebsd_triage 2020-06-18 17:00:48 UTC
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.
Comment 16 Thierry Thomas freebsd_committer freebsd_triage 2020-06-18 19:25:55 UTC
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]]]]
Comment 17 Thierry Thomas freebsd_committer freebsd_triage 2020-06-18 19:35:23 UTC
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.
Comment 18 Niclas Zeising freebsd_committer freebsd_triage 2020-06-19 06:46:50 UTC
(In reply to Thierry Thomas from comment #17)
Thank you very much for helping out testing, diagnosing and providing a fix!
Comment 19 Niclas Zeising freebsd_committer freebsd_triage 2020-06-24 13:44:58 UTC
What's missing to get this and math/maxima updated?
Comment 20 Thierry Thomas freebsd_committer freebsd_triage 2020-06-28 09:34:25 UTC
(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
Comment 21 Niclas Zeising freebsd_committer freebsd_triage 2020-06-29 17:35:10 UTC
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. :)
Comment 22 commit-hook freebsd_committer freebsd_triage 2020-07-04 17:29:43 UTC
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
Comment 23 commit-hook freebsd_committer freebsd_triage 2020-07-04 17:32:45 UTC
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