Opened 6 years ago

Closed 6 years ago

#19672 closed defect (fixed)

giac depends on Sage runtime

Reported by: jdemeyer Owned by: frederichan
Priority: critical Milestone: sage-6.10
Component: packages: optional Keywords:
Cc: frederichan Merged in:
Authors: Frederic Han Reviewers: Jeroen Demeyer
Report Upstream: N/A Work issues:
Branch: 88cd182 (Commits, GitHub, GitLab) Commit: 88cd1821f32da02ec18ebf035a07917e0b9ee1bd
Dependencies: Stopgaps:

Status badges

Description


Change History (17)

comment:1 Changed 6 years ago by frederichan

  • Branch set to u/frederichan/trac19672
  • Commit set to 216d44a3e65733ef9258e7a8700a7710fca84c4b
  • Owner changed from (none) to frederichan

New commits:

216d44aadd SAGERUNTIME in dependencies

comment:2 Changed 6 years ago by jdemeyer

You should write | $(SAGERUNTIME) in the dependencies. That means that giac will be built after the Sage runtime, but not rebuilt every time that the Sage runtime gets rebuilt.

And don't forget your name as author.

comment:3 Changed 6 years ago by jdemeyer

As an example, see the dependencies for sagetex.

comment:4 Changed 6 years ago by jdemeyer

  • Reviewers set to Jeroen Demeyer

comment:5 follow-up: Changed 6 years ago by frederichan

  • Authors set to Frederic Han

Thank you for the Hint. I have found only sagetex depending on SAGERUNTIME, so should I try to remove this dependency in spkg-install?

I think that the guilty is the following:

#############################################################
#   Build dir for the pexpect interface
#############################################################
# create the script_subdirectory for the pexpect giac interface by running a trivial instruction
sage -c "giac(1)"

but I wonder if it is still usefull? (I can run the first pexpect giac interface session with the binary sage tarball 6.9 without the ownership of the sage install)

comment:6 in reply to: ↑ 5 Changed 6 years ago by jdemeyer

Replying to frederichan:

Thank you for the Hint. I have found only sagetex depending on SAGERUNTIME, so should I try to remove this dependency in spkg-install?

I think that the guilty is the following:

#############################################################
#   Build dir for the pexpect interface
#############################################################
# create the script_subdirectory for the pexpect giac interface by running a trivial instruction
sage -c "giac(1)"

but I wonder if it is still usefull? (I can run the first pexpect giac interface session with the binary sage tarball 6.9 without the ownership of the sage install)

I don't mind to keep that command, it also works as a test that giac works.

comment:7 Changed 6 years ago by git

  • Commit changed from 216d44a3e65733ef9258e7a8700a7710fca84c4b to 9beaf2a99da0c5fd5e27365300142195d93bee2e

Branch pushed to git repo; I updated commit sha1. New commits:

9beaf2aadd a | so that giac is not rebuilt everytime SAGERUNTIME is rebuilt

comment:8 Changed 6 years ago by jdemeyer

needs review?

comment:9 Changed 6 years ago by frederichan

I don't plan to add changes, but I have not yet tested this because my sage was not up to date. So I was waiting for my fresh built to finish and then test... But if you prefer to review it now it is OK for me.

comment:10 follow-up: Changed 6 years ago by frederichan

So for my first test with sage 6.10beta7 I got the following PB: I was able to built giacpy but not with the check option because some prettyprint in sympy was not found. make sympy solved the problem.

Should sympy be a dep of giacpy?

comment:11 Changed 6 years ago by frederichan

  • Status changed from new to needs_review

comment:12 in reply to: ↑ 10 Changed 6 years ago by jdemeyer

  • Status changed from needs_review to needs_work

Replying to frederichan:

Should sympy be a dep of giacpy?

Yes.

comment:13 Changed 6 years ago by jdemeyer

Also giacpy should depend on maxima:

Trying (line 1516):    simplify(SR(a)+sin(u)*sin(v))
Expecting:
    cos(u)*cos(v)
**********************************************************************
File "giacpy.pyx", line 1516, in giacpy.encstring23._giac.Pygen.__iter__._symbolic_
Failed example:
    simplify(SR(a)+sin(u)*sin(v))
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest giacpy.encstring23._giac.Pygen.__iter__._symbolic_[2]>", line 1, in <module>
        simplify(SR(a)+sin(u)*sin(v))
      File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/calculus/functional.py", line 51, in simplify
        return f.simplify()
      File "sage/symbolic/expression.pyx", line 8714, in sage.symbolic.expression.Expression.simplify (build/cythonized/sage/symbolic/expression.cpp:45102)
        return self._parent(self._maxima_())
      File "sage/symbolic/expression.pyx", line 786, in sage.symbolic.expression.Expression._maxima_ (build/cythonized/sage/symbolic/expression.cpp:7048)
        return super(Expression, self)._interface_(maxima)
      File "sage/structure/sage_object.pyx", line 698, in sage.structure.sage_object.SageObject._interface_ (build/cythonized/sage/structure/sage_object.c:5631)
        nm = I.name()
      File "sage/misc/lazy_import.pyx", line 347, in sage.misc.lazy_import.LazyImport.__getattr__ (build/cythonized/sage/misc/lazy_import.c:3405)
        return getattr(self._get_object(), attr)
      File "sage/misc/lazy_import.pyx", line 246, in sage.misc.lazy_import.LazyImport._get_object (build/cythonized/sage/misc/lazy_import.c:2150)
        self._object = getattr(__import__(self._module, {}, {}, [self._name]), self._name)
      File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 80, in <module>
        ecl_eval("(require 'maxima)")
      File "sage/libs/ecl.pyx", line 1314, in sage.libs.ecl.ecl_eval (build/cythonized/sage/libs/ecl.c:9725)
        cpdef EclObject ecl_eval(bytes s):
      File "sage/libs/ecl.pyx", line 1329, in sage.libs.ecl.ecl_eval (build/cythonized/sage/libs/ecl.c:9658)
        o=ecl_safe_eval(o)
      File "sage/libs/ecl.pyx", line 342, in sage.libs.ecl.ecl_safe_eval (build/cythonized/sage/libs/ecl.c:4673)
        raise RuntimeError, "ECL says: "+ecl_base_string_pointer_safe(s)
    RuntimeError: ECL says: Module error: Don't know how to REQUIRE MAXIMA.

comment:14 Changed 6 years ago by git

  • Commit changed from 9beaf2a99da0c5fd5e27365300142195d93bee2e to 88cd1821f32da02ec18ebf035a07917e0b9ee1bd

Branch pushed to git repo; I updated commit sha1. New commits:

3c926c7doctests in giacpy depends on sympy and maxima
88cd182Merge branch 'u/frederichan/trac19672' of git://trac.sagemath.org/sage into trac19672

comment:15 Changed 6 years ago by frederichan

  • Status changed from needs_work to needs_review

comment:16 Changed 6 years ago by jdemeyer

  • Status changed from needs_review to positive_review

comment:17 Changed 6 years ago by vbraun

  • Branch changed from u/frederichan/trac19672 to 88cd1821f32da02ec18ebf035a07917e0b9ee1bd
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.