Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update ECL to 20.4.24 #22191

Closed
dimpase opened this issue Jan 15, 2017 · 300 comments
Closed

update ECL to 20.4.24 #22191

dimpase opened this issue Jan 15, 2017 · 300 comments

Comments

@dimpase
Copy link
Member

dimpase commented Jan 15, 2017

ECL-20.4.24 has been released (on 2020/04/24)

https://common-lisp.net/project/ecl/posts/ECL-20424-release.html

We should update, as it will resolve some Maxima bugs, and is essential for resolving other Maxima bugs.

Tarball: see checksums.ini [upstream_url].
(To configure Sage to download from the upstream URL, use ./configure --enable-download-from-upstream-url)

Upstream: Fixed upstream, but not in a stable release.

CC: @rwst @kiwifb @jdemeyer @EmmanuelCharpentier @jpflori @antonio-rojas @timokau @saraedum @infinity0 @slel @tobihan @embray @orlitzky

Component: packages: standard

Keywords: upgrade, ecl

Author: Marius Gerbershagen, Nils Bruin, Dima Pasechnik, Erik Bray

Branch: f82c716

Reviewer: Dima Pasechnik, Nils Bruin, François Bissey, Emmanuel Charpentier, Matthias Koeppe

Issue created by migration from https://trac.sagemath.org/ticket/22191

@dimpase dimpase added this to the sage-7.6 milestone Jan 15, 2017
@dimpase
Copy link
Member Author

dimpase commented Jan 16, 2017

Branch: u/dimpase/ecl16.1.3

@dimpase
Copy link
Member Author

dimpase commented Jan 16, 2017

Commit: 33e59cb

@dimpase
Copy link
Member Author

dimpase commented Jan 16, 2017

New commits:

3ed32fbUpgrade Jupyter packages, add enum34
72993f2Merge branch 'u/jdemeyer/upgrade_jupyter_packages' of trac.sagemath.org:sage into develop
2a291abMerge branch 'develop' of trac.sagemath.org:sage into develop
bd5a04fUpdate source to 2.11.0, fix checksum.
8356446Merge branch 'u/charpent/upgrade_git_to_2_10_2__or_2_11___' of trac.sagemath.org:sage into newgit
33e59cbupdate ECL to 16.1.3 - most of our patches are obsolete

@dimpase

This comment has been minimized.

@dimpase
Copy link
Member Author

dimpase commented Jan 16, 2017

comment:2

oops, somewhat wrong branch... testing anyway

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 16, 2017

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

eff6081update ECL to 16.1.3 - most of our patches are obsolete

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 16, 2017

Changed commit from 33e59cb to eff6081

@dimpase
Copy link
Member Author

dimpase commented Jan 16, 2017

Author: Dima Pasechnik

@dimpase
Copy link
Member Author

dimpase commented Jan 16, 2017

comment:6

The FPE problem on #18920 in comment 99 might be due to
ECL 16.1.3 throwing an FPE exception at

> (/ 1.0 0.0)

Condition of type: DIVISION-BY-ZERO
#<a DIVISION-BY-ZERO>

while 16.1.2 happily returns

#.ext::single-float-positive-infinity

@dimpase
Copy link
Member Author

dimpase commented Jan 16, 2017

comment:7

with 6.1.3 there is apparently new --no-trap-fpe which emulates the old behaviour. So we somehow have to figure out where to put this option.

@kiwifb
Copy link
Member

kiwifb commented Jan 16, 2017

comment:8

If it is an option for ecl then somewhere in sage/libs/ecl.pyx is the place, probably in ecl_init but I have to dig a bit.

@kiwifb
Copy link
Member

kiwifb commented Jan 16, 2017

comment:9

There is already an option ECL_OPT_TRAP_SIGFPE is it equivalent?

@dimpase
Copy link
Member Author

dimpase commented Jan 17, 2017

crash gdb log

@dimpase
Copy link
Member Author

dimpase commented Jan 17, 2017

comment:10

Attachment: cra.log

Replying to @kiwifb:

There is already an option ECL_OPT_TRAP_SIGFPE is it equivalent?

I guess it should be. Perhaps it's something more subtle... I attach the crash dump.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 17, 2017

Changed commit from eff6081 to ac8348c

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 17, 2017

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

62b5825some more easy doctest fixes
3c28022more easy doctest fixes
5d86413Merge branch 'public/t18920' of trac.sagemath.org:sage into max5381
100d9d6workaround for # (18920#comment:60
79eb82ffix for maxima bug #3236
814e8edreflect patch's dependence on an earlier maxima tree commit
af7e5ffnew scaling of dynatomic polynomial
68da1e4Merge branch 'public/t18920' of trac.sagemath.org:sage into ecl1613
6bae4b1bumped up for 5.39.0. Sage builds (with ecl 16.1.3)
ac8348cdisable SIGFPE traps

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 17, 2017

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

3ed32fbUpgrade Jupyter packages, add enum34
72993f2Merge branch 'u/jdemeyer/upgrade_jupyter_packages' of trac.sagemath.org:sage into develop
2a291abMerge branch 'develop' of trac.sagemath.org:sage into develop
6027df9Merge branch 'develop' of trac.sagemath.org:sage into develop
b9ee72dupdate ECL to 16.1.3 - most of our patches are obsolete
a06f002disable SIGFPE traps

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 17, 2017

Changed commit from ac8348c to a06f002

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 17, 2017

Changed commit from a06f002 to ad25254

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 17, 2017

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

377e0edupdate ECL to 16.1.3 - most of our patches are obsolete
ad25254disable SIGFPE traps

@dimpase
Copy link
Member Author

dimpase commented Jan 17, 2017

Work Issues: sort out SIGFPE

@dimpase
Copy link
Member Author

dimpase commented Jan 17, 2017

comment:14

this is a clean update branch for ECL 16.1.3 - needs work to sort out SIGFPE.

@nbruin
Copy link
Contributor

nbruin commented Jan 17, 2017

comment:15

I'm pretty sure the change in behaviour comes from this check-in on ECL: https://gitlab.com/embeddable-common-lisp/ecl/commit/c2b2941768f39544f45f24e19a30081d316eeb71

Clearly, this code will be setting FPE generation flags in more places than before. Probably ECL doesn't go out of its way to reset FPE flags when ECL is exiting. So probably, after executing ECL code, it is now the case that (often?) the FPE flags are set the way ECL wants; not the way we want. So in addition to restoring the SIG handlers, we should probably sprinkle an appropriate amount of fesetenv calls around the ECL entry and exit wrappers.

@mkoeppe
Copy link
Contributor

mkoeppe commented Jul 3, 2020

comment:249

Probably better to do https://gitlab.com/embeddable-common-lisp/ecl/-/issues/599#note_369508934

@dimpase
Copy link
Member Author

dimpase commented Jul 3, 2020

comment:250

Replying to @mkoeppe:

Just restart another time

in progress now

@pjbruin
Copy link
Contributor

pjbruin commented Jul 4, 2020

comment:251

The diff has a line build/pkgs/ecl/patches/ffi_abi_libffi33.oldpatch (renamed from build/pkgs/ecl/patches/ffi_abi_libffi33.patch).
Should this patch be removed or left in place?

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:252

Replying to @pjbruin:

The diff has a line build/pkgs/ecl/patches/ffi_abi_libffi33.oldpatch (renamed from build/pkgs/ecl/patches/ffi_abi_libffi33.patch).
Should this patch be removed or left in place?

removed (needless to say it has no effect on functionality). we're still not done with this, due to Cygwin errors. I'll post details on them.

@pjbruin
Copy link
Contributor

pjbruin commented Jul 4, 2020

comment:253

Replying to @dimpase:

Replying to @pjbruin:

The diff has a line build/pkgs/ecl/patches/ffi_abi_libffi33.oldpatch (renamed from build/pkgs/ecl/patches/ffi_abi_libffi33.patch).
Should this patch be removed or left in place?

removed (needless to say it has no effect on functionality). we're still not done with this, due to Cygwin errors. I'll post details on them.

Thanks. By the way, I just opened #30063 for upgrading Maxima (though I am not planning to work on this myself).

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:254

cygwin errors:

pexpect chocked? something else?
Perhaps, redo using libmaxima?

sage -t src/doc/en/constructions/plotting.rst
**********************************************************************
File "src/doc/en/constructions/plotting.rst", line 53, in doc.en.constructions.plotting
Failed example:
    L = [(i/100.0, maxima.eval('jacobi_sn (%s/100.0,2.0)'%i))
        for i in range(-300,300)]
Expected nothing
Got:
    Maxima crashed -- automatically restarting.
**********************************************************************

the following resembles #8772 - apparently just pexpect choking under heavy load?

sage -t src/doc/en/tutorial/tour_algebra.rst
**********************************************************************
File "src/doc/en/tutorial/tour_algebra.rst", line 219, in doc.en.tutorial.tour_algebra
Failed example:
    de1 = maxima("2*diff(x(t),t, 2) + 6*x(t) - 2*y(t)")
Exception raised:
    Traceback (most recent call last):
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in eval
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in <listcomp>
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 793, in _eval_line
        self._error_check(line, out)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 934, in _error_check
        self._error_msg(cmd, out)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 951, in _error_msg
        raise TypeError("Error executing code in Maxima\nCODE:\n\t%s\nMaxima ERROR:\n\t%s"%(cmd, out.replace('-- an error.  To debug this try debugmode(true);','')))
    TypeError: Error executing code in Maxima
    CODE:
        display2d : false;
    Maxima ERROR:
        
    incorrect syntax: Premature termination of input at ;.
    ;
     ^


    During handling of the above exception, another exception occurred:
...

sage -t src/doc/ru/tutorial/tour_algebra.rst
**********************************************************************
File "src/doc/ru/tutorial/tour_algebra.rst", line 202, in doc.ru.tutorial.tour_algebra
Failed example:
    lde1 = de1.laplace("t","s"); lde1
Exception raised:
    Traceback (most recent call last):
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 707, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1131, in compile_and_execute
        exec(compiled, globs)
      File "<doctest doc.ru.tutorial.tour_algebra[1]>", line 1, in <module>
        lde1 = de1.laplace("t","s"); lde1
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 680, in __call__
        return self._obj.parent().function_call(self._name, [self._obj] + list(args), kwds)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 596, in function_call
        args, kwds = self._convert_args_kwds(args, kwds)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 557, in _convert_args_kwds
        args[i] = self(arg)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 296, in __call__
        return cls(self, x, name=name)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 1157, in __init__
        ExpectElement.__init__(self, parent, value, is_name=False, name=None)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1469, in __init__
        self._name = parent._create(value, name=name)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 501, in _create
        self.set(name, value)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 1002, in set
        self._eval_line(cmd)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 793, in _eval_line
        self._error_check(line, out)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 934, in _error_check
        self._error_msg(cmd, out)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 951, in _error_msg
        raise TypeError("Error executing code in Maxima\nCODE:\n\t%s\nMaxima ERROR:\n\t%s"%(cmd, out.replace('-- an error.  To debug this try debugmode(true);','')))
    TypeError: Error executing code in Maxima
    CODE:
        sage4 : t$
    Maxima ERROR:
        
    incorrect syntax: Premature termination of input at ;.
    ;
     ^
...

sage -t src/doc/ru/tutorial/interfaces.rst
**********************************************************************
File "src/doc/ru/tutorial/interfaces.rst", line 258, in doc.ru.tutorial.interfaces
Failed example:
    f = maxima.eval('ij_entry[i,j] := i/j')
Exception raised:
    Traceback (most recent call last):
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 707, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1131, in compile_and_execute
        exec(compiled, globs)
      File "<doctest doc.ru.tutorial.interfaces[0]>", line 1, in <module>
        f = maxima.eval('ij_entry[i,j] := i/j')
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in eval
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in <listcomp>
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 782, in _eval_line
        self._sendline(line)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 644, in _sendline
        self._sendstr(string)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1250, in _sendstr
        self._start()
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 609, in _start
        Expect._start(self)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 527, in _start
        self.eval(X)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in eval
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in <listcomp>
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 788, in _eval_line
        assert line_echo.strip().endswith(line.strip()), 'mismatch:\n' + line_echo + line
    AssertionError: mismatch:
    
    nolabels : true;
...

File "src/doc/ru/tutorial/interfaces.rst", line 259, in doc.ru.tutorial.interfaces
Failed example:
    A = maxima('genmatrix(ij_entry,4,4)'); A
Expected:
    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])
Got:
    matrix([ij_entry[1,1],ij_entry[1,2],ij_entry[1,3],ij_entry[1,4]],[ij_entry[2,1],ij_entry[2,2],ij_entry[2,3],ij_entry[2,4]],[ij_entry[3,1],ij_entry[3,2],ij_entry[3,3],ij_entry[3,4]],[ij_entry[4,1],ij_entry[4,2],ij_entry[4,3],ij_entry[4,4]])
...

[and more of the same...]

sage -t src/sage/symbolic/assumptions.py
**********************************************************************
File "src/sage/symbolic/assumptions.py", line 37, in sage.symbolic.assumptions
Failed example:
    maxima('features')
Exception raised:
    Traceback (most recent call last):
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 707, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1131, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.symbolic.assumptions[6]>", line 1, in <module>
        maxima('features')
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 296, in __call__
        return cls(self, x, name=name)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 1157, in __init__
        ExpectElement.__init__(self, parent, value, is_name=False, name=None)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1469, in __init__
        self._name = parent._create(value, name=name)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 501, in _create
        self.set(name, value)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 1002, in set
        self._eval_line(cmd)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 782, in _eval_line
        self._sendline(line)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 644, in _sendline
        self._sendstr(string)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1250, in _sendstr
        self._start()
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 609, in _start
        Expect._start(self)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 527, in _start
        self.eval(X)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in eval
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1383, in <listcomp>
        for L in code.split('\n') if L != ''])
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 788, in _eval_line
        assert line_echo.strip().endswith(line.strip()), 'mismatch:\n' + line_echo + line
    AssertionError: mismatch:
    
    domain : complex;

...

the following - already mentioned:

sage -t src/sage/symbolic/expression.pyx
**********************************************************************
File "src/sage/symbolic/expression.pyx", line 8735, in sage.symbolic.expression.Expression.arccosh
Failed example:
    maxima('acosh(0.5)')
Expected:
    1.04719755119659...*%i
Got:
    1.047197551196598*%i-1.110223024625157e-16

is not a big deal, just a floating point noise.

Pexpext, again (?):

sage -t src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py
**********************************************************************
File "src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py", line 53, in sage.tests.books.computational-mathematics-with-sagemath.sol.graphique_doctest
Failed example:
    P = desolve_system_rk4(f(x,y), [x,y],ics=[0,10,5], ivar=t, end_points=15)
Exception raised:
    Traceback (most recent call last):
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 707, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1131, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.books.computational-mathematics-with-sagemath.sol.graphique_doctest[22]>", line 1, in <module>
        P = desolve_system_rk4(f(x,y), [x,y],ics=[Integer(0),Integer(10),Integer(5)], ivar=t, end_points=Integer(15))
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/calculus/desolvers.py", line 1490, in desolve_system_rk4
        maxima("load('dynamics)")
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 296, in __call__
        return cls(self, x, name=name)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 1157, in __init__
        ExpectElement.__init__(self, parent, value, is_name=False, name=None)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1469, in __init__
        self._name = parent._create(value, name=name)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/interface.py", line 501, in _create
        self.set(name, value)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 1002, in set
        self._eval_line(cmd)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 782, in _eval_line
        self._sendline(line)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 644, in _sendline
        self._sendstr(string)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/expect.py", line 1250, in _sendstr
        self._start()
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 618, in _start
        self._eval_line('0;')
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 793, in _eval_line
        self._error_check(line, out)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 934, in _error_check
        self._error_msg(cmd, out)
      File "/cygdrive/d/a/sage/sage/local/lib/python3.7/site-packages/sage/interfaces/maxima.py", line 951, in _error_msg
        raise TypeError("Error executing code in Maxima\nCODE:\n\t%s\nMaxima ERROR:\n\t%s"%(cmd, out.replace('-- an error.  To debug this try debugmode(true);','')))
    TypeError: Error executing code in Maxima
    CODE:
        0;
    Maxima ERROR:
        
    incorrect syntax: tex is not an infix operator
    lisp (defun tex-
                  ^

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

Attachment: ptest.log

cygwin-standard run

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:255

see the attachment for complete ptest.log on Cygwin

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:256

As we don't see errors on embedded Maxima, but only on pexpect Maxima, I am inclined to say it is OK.

@mkoeppe
Copy link
Contributor

mkoeppe commented Jul 4, 2020

comment:257

Maybe not "OK", but I think acceptable for the next beta. But the precise failure mode of the maxima pexpect interface should be investigated. This is clearly a regression from the older ECL.

@mkoeppe
Copy link
Contributor

mkoeppe commented Jul 4, 2020

comment:258

Replying to @dimpase:

cygwin errors:

pexpect chocked? [...]

sage -t src/doc/en/constructions/plotting.rst
**********************************************************************
File "src/doc/en/constructions/plotting.rst", line 53, in doc.en.constructions.plotting
Failed example:
    L = [(i/100.0, maxima.eval('jacobi_sn (%s/100.0,2.0)'%i))
        for i in range(-300,300)]
Expected nothing
Got:
    Maxima crashed -- automatically restarting.
**********************************************************************

the following resembles #8772 - apparently just pexpect choking under heavy load?

Yes, let's reuse that old ticket to investigate this more.

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:259

it could actually be an improvement - maxima runs faster, and on a heavily loaded host this leads to this mess. I will try another round of Cygwin tests, with tests not run in parallel.

@mkoeppe
Copy link
Contributor

mkoeppe commented Jul 4, 2020

comment:260

It would be really good to simulate these tests without having to build all of Sage so that this could become part of the CI in spaghettisalat/ecl#1

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:261

Replying to @dimpase:

it could actually be an improvement - maxima runs faster, and on a heavily loaded host this leads to this mess. I will try another round of Cygwin tests, with tests not run in parallel.

tests running at https://github.com/dimpase/sage/actions/runs/157700338

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:262

by the way, there are also a number of giac tests failing on Cygwin, with a very similar pexpect under heavy load (see attachment ptest results); so I really think there is nothing wrong with ECL on Cygwin per se, it's pexpect that plays up in this particular testing configuration.

@dimpase
Copy link
Member Author

dimpase commented Jul 4, 2020

comment:263

Replying to @mkoeppe:

Replying to @dimpase:

cygwin errors:

pexpect chocked? [...]

sage -t src/doc/en/constructions/plotting.rst
**********************************************************************
File "src/doc/en/constructions/plotting.rst", line 53, in doc.en.constructions.plotting
Failed example:
    L = [(i/100.0, maxima.eval('jacobi_sn (%s/100.0,2.0)'%i))
        for i in range(-300,300)]
Expected nothing
Got:
    Maxima crashed -- automatically restarting.
**********************************************************************

the following resembles #8772 - apparently just pexpect choking under heavy load?

Yes, let's reuse that old ticket to investigate this more.

this can be rewritten as follows,

sage: L = [(i/100.0, maxima_calculus.eval('jacobi_sn (%s/100.0,2.0)'%i))
....:         for i in range(-300,300)]

avoiding pexpect, I think. Indeed, it's 5 times faster:

sage: timeit("L = [(i/100.0, maxima_calculus.eval('jacobi_sn (%s/100.0,2.0)'%i)) for i in range(-300,300)]")
5 loops, best of 3: 110 ms per loop
sage: timeit("L = [(i/100.0, maxima.eval('jacobi_sn (%s/100.0,2.0)'%i)) for i in range(-300,300)]")
5 loops, best of 3: 556 ms per loop

@dimpase
Copy link
Member Author

dimpase commented Jul 5, 2020

comment:264

Replying to @dimpase:

5 loops, best of 3: 110 ms per loop
sage: timeit("L = [(i/100.0, maxima.eval('jacobi_sn (%s/100.0,2.0)'%i)) for i in range(-300,300)]")
5 loops, best of 3: 556 ms per loop
}}}

to improve this, I opened #30071.

@dimpase
Copy link
Member Author

dimpase commented Jul 6, 2020

comment:265

Replying to @dimpase:

Replying to @dimpase:

it could actually be an improvement - maxima runs faster, and on a heavily loaded host this leads to this mess. I will try another round of Cygwin tests, with tests not run in parallel.

tests running at https://github.com/dimpase/sage/actions/runs/157700338

and this ran out of time limit, so no interesting tests were performed.

I think we should proceed with merging this ticket, anyway, and speed up Maxima things on #30071

@vbraun
Copy link
Member

vbraun commented Jul 10, 2020

Changed branch from public/packages/ecl20 to f82c716

@spaghettisalat
Copy link

Changed commit from f82c716 to none

@spaghettisalat
Copy link

comment:268

Replying to @dimpase:

maybe upstream will do a minor release, so that we don't carry all these patches along?

Sorry for the late reply, I've been busy. I agree that a bugfix release is needed. This will probably still take a bit though, I want to take a look at some other bugs first (https://gitlab.com/embeddable-common-lisp/ecl/-/issues/594 and https://gitlab.com/embeddable-common-lisp/ecl/-/issues/586) and then there's still tests to run.

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

No branches or pull requests