Skip to content

Upgrade to Maxima 5.49 and ecl 26.3.27#41879

Open
cxzhong wants to merge 2 commits intosagemath:developfrom
cxzhong:maxima-5.49
Open

Upgrade to Maxima 5.49 and ecl 26.3.27#41879
cxzhong wants to merge 2 commits intosagemath:developfrom
cxzhong:maxima-5.49

Conversation

@cxzhong
Copy link
Copy Markdown
Contributor

@cxzhong cxzhong commented Mar 23, 2026

  1. Upgrade maxima to 5.49.0, in conda, sage-the-distro, and subproject maxima
  2. Upgrade ecl to 26.3.27 in sage-the-distro
  3. change the minimal version require of maxima is 5.48.0 and the version of ecl is 24.5.10
  4. Upgrade all conda-lock files
  5. fix the meson build file does not include ecl path

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 23, 2026

@antonio-rojas please review this now. I have upgrade the conda-lock files

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 23, 2026

Documentation preview for this PR (built with commit 70fc54b; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@antonio-rojas
Copy link
Copy Markdown
Member

antonio-rojas commented Mar 24, 2026

You need to make sure that system maxima < 5.48 is not accepted, because the *pcprntd* change is not compatible with it. That requires a check in build/pkgs/maxima/spkg-configure.m4 at least, maybe somewhere else.

And we also need to decide what to do with system 5.48. Functionally it should work, but some tests will fail with different output. So we either

  • Fix the tests to pass with 5.48 too
  • Disallow system 5.48 (5.49 was released in december, so probably too soon)
  • Allow system 5.48 and ignore the test failures

@antonio-rojas
Copy link
Copy Markdown
Member

@orlitzky all the warnings in matrix2.pyx are fallout from #41681

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

src/bin/sage -t --long --warn-long 30.0 --random-seed=286735480429121101562228604801325644303 src/sage/calculus/desolvers.py
**********************************************************************
Error: Failed example:: Exception raised:
Traceback (most recent call last):
  File "/sage/src/sage/interfaces/interface.py", line 732, in __init__
    self._name = parent._create(value, name=name)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/sage/src/sage/interfaces/maxima_lib.py", line 628, in _create
    self.set(name, value)
  File "/sage/src/sage/interfaces/maxima_lib.py", line 538, in set
    self.eval(cmd)
  File "/sage/src/sage/interfaces/maxima_lib.py", line 484, in _eval_line
    maxima_eval("#$%s$" % statement)
  File "sage/libs/ecl.pyx", line 828, in sage.libs.ecl.EclObject.__call__
  File "sage/libs/ecl.pyx", line 356, in sage.libs.ecl.ecl_safe_apply
RuntimeError: ECL says: Filesystem error with pathname "/root/.sage/maxima/binary/5_49_0/ecl/21_2_1/share/linearalgebra/eigens-by-jacobi.data".
Either
 1) the file does not exist, or
 2) we are not allowed to access the file, or
 3) the pathname points to a broken symbolic link.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/sage/src/sage/doctest/forker.py", line 734, in _run
    self.compile_and_execute(example, compiler, test.globs)
  File "/sage/src/sage/doctest/forker.py", line 1158, in compile_and_execute
    exec(compiled, globs)
  File "<doctest sage.calculus.desolvers.?[49]>", line 1, in <module>
    desolve(x*diff(y,x)-x*sqrt(y**Integer(2)+x**Integer(2))-y == Integer(0), y, contrib_ode=True)
  File "/sage/src/sage/calculus/desolvers.py", line 586, in desolve
    P("load('contrib_ode)")
  File "/sage/src/sage/interfaces/interface.py", line 294, in __call__
    return cls(self, x, name=name)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/sage/src/sage/interfaces/interface.py", line 734, in __init__
    raise TypeError(x)
TypeError: ECL says: Filesystem error with pathname "/root/.sage/maxima/binary/5_49_0/ecl/21_2_1/share/linearalgebra/eigens-by-jacobi.data".
Either
 1) the file does not exist, or
 2) we are not allowed to access the file, or
 3) the pathname points to a broken symbolic link.

    desolve(x*diff(y,x)-x*sqrt(y^2+x^2)-y == 0, y, contrib_ode=True)
Exception raised:
    Traceback (most recent call last):
      File "/sage/src/sage/interfaces/interface.py", line 732, in __init__
        self._name = parent._create(value, name=name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/sage/src/sage/interfaces/maxima_lib.py", line 628, in _create
        self.set(name, value)
      File "/sage/src/sage/interfaces/maxima_lib.py", line 538, in set
        self.eval(cmd)
      File "/sage/src/sage/interfaces/maxima_lib.py", line 484, in _eval_line
        maxima_eval("#$%s$" % statement)
      File "sage/libs/ecl.pyx", line 828, in sage.libs.ecl.EclObject.__call__
      File "sage/libs/ecl.pyx", line 356, in sage.libs.ecl.ecl_safe_apply
    RuntimeError: ECL says: Filesystem error with pathname "/root/.sage/maxima/binary/5_49_0/ecl/21_2_1/share/linearalgebra/eigens-by-jacobi.data".
    Either
     1) the file does not exist, or
     2) we are not allowed to access the file, or
     3) the pathname points to a broken symbolic link.

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/sage/src/sage/doctest/forker.py", line 734, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/sage/src/sage/doctest/forker.py", line 1158, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.calculus.desolvers.?[49]>", line 1, in <module>
        desolve(x*diff(y,x)-x*sqrt(y**Integer(2)+x**Integer(2))-y == Integer(0), y, contrib_ode=True)
      File "/sage/src/sage/calculus/desolvers.py", line 586, in desolve
        P("load('contrib_ode)")
      File "/sage/src/sage/interfaces/interface.py", line 294, in __call__
        return cls(self, x, name=name)
               ^^^^^^^^^^^^^^^^^^^^^^^
      File "/sage/src/sage/interfaces/interface.py", line 734, in __init__
        raise TypeError(x)
    TypeError: ECL says: Filesystem error with pathname "/root/.sage/maxima/binary/5_49_0/ecl/21_2_1/share/linearalgebra/eigens-by-jacobi.data".
    Either
     1) the file does not exist, or
     2) we are not allowed to access the file, or
     3) the pathname points to a broken symbolic link.

This error is very strange

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

You need to make sure that system maxima < 5.48 is not accepted, because the *pcprntd* change is not compatible with it. That requires a check in build/pkgs/maxima/spkg-configure.m4 at least, maybe somewhere else.

And we also need to decide what to do with system 5.48. Functionally it should work, but some tests will fail with different output. So we either

  • Fix the tests to pass with 5.48 too
  • Disallow system 5.48 (5.49 was released in december, so probably too soon)
  • Allow system 5.48 and ignore the test failures

I think we just ignore this. Because in fact, it is not mathematically wrong, just the expressions are different but they are equal

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

It seems the bug of increment docker build. after we build new docker image, this will be fixed.

@orlitzky
Copy link
Copy Markdown
Contributor

@orlitzky all the warnings in matrix2.pyx are fallout from #41681

Sorry, i figured this out later on but missed the ones in this early PR. I'll go through this file and remove the remaining inline tags.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

src/bin/sage -t --long --warn-long 30.0 --random-seed=140176254664470019448872201368197674925 src/sage_setup/setenv.py
    [0 tests, 0.00s wall]
src/bin/sage -t --long --warn-long 30.0 --random-seed=140176254664470019448872201368197674925 src/sage_setup/util.py
    [6 tests, 0.01s wall]
src/bin/sage -t --long --warn-long 30.0 --random-seed=140176254664470019448872201368197674925 src/sage_setup/autogen/interpreters/internal/utils.py
    [24 tests, 4.15s wall]
src/bin/sage -t --long --warn-long 30.0 --random-seed=140176254664470019448872201368197674925 src/sage/topology/moment_angle_complex.py
    [112 tests, 45.88s wall]
src/bin/sage -t --long --warn-long 30.0 --random-seed=140176254664470019448872201368197674925 src/sage/tests/cmdline.py
    [179 tests, 91.02s wall]
----------------------------------------------------------------------
All tests passed!
----------------------------------------------------------------------
Total time for all tests: 4272.0 seconds
    cpu time: 15303.3 seconds
    cumulative wall time: 18674.2 seconds
Features detected for doctesting: conway_polynomials,cvxopt,database_cremona_mini_ellcurve,database_ellcurves,database_graphs,fpylll,gap_package_polycyclic,gfan,info,jupyter_sphinx,lrcalc_python,meson_editable,mpmath,nauty,networkx,numpy,palp,pexpect,pillow,polytopes_db,pplpy,primecountpy,ptyprocess,pyparsing,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.homfly,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.schemes,sage.symbolic,scipy,singular,sphinx,sympy
Running pytest on ['/sage/src/sage', '/sage/src/sage_setup', '/sage/src/sage_docbuild', '/sage/src/doc'] with options []

The rebuild of docker is OK.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 26, 2026

@antonio-rojas I think this can be merged

@antonio-rojas
Copy link
Copy Markdown
Member

@antonio-rojas I think this can be merged

You still haven't addressed #41879 (comment). According to https://repology.org/project/maxima/versions there aren't many distros shipping 5.48, so maybe we can allow that with a few broken tests (although I'm not 100% happy about it), but you definitely need to exclude < 5.48.

In any case, I can't approve this myself, it's 90% my code.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 26, 2026

@antonio-rojas I think this can be merged

You still haven't addressed #41879 (comment). According to https://repology.org/project/maxima/versions there aren't many distros shipping 5.48, so maybe we can allow that with a few broken tests (although I'm not 100% happy about it), but you definitely need to exclude < 5.48.

In any case, I can't approve this myself, it's 90% my code.

So we block <5.48?

@cxzhong cxzhong changed the title Upgrade to Maxima 5.49 Upgrade to Maxima 5.49 and remove the temporary rpy2 patch Mar 26, 2026
@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 26, 2026

@orlitzky @antonio-rojas

  [libhomfly-1.03]   https://github.com/sagemath/sage/releases/download/10.8/libhomfly-1.03.tar.gz
  [libhomfly-1.03]   [......................................................................]
  [libhomfly-1.03]   Setting up build directory /Users/runner/work/sage/sage/local/var/tmp/sage/build/libhomfly-1.03
  [libhomfly-1.03]   No patch files found in ../patches
  [libhomfly-1.03]   Host system: Darwin iad20-fj925-061ff6d2-e7b8-4418-81e4-5d457ae2e9d4-76EF255B6AFB.local 24.6.0 Darwin Kernel Version 24.6.0: Mon Jan 19 22:02:01 PST 2026; root:xnu-11417.140.69.708.3~1/RELEASE_ARM64_VMAPPLE arm64
  [libhomfly-1.03]   C compiler: gcc -std=gnu23, Apple clang version 17.0.0 (clang-1700.0.13.5), Target: arm64-apple-darwin24.6.0, Thread model: posix, InstalledDir: /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  [libhomfly-1.03]   No stamp file for package 'libhomfly' in /Users/runner/work/sage/sage/local/var/lib/sage/installed
  [libhomfly-1.03]   No spkg-legacy-uninstall script; nothing to do
  [libhomfly-1.03]   ::group::.log
  [libhomfly-1.03]   [spkg-install] Configuring libhomfly-1.03
  [libhomfly-1.03]   [spkg-install] configure: WARNING: unrecognized options: --disable-maintainer-mode
  [libhomfly-1.03]   [spkg-install] checking for a BSD-compatible install... /usr/bin/install -c
  [libhomfly-1.03]   [spkg-install] checking whether sleep supports fractional seconds... yes
  [libhomfly-1.03]   [spkg-install] checking filesystem timestamp resolution... 2
  [libhomfly-1.03]   [spkg-install] checking whether build environment is sane... yes
  [libhomfly-1.03]   [spkg-install] checking for a race-free mkdir -p... mkdir -p
  [libhomfly-1.03]   [spkg-install] checking for gawk... no
  [libhomfly-1.03]   [spkg-install] checking for mawk... no
  [libhomfly-1.03]   [spkg-install] checking for nawk... no
  [libhomfly-1.03]   [spkg-install] checking for awk... awk
  [libhomfly-1.03]   [spkg-install] checking whether make sets $(MAKE)... yes
  [libhomfly-1.03]   [spkg-install] checking whether make supports nested variables... yes
  [libhomfly-1.03]   [spkg-install] checking xargs -n works... yes
  [libhomfly-1.03]   [spkg-install] checking whether UID '501' is supported by ustar format... yes
  [libhomfly-1.03]   [spkg-install] checking whether GID '20' is supported by ustar format... yes
  [libhomfly-1.03]   [spkg-install] checking how to create a ustar tar archive... gnutar
  [libhomfly-1.03]   [spkg-install] checking whether make supports the include directive... yes (GNU style)
  [libhomfly-1.03]   [spkg-install] checking for gcc... gcc -std=gnu23
  [libhomfly-1.03]   [spkg-install] checking whether the C compiler works... yes
  [libhomfly-1.03]   [spkg-install] checking for C compiler default output file name... a.out
  [libhomfly-1.03]   [spkg-install] checking for suffix of executables... 
  [libhomfly-1.03]   [spkg-install] checking whether we are cross compiling... no
  [libhomfly-1.03]   [spkg-install] checking for suffix of object files... o
  [libhomfly-1.03]   [spkg-install] checking whether the compiler supports GNU C... yes
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 accepts -g... yes
  [libhomfly-1.03]   [spkg-install] checking for gcc -std=gnu23 option to enable C11 features... none needed
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 understands -c and -o together... yes
  [libhomfly-1.03]   [spkg-install] checking dependency style of gcc -std=gnu23... none
  [libhomfly-1.03]   [spkg-install] checking the archiver (ar) interface... ar
  [libhomfly-1.03]   [spkg-install] checking for gcc... (cached) gcc -std=gnu23
  [libhomfly-1.03]   [spkg-install] checking whether the compiler supports GNU C... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 accepts -g... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking for gcc -std=gnu23 option to enable C11 features... (cached) none needed
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 understands -c and -o together... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking dependency style of gcc -std=gnu23... (cached) none
  [libhomfly-1.03]   [spkg-install] checking build system type... aarch64-apple-darwin24.6.0
  [libhomfly-1.03]   [spkg-install] checking host system type... aarch64-apple-darwin24.6.0
  [libhomfly-1.03]   [spkg-install] checking how to print strings... printf
  [libhomfly-1.03]   [spkg-install] checking for a sed that does not truncate output... /usr/bin/sed
  [libhomfly-1.03]   [spkg-install] checking for grep that handles long lines and -e... /usr/bin/grep
  [libhomfly-1.03]   [spkg-install] checking for egrep... /usr/bin/grep -E
  [libhomfly-1.03]   [spkg-install] checking for fgrep... /usr/bin/grep -F
  [libhomfly-1.03]   [spkg-install] checking for ld used by gcc -std=gnu23... /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
  [libhomfly-1.03]   [spkg-install] checking if the linker (/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
  [libhomfly-1.03]   [spkg-install] checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
  [libhomfly-1.03]   [spkg-install] checking the name lister (/usr/bin/nm -B) interface... BSD nm
  [libhomfly-1.03]   [spkg-install] checking whether ln -s works... yes
  [libhomfly-1.03]   [spkg-install] checking the maximum length of command line arguments... 786432
  [libhomfly-1.03]   [spkg-install] checking how to convert aarch64-apple-darwin24.6.0 file names to aarch64-apple-darwin24.6.0 format... func_convert_file_noop
  [libhomfly-1.03]   [spkg-install] checking how to convert aarch64-apple-darwin24.6.0 file names to toolchain format... func_convert_file_noop
  [libhomfly-1.03]   [spkg-install] checking for /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
  [libhomfly-1.03]   [spkg-install] checking for file... file
  [libhomfly-1.03]   [spkg-install] checking for objdump... objdump
  [libhomfly-1.03]   [spkg-install] checking how to recognize dependent libraries... pass_all
  [libhomfly-1.03]   [spkg-install] checking for dlltool... no
  [libhomfly-1.03]   [spkg-install] checking how to associate runtime and link libraries... printf %s\n
  [libhomfly-1.03]   [spkg-install] checking for ranlib... ranlib
  [libhomfly-1.03]   [spkg-install] checking for archiver @FILE support... no
  [libhomfly-1.03]   [spkg-install] checking for strip... strip
  [libhomfly-1.03]   [spkg-install] checking command to parse /usr/bin/nm -B output from gcc -std=gnu23 object... ok
  [libhomfly-1.03]   [spkg-install] checking for sysroot... no
  [libhomfly-1.03]   [spkg-install] checking for a working dd... /bin/dd
  [libhomfly-1.03]   [spkg-install] checking how to truncate binary pipes... /bin/dd bs=4096 count=1
  [libhomfly-1.03]   [spkg-install] checking for mt... no
  [libhomfly-1.03]   [spkg-install] checking if : is a manifest tool... no
  [libhomfly-1.03]   [spkg-install] checking for dsymutil... dsymutil
  [libhomfly-1.03]   [spkg-install] checking for nmedit... nmedit
  [libhomfly-1.03]   [spkg-install] checking for lipo... lipo
  [libhomfly-1.03]   [spkg-install] checking for otool... otool
  [libhomfly-1.03]   [spkg-install] checking for otool64... no
  [libhomfly-1.03]   [spkg-install] checking for -single_module linker flag... ld: warning: -single_module is obsolete
  [libhomfly-1.03]   [spkg-install] no
  [libhomfly-1.03]   [spkg-install] checking for -no_fixup_chains linker flag... yes
  [libhomfly-1.03]   [spkg-install] checking for -exported_symbols_list linker flag... yes
  [libhomfly-1.03]   [spkg-install] checking for -force_load linker flag... yes
  [libhomfly-1.03]   [spkg-install] checking for stdio.h... yes
  [libhomfly-1.03]   [spkg-install] checking for stdlib.h... yes
  [libhomfly-1.03]   [spkg-install] checking for string.h... yes
  [libhomfly-1.03]   [spkg-install] checking for inttypes.h... yes
  [libhomfly-1.03]   [spkg-install] checking for stdint.h... yes
  [libhomfly-1.03]   [spkg-install] checking for strings.h... yes
  [libhomfly-1.03]   [spkg-install] checking for sys/stat.h... yes
  [libhomfly-1.03]   [spkg-install] checking for sys/types.h... yes
  [libhomfly-1.03]   [spkg-install] checking for unistd.h... yes
  [libhomfly-1.03]   [spkg-install] checking for dlfcn.h... yes
  [libhomfly-1.03]   [spkg-install] checking for objdir... .libs
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 supports -fno-rtti -fno-exceptions... yes
  [libhomfly-1.03]   [spkg-install] checking for gcc -std=gnu23 option to produce PIC... -fno-common -DPIC
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 PIC flag -fno-common -DPIC works... yes
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 static flag -static works... no
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 supports -c -o file.o... yes
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 supports -c -o file.o... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking whether the gcc -std=gnu23 linker (/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
  [libhomfly-1.03]   [spkg-install] checking dynamic linker characteristics... darwin24.6.0 dyld
  [libhomfly-1.03]   [spkg-install] checking how to hardcode library paths into programs... immediate
  [libhomfly-1.03]   [spkg-install] checking whether stripping libraries is possible... yes
  [libhomfly-1.03]   [spkg-install] checking if libtool supports shared libraries... yes
  [libhomfly-1.03]   [spkg-install] checking whether to build shared libraries... yes
  [libhomfly-1.03]   [spkg-install] checking whether to build static libraries... no
  [libhomfly-1.03]   [spkg-install] checking that generated files are newer than configure... done
  [libhomfly-1.03]   [spkg-install] configure: creating ./config.status
  [libhomfly-1.03]   [spkg-install] config.status: creating Makefile
  [libhomfly-1.03]   [spkg-install] config.status: creating lib/Makefile
  [libhomfly-1.03]   [spkg-install] config.status: creating test/Makefile
  [libhomfly-1.03]   [spkg-install] config.status: creating libhomfly.pc
  [libhomfly-1.03]   [spkg-install] config.status: executing depfiles commands
  [libhomfly-1.03]   [spkg-install] config.status: executing libtool commands
  [libhomfly-1.03]   [spkg-install] configure: WARNING: unrecognized options: --disable-maintainer-mode
  [libhomfly-1.03]   [spkg-install] Building libhomfly-1.03
  [libhomfly-1.03]   [spkg-install] Making all in lib
  [libhomfly-1.03]   [spkg-install] /bin/bash ../libtool  --tag=CC   --mode=compile gcc -std=gnu23 -DPACKAGE_NAME=\"libhomfly\" -DPACKAGE_TARNAME=\"libhomfly\" -DPACKAGE_VERSION=\"1.03\" -DPACKAGE_STRING=\"libhomfly\ 1.03\" -DPACKAGE_BUGREPORT=\"mmarco@unizar.es\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libhomfly\" -DVERSION=\"1.03\" -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/\" -I.     -g -O2 -c -o bound.lo bound.c
  [libhomfly-1.03]   [spkg-install] libtool: compile:  gcc -std=gnu23 -DPACKAGE_NAME=\"libhomfly\" -DPACKAGE_TARNAME=\"libhomfly\" -DPACKAGE_VERSION=\"1.03\" "-DPACKAGE_STRING=\"libhomfly 1.03\"" -DPACKAGE_BUGREPORT=\"mmarco@unizar.es\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libhomfly\" -DVERSION=\"1.03\" -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/\" -I. -g -O2 -c bound.c  -fno-common -DPIC -o .libs/bound.o
  [libhomfly-1.03]   [spkg-install] bound.c:195:17: error: unknown type name 'list'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                 ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:23: error: unknown type name 'list2'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                       ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:30: error: unknown type name 'one'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                              ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:35: error: unknown type name 'two'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                                   ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:39: error: expected ';' after top level declarator
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                                       ^
  [libhomfly-1.03]   [spkg-install]       |                                       ;
  [libhomfly-1.03]   [spkg-install] bound.c:196:8: error: redefinition of 'list' with a different type: 'word *' (aka 'int *') vs 'word[26]' (aka 'int[26]')
  [libhomfly-1.03]   [spkg-install]   196 | word  *list;    /* list of original inputs/outputs, modified by this routine */
  [libhomfly-1.03]   [spkg-install]       |        ^
  [libhomfly-1.03]   [spkg-install] bound.c:24:6: note: previous definition is here
  [libhomfly-1.03]   [spkg-install]    24 | word list[BIGWEAVE];              /* description of first new weave */
  [libhomfly-1.03]   [spkg-install]       |      ^
  [libhomfly-1.03]   [spkg-install] bound.c:197:8: error: redefinition of 'list2' with a different type: 'word *' (aka 'int *') vs 'word[26]' (aka 'int[26]')
  [libhomfly-1.03]   [spkg-install]   197 | word  *list2;                      /* inputs/outputs of the second new weave */
  [libhomfly-1.03]   [spkg-install]       |        ^
  [libhomfly-1.03]   [spkg-install] bound.c:25:6: note: previous definition is here
  [libhomfly-1.03]   [spkg-install]    25 | word list2[BIGWEAVE];           /* description of second, if needed */
  [libhomfly-1.03]   [spkg-install]       |      ^
  [libhomfly-1.03]   [spkg-install] bound.c:200:1: error: expected identifier or '('
  [libhomfly-1.03]   [spkg-install]   200 | {
  [libhomfly-1.03]   [spkg-install]       | ^
  [libhomfly-1.03]   [spkg-install] 8 errors generated.
  [libhomfly-1.03]   [spkg-install] make[6]: *** [bound.lo] Error 1
  [libhomfly-1.03]   [spkg-install] make[5]: *** [all-recursive] Error 1
  [libhomfly-1.03]   [spkg-install] ********************************************************************************
  [libhomfly-1.03]   [spkg-install] Error building libhomfly-1.03
  [libhomfly-1.03]   [spkg-install] ********************************************************************************
  [libhomfly-1.03]   ::endgroup::
  [libhomfly-1.03]   ************************************************************************
  [libhomfly-1.03]   Error installing package libhomfly-1.03

@antonio-rojas
Copy link
Copy Markdown
Member

What's with all the closing and reopening? Please note that every time you do that everybody gets spammed with two emails.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 10, 2026

What's with all the closing and reopening? Please note that every time you do that everybody gets spammed with two emails.

Sorry for this. I do not know it will sent email. The ci is not stable. merge pr always fails

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 10, 2026

It seems meson.build missing ecl's path caused docker build failed. I have editted it. @tobiasdiez
can you help me look the meson file

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 11, 2026

This PR is completed

@cxzhong cxzhong changed the title Upgrade to Maxima 5.49 and remove the temporary rpy2 patch Upgrade to Maxima 5.49 and ecl 26.3.27 Apr 12, 2026
@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 12, 2026

CC: @dimpase This can be reviewed now.

Copy link
Copy Markdown
Contributor

@tobiasdiez tobiasdiez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exactly is the error that needs compilation with the ecl include dir now?

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 13, 2026

What exactly is the error that needs compilation with the ecl include dir now?

Increase docker build seems will incorrect, if we update ecl for different path include (before using system's ecl, now using sage's ecl). I think we just needs a warning about this. If the user do not counter the increase build for different path of ecl, they do not encounter this problem.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 13, 2026

The main problem is in test-long

@tobiasdiez
Copy link
Copy Markdown
Contributor

That looks more like a CI bug/shortcoming to me. If the CI / linux runs are okay, then I don't see any need to fix the test-long. Or is there any realistic scenario where users would run into the same issue?

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 13, 2026

That looks more like a CI bug/shortcoming to me. If the CI / linux runs are okay, then I don't see any need to fix the test-long. Or is there any realistic scenario where users would run into the same issue?

If you first compile with system's ecl, then second increasely compile with sage's ecl (change path). then it will cause problem.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 13, 2026

and I think it is a much special case. We just add a warning if we can not find ecl_config

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 14, 2026

src/bin/sage -t --long --warn-long 30.0 --random-seed=286735480429121101562228604801325644303 src/sage/libs/ecl.pyx
Error: sage: from sage.libs.ecl import test_sigint_before_ecl_sig_on ## line 122 ##
sage: test_sigint_before_ecl_sig_on() ## line 123 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 127 ##
0
sage: from sage.libs.ecl import test_ecl_options ## line 145 ##
sage: test_ecl_options() ## line 146 ##
ECL_OPT_INCREMENTAL_GC = 0
ECL_OPT_TRAP_SIGSEGV = 1
ECL_OPT_TRAP_SIGFPE = 1
ECL_OPT_TRAP_SIGINT = 1
ECL_OPT_TRAP_SIGILL = 1
ECL_OPT_TRAP_SIGBUS = 1
ECL_OPT_TRAP_SIGPIPE = 1
ECL_OPT_TRAP_INTERRUPT_SIGNAL = 1
ECL_OPT_SIGNAL_HANDLING_THREAD = 0
ECL_OPT_SIGNAL_QUEUE_SIZE = 16
ECL_OPT_BOOTED = 1
ECL_OPT_BIND_STACK_SIZE = 8192
ECL_OPT_BIND_STACK_SAFETY_AREA = 1024
ECL_OPT_FRAME_STACK_SIZE = 2048
ECL_OPT_FRAME_STACK_SAFETY_AREA = 128
ECL_OPT_LISP_STACK_SIZE = 32768
ECL_OPT_LISP_STACK_SAFETY_AREA = 128
ECL_OPT_C_STACK_SIZE = 0
ECL_OPT_C_STACK_SAFETY_AREA = 32768
ECL_OPT_HEAP_SIZE = 4294967296
ECL_OPT_HEAP_SAFETY_AREA = 1048576
ECL_OPT_THREAD_INTERRUPT_SIGNAL = 36
ECL_OPT_SET_GMP_MEMORY_FUNCTIONS = 0
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 170 ##
0
sage: from sage.libs.ecl import * ## line 229 ##
sage: init_ecl() ## line 234 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 238 ##
0
sage: from sage.libs.ecl import * ## line 302 ##
sage: from cysignals.tests import interrupt_after_delay ## line 303 ##
sage: ecl_eval("(setf i 0)") ## line 304 ##
<ECL: 0>
sage: inf_loop = ecl_eval("(defun infinite() (loop (incf i)))") ## line 306 ##
sage: interrupt_after_delay(1000) ## line 307 ##
sage: inf_loop() ## line 308 ##

Internal or unrecoverable error in:
Unable to mprotect environment.
  [22: Invalid argument]

;;; ECL C Backtrace
;;; /sage/local/lib/libecl.so.26.3(_ecl_dump_c_backtrace+0x2c) [0x7fd883daa27c]
;;; /sage/local/lib/libecl.so.26.3(ecl_internal_error+0x49) [0x7fd883d53799]
;;; /sage/local/lib/libecl.so.26.3(+0x20ca7d) [0x7fd883d6da7d]
;;; /sage/local/lib/libecl.so.26.3(+0x20cae9) [0x7fd883d6dae9]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x7fd8e6fba330]
;;; /sage/local/lib/libecl.so.26.3(ecl_cons+0x1e) [0x7fd883db1dbe]
;;; /sage/local/lib/libecl.so.26.3(ecl_interpret+0x1fdd) [0x7fd883d456bd]
;;; /sage/local/lib/libecl.so.26.3(ecl_apply_from_stack_frame+0xe8) [0x7fd883d42c88]
;;; /sage/local/lib/libecl.so.26.3(cl_apply+0x2b5) [0x7fd883d431b5]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0xc6c4) [0x7fd883f846c4]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x16c1b) [0x7fd883f8ec1b]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x17173) [0x7fd883f8f173]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3(_PyEval_EvalFrameDefault+0x3f64) [0x5da3e4]
;;; python3(_PyObject_Call_Prepend+0x18a) [0x54a88a]
;;; python3() [0x5a3458]
;;; python3(_PyObject_MakeTpCall+0x13e) [0x54903e]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(_PyObject_Call_Prepend+0xc2) [0x54a7c2]
;;; python3() [0x59dddf]
;;; python3() [0x5998a3]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3() [0x6bcb52]
;;; python3(Py_RunMain+0x232) [0x6bc782]
;;; python3(Py_BytesMain+0x2d) [0x6bc3ed]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x7fd8e6f9f1ca]
;;; /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x7fd8e6f9f28b]
;;; python3(_start+0x25) [0x6576c5]

Tests run before process (pid=6428) failed:
sage: from sage.libs.ecl import test_sigint_before_ecl_sig_on ## line 122 ##
sage: test_sigint_before_ecl_sig_on() ## line 123 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 127 ##
0
sage: from sage.libs.ecl import test_ecl_options ## line 145 ##
sage: test_ecl_options() ## line 146 ##
ECL_OPT_INCREMENTAL_GC = 0
ECL_OPT_TRAP_SIGSEGV = 1
ECL_OPT_TRAP_SIGFPE = 1
ECL_OPT_TRAP_SIGINT = 1
ECL_OPT_TRAP_SIGILL = 1
ECL_OPT_TRAP_SIGBUS = 1
ECL_OPT_TRAP_SIGPIPE = 1
ECL_OPT_TRAP_INTERRUPT_SIGNAL = 1
ECL_OPT_SIGNAL_HANDLING_THREAD = 0
ECL_OPT_SIGNAL_QUEUE_SIZE = 16
ECL_OPT_BOOTED = 1
ECL_OPT_BIND_STACK_SIZE = 8192
ECL_OPT_BIND_STACK_SAFETY_AREA = 1024
ECL_OPT_FRAME_STACK_SIZE = 2048
ECL_OPT_FRAME_STACK_SAFETY_AREA = 128
ECL_OPT_LISP_STACK_SIZE = 32768
ECL_OPT_LISP_STACK_SAFETY_AREA = 128
ECL_OPT_C_STACK_SIZE = 0
ECL_OPT_C_STACK_SAFETY_AREA = 32768
ECL_OPT_HEAP_SIZE = 4294967296
ECL_OPT_HEAP_SAFETY_AREA = 1048576
ECL_OPT_THREAD_INTERRUPT_SIGNAL = 36
ECL_OPT_SET_GMP_MEMORY_FUNCTIONS = 0
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 170 ##
0
sage: from sage.libs.ecl import * ## line 229 ##
sage: init_ecl() ## line 234 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 238 ##
0
sage: from sage.libs.ecl import * ## line 302 ##
sage: from cysignals.tests import interrupt_after_delay ## line 303 ##
sage: ecl_eval("(setf i 0)") ## line 304 ##
<ECL: 0>
sage: inf_loop = ecl_eval("(defun infinite() (loop (incf i)))") ## line 306 ##
sage: interrupt_after_delay(1000) ## line 307 ##
sage: inf_loop() ## line 308 ##

Internal or unrecoverable error in:
Unable to mprotect environment.
  [22: Invalid argument]

;;; ECL C Backtrace
;;; /sage/local/lib/libecl.so.26.3(_ecl_dump_c_backtrace+0x2c) [0x7fd883daa27c]
;;; /sage/local/lib/libecl.so.26.3(ecl_internal_error+0x49) [0x7fd883d53799]
;;; /sage/local/lib/libecl.so.26.3(+0x20ca7d) [0x7fd883d6da7d]
;;; /sage/local/lib/libecl.so.26.3(+0x20cae9) [0x7fd883d6dae9]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x7fd8e6fba330]
;;; /sage/local/lib/libecl.so.26.3(ecl_cons+0x1e) [0x7fd883db1dbe]
;;; /sage/local/lib/libecl.so.26.3(ecl_interpret+0x1fdd) [0x7fd883d456bd]
;;; /sage/local/lib/libecl.so.26.3(ecl_apply_from_stack_frame+0xe8) [0x7fd883d42c88]
;;; /sage/local/lib/libecl.so.26.3(cl_apply+0x2b5) [0x7fd883d431b5]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0xc6c4) [0x7fd883f846c4]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x16c1b) [0x7fd883f8ec1b]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x17173) [0x7fd883f8f173]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3(_PyEval_EvalFrameDefault+0x3f64) [0x5da3e4]
;;; python3(_PyObject_Call_Prepend+0x18a) [0x54a88a]
;;; python3() [0x5a3458]
;;; python3(_PyObject_MakeTpCall+0x13e) [0x54903e]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(_PyObject_Call_Prepend+0xc2) [0x54a7c2]
;;; python3() [0x59dddf]
;;; python3() [0x5998a3]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3() [0x6bcb52]
;;; python3(Py_RunMain+0x232) [0x6bc782]
;;; python3(Py_BytesMain+0x2d) [0x6bc3ed]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x7fd8e6f9f1ca]
;;; /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x7fd8e6f9f28b]
;;; python3(_start+0x25) [0x6576c5]

**********************************************************************

- Upgrade Maxima to 5.49 and ECL to 26.3.27
- Enhance robustness of *maxima-objdir* directory creation in maxima_lib.py
- Add warnings for fallback to ecl_lib in meson.build to improve ECL build reliability
- Format meson.build
- Align ECL first_env to 65536 bytes to fix flaky mprotect EINVAL crash
  (ECL 26.3.27 changed the main thread env from mmap-allocated to a static
  struct; mprotect() requires page alignment, which mmap() guaranteed but
  a static variable does not)
@dimpase
Copy link
Copy Markdown
Member

dimpase commented Apr 14, 2026

@nbruin - interface to ECL is being changed. Can you have a look?

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 14, 2026

I do not edit ecl.pyx

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Apr 14, 2026

src/bin/sage -t --long --warn-long 30.0 --random-seed=286735480429121101562228604801325644303 src/sage/libs/ecl.pyx
Error: sage: from sage.libs.ecl import test_sigint_before_ecl_sig_on ## line 122 ##
sage: test_sigint_before_ecl_sig_on() ## line 123 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 127 ##
0
sage: from sage.libs.ecl import test_ecl_options ## line 145 ##
sage: test_ecl_options() ## line 146 ##
ECL_OPT_INCREMENTAL_GC = 0
ECL_OPT_TRAP_SIGSEGV = 1
ECL_OPT_TRAP_SIGFPE = 1
ECL_OPT_TRAP_SIGINT = 1
ECL_OPT_TRAP_SIGILL = 1
ECL_OPT_TRAP_SIGBUS = 1
ECL_OPT_TRAP_SIGPIPE = 1
ECL_OPT_TRAP_INTERRUPT_SIGNAL = 1
ECL_OPT_SIGNAL_HANDLING_THREAD = 0
ECL_OPT_SIGNAL_QUEUE_SIZE = 16
ECL_OPT_BOOTED = 1
ECL_OPT_BIND_STACK_SIZE = 8192
ECL_OPT_BIND_STACK_SAFETY_AREA = 1024
ECL_OPT_FRAME_STACK_SIZE = 2048
ECL_OPT_FRAME_STACK_SAFETY_AREA = 128
ECL_OPT_LISP_STACK_SIZE = 32768
ECL_OPT_LISP_STACK_SAFETY_AREA = 128
ECL_OPT_C_STACK_SIZE = 0
ECL_OPT_C_STACK_SAFETY_AREA = 32768
ECL_OPT_HEAP_SIZE = 4294967296
ECL_OPT_HEAP_SAFETY_AREA = 1048576
ECL_OPT_THREAD_INTERRUPT_SIGNAL = 36
ECL_OPT_SET_GMP_MEMORY_FUNCTIONS = 0
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 170 ##
0
sage: from sage.libs.ecl import * ## line 229 ##
sage: init_ecl() ## line 234 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 238 ##
0
sage: from sage.libs.ecl import * ## line 302 ##
sage: from cysignals.tests import interrupt_after_delay ## line 303 ##
sage: ecl_eval("(setf i 0)") ## line 304 ##
<ECL: 0>
sage: inf_loop = ecl_eval("(defun infinite() (loop (incf i)))") ## line 306 ##
sage: interrupt_after_delay(1000) ## line 307 ##
sage: inf_loop() ## line 308 ##

Internal or unrecoverable error in:
Unable to mprotect environment.
  [22: Invalid argument]

;;; ECL C Backtrace
;;; /sage/local/lib/libecl.so.26.3(_ecl_dump_c_backtrace+0x2c) [0x7fd883daa27c]
;;; /sage/local/lib/libecl.so.26.3(ecl_internal_error+0x49) [0x7fd883d53799]
;;; /sage/local/lib/libecl.so.26.3(+0x20ca7d) [0x7fd883d6da7d]
;;; /sage/local/lib/libecl.so.26.3(+0x20cae9) [0x7fd883d6dae9]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x7fd8e6fba330]
;;; /sage/local/lib/libecl.so.26.3(ecl_cons+0x1e) [0x7fd883db1dbe]
;;; /sage/local/lib/libecl.so.26.3(ecl_interpret+0x1fdd) [0x7fd883d456bd]
;;; /sage/local/lib/libecl.so.26.3(ecl_apply_from_stack_frame+0xe8) [0x7fd883d42c88]
;;; /sage/local/lib/libecl.so.26.3(cl_apply+0x2b5) [0x7fd883d431b5]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0xc6c4) [0x7fd883f846c4]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x16c1b) [0x7fd883f8ec1b]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x17173) [0x7fd883f8f173]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3(_PyEval_EvalFrameDefault+0x3f64) [0x5da3e4]
;;; python3(_PyObject_Call_Prepend+0x18a) [0x54a88a]
;;; python3() [0x5a3458]
;;; python3(_PyObject_MakeTpCall+0x13e) [0x54903e]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(_PyObject_Call_Prepend+0xc2) [0x54a7c2]
;;; python3() [0x59dddf]
;;; python3() [0x5998a3]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3() [0x6bcb52]
;;; python3(Py_RunMain+0x232) [0x6bc782]
;;; python3(Py_BytesMain+0x2d) [0x6bc3ed]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x7fd8e6f9f1ca]
;;; /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x7fd8e6f9f28b]
;;; python3(_start+0x25) [0x6576c5]

Tests run before process (pid=6428) failed:
sage: from sage.libs.ecl import test_sigint_before_ecl_sig_on ## line 122 ##
sage: test_sigint_before_ecl_sig_on() ## line 123 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 127 ##
0
sage: from sage.libs.ecl import test_ecl_options ## line 145 ##
sage: test_ecl_options() ## line 146 ##
ECL_OPT_INCREMENTAL_GC = 0
ECL_OPT_TRAP_SIGSEGV = 1
ECL_OPT_TRAP_SIGFPE = 1
ECL_OPT_TRAP_SIGINT = 1
ECL_OPT_TRAP_SIGILL = 1
ECL_OPT_TRAP_SIGBUS = 1
ECL_OPT_TRAP_SIGPIPE = 1
ECL_OPT_TRAP_INTERRUPT_SIGNAL = 1
ECL_OPT_SIGNAL_HANDLING_THREAD = 0
ECL_OPT_SIGNAL_QUEUE_SIZE = 16
ECL_OPT_BOOTED = 1
ECL_OPT_BIND_STACK_SIZE = 8192
ECL_OPT_BIND_STACK_SAFETY_AREA = 1024
ECL_OPT_FRAME_STACK_SIZE = 2048
ECL_OPT_FRAME_STACK_SAFETY_AREA = 128
ECL_OPT_LISP_STACK_SIZE = 32768
ECL_OPT_LISP_STACK_SAFETY_AREA = 128
ECL_OPT_C_STACK_SIZE = 0
ECL_OPT_C_STACK_SAFETY_AREA = 32768
ECL_OPT_HEAP_SIZE = 4294967296
ECL_OPT_HEAP_SAFETY_AREA = 1048576
ECL_OPT_THREAD_INTERRUPT_SIGNAL = 36
ECL_OPT_SET_GMP_MEMORY_FUNCTIONS = 0
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 170 ##
0
sage: from sage.libs.ecl import * ## line 229 ##
sage: init_ecl() ## line 234 ##
sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 238 ##
0
sage: from sage.libs.ecl import * ## line 302 ##
sage: from cysignals.tests import interrupt_after_delay ## line 303 ##
sage: ecl_eval("(setf i 0)") ## line 304 ##
<ECL: 0>
sage: inf_loop = ecl_eval("(defun infinite() (loop (incf i)))") ## line 306 ##
sage: interrupt_after_delay(1000) ## line 307 ##
sage: inf_loop() ## line 308 ##

Internal or unrecoverable error in:
Unable to mprotect environment.
  [22: Invalid argument]

;;; ECL C Backtrace
;;; /sage/local/lib/libecl.so.26.3(_ecl_dump_c_backtrace+0x2c) [0x7fd883daa27c]
;;; /sage/local/lib/libecl.so.26.3(ecl_internal_error+0x49) [0x7fd883d53799]
;;; /sage/local/lib/libecl.so.26.3(+0x20ca7d) [0x7fd883d6da7d]
;;; /sage/local/lib/libecl.so.26.3(+0x20cae9) [0x7fd883d6dae9]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x7fd8e6fba330]
;;; /sage/local/lib/libecl.so.26.3(ecl_cons+0x1e) [0x7fd883db1dbe]
;;; /sage/local/lib/libecl.so.26.3(ecl_interpret+0x1fdd) [0x7fd883d456bd]
;;; /sage/local/lib/libecl.so.26.3(ecl_apply_from_stack_frame+0xe8) [0x7fd883d42c88]
;;; /sage/local/lib/libecl.so.26.3(cl_apply+0x2b5) [0x7fd883d431b5]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0xc6c4) [0x7fd883f846c4]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x16c1b) [0x7fd883f8ec1b]
;;; /sage/build/sage-distro/src/sage/libs/ecl.cpython-312-x86_64-linux-gnu.so(+0x17173) [0x7fd883f8f173]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3(_PyEval_EvalFrameDefault+0x3f64) [0x5da3e4]
;;; python3(_PyObject_Call_Prepend+0x18a) [0x54a88a]
;;; python3() [0x5a3458]
;;; python3(_PyObject_MakeTpCall+0x13e) [0x54903e]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(_PyObject_Call_Prepend+0xc2) [0x54a7c2]
;;; python3() [0x59dddf]
;;; python3() [0x5998a3]
;;; python3(_PyObject_MakeTpCall+0x75) [0x548f75]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3(PyEval_EvalCode+0x15b) [0x5d543b]
;;; python3() [0x5d322c]
;;; python3() [0x581d1d]
;;; python3(PyObject_Vectorcall+0x35) [0x549975]
;;; python3(_PyEval_EvalFrameDefault+0xa89) [0x5d6f09]
;;; python3() [0x6bcb52]
;;; python3(Py_RunMain+0x232) [0x6bc782]
;;; python3(Py_BytesMain+0x2d) [0x6bc3ed]
;;; /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x7fd8e6f9f1ca]
;;; /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x7fd8e6f9f28b]
;;; python3(_start+0x25) [0x6576c5]

**********************************************************************

This seems also trigger on ecl 24.5.10. It is not a problem caused by ecl 26.3.27

@tornaria
Copy link
Copy Markdown
Member

This seems also trigger on ecl 24.5.10. It is not a problem caused by ecl 26.3.27

I never saw this with 24.5.10. I'm seeing it occasionally on 26.3.27.

Here's another issue with 26.3.27 that I never saw before: https://github.com/void-linux/void-packages/actions/runs/24376377943/job/71190688685?pr=59932#step:7:36197

  File "/builddir/sagemath-10.8/.xbps-testdir/1776133862/usr/lib/python3.14/site-packages/sage/interfaces/maxima_lib.py", line 236, in <module>
    ecl_eval("#$%s$" % l)
    ~~~~~~~~^^^^^^^^^^^^^
  File "sage/libs/ecl.pyx", line 1334, in sage.libs.ecl.ecl_eval
    cpdef EclObject ecl_eval(str s):
  File "sage/libs/ecl.pyx", line 1361, in sage.libs.ecl.ecl_eval
    raise
  File "sage/libs/ecl.pyx", line 1357, in sage.libs.ecl.ecl_eval
    o = ecl_safe_eval(python_to_ecl(s, True))
  File "sage/libs/ecl.pyx", line 324, in sage.libs.ecl.ecl_safe_eval
    raise RuntimeError("ECL says: {}".format(message))
RuntimeError: ECL says: Cannot open #P"/tmp/.maxima/binary/5_49_0/ecl/26_3_27/share/linearalgebra/mring.c".
C library error: No such file or directory
while evaluating #$load(to_poly_solve)$

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants