1. 07 Sep, 2018 1 commit
  2. 06 Sep, 2018 1 commit
  3. 05 Sep, 2018 3 commits
    • Release Manager's avatar
      Trac #25321: coxeter3 spkg-install: sed -i is not portable · 087970b2
      Release Manager authored
      In `build/pkgs/coxeter3/spkg-install`, the line
      {{{
      sed -i "s|@SAGE_LOCAL@|$SAGE_LOCAL|g" directories.h
      }}}
      does not work under macOS because `sed -i` is not portable. (It prints
      an error and continues, and it does not change the file
      `directories.h`.) Under macOS, the following works:
      {{{
      sed -e "s|@SAGE_LOCAL@|$SAGE_LOCAL|g" -i '' directories.h
      }}}
      but I'm not sure this works with GNU sed.
      
      URL: https://trac.sagemath.org/25321
      Reported by: jhpalmieri
      Ticket author(s): John Palmieri
      Reviewer(s): Dima Pasechnik
      087970b2
    • Release Manager's avatar
      Trac #26186: cleanup of ssmod.py · b67dac0e
      Release Manager authored
      mostly many pep8 details, also hardening one doctest for python3
      readiness in
      {{{def supersingular_points(self):}}}
      
      URL: https://trac.sagemath.org/26186
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      b67dac0e
    • Release Manager's avatar
      Trac #26110: Tests marked "optional - dochtml" are not run by default · b286ec47
      Release Manager authored
      According to #25345, tests marked `optional - dochtml` are supposed to
      be run by default, but they are not, at least not for me. When I run
      doctests, I see
      {{{
      Using --optional=coxeter3,mpir,python2,sage
      }}}
      Note that `dochtml` is missing. As an experiment, I added
      {{{
          sage: 1 + 1 == 3 # optional -- dochtml
          True
      }}}
      to a file, and when I ran `sage -t ...` on that file, tests passed.
      (Tests failed if I included the `--optional=dochtml` flag.)
      
      Marked as a blocker because as things stand, we are skipping tests that
      we should not be skipping, and that we were not skipping before #25345.
      
      URL: https://trac.sagemath.org/26110
      Reported by: jhpalmieri
      Ticket author(s): Jeroen Demeyer
      Reviewer(s): John Palmieri
      b286ec47
  4. 04 Sep, 2018 14 commits
    • Release Manager's avatar
      Trac #26182: py3: fix doctests failures of sage/sets/disjoint_set.pyx · 1a152c0b
      Release Manager authored
      On https://patchbot.sagemath.org/ticket/0/ there are two failures for
      the file `sage/sets/disjoint_set.pyx` when run with Python 3:
      
      {{{
      sage -t --long src/sage/sets/disjoint_set.pyx
      **********************************************************************
      File "src/sage/sets/disjoint_set.pyx", line 537, in
      sage.sets.disjoint_set.DisjointSet_of_integers.root_to_elements_dict
      Failed example:
          d.root_to_elements_dict()
      Expected:
          {1: [1], 2: [0, 2, 3], 4: [4]}
      Got:
          {2: [0, 2, 3], 1: [1], 4: [4]}
      **********************************************************************
      File "src/sage/sets/disjoint_set.pyx", line 829, in
      sage.sets.disjoint_set.DisjointSet_of_hashables.root_to_elements_dict
      Failed example:
          e = d.root_to_elements_dict(); e
      Expected:
          {0: [0], 2: [2, 3], 4: [1, 4]}
      Got:
          {0: [0], 4: [1, 4], 2: [2, 3]}
      **********************************************************************
      2 items had failures:
         1 of   5 in
      sage.sets.disjoint_set.DisjointSet_of_hashables.root_to_elements_dict
         1 of   8 in
      sage.sets.disjoint_set.DisjointSet_of_integers.root_to_elements_dict
          [241 tests, 2 failures, 0.39 s]
      }}}
      
      URL: https://trac.sagemath.org/26182
      Reported by: slabbe
      Ticket author(s): Sébastien Labbé
      Reviewer(s): Travis Scrimshaw
      1a152c0b
    • Release Manager's avatar
      Trac #26171: unify wikipedia links in graphs module · 3ab642f1
      Release Manager authored
      Unify the usage of wikipedia links in the graphs module.
      
      URL: https://trac.sagemath.org/26171
      Reported by: dcoudert
      Ticket author(s): David Coudert
      Reviewer(s): Bryan Gin-ge Chen
      3ab642f1
    • Release Manager's avatar
      Trac #25987: Sagemath translation problem with lambert_w when using Fricas and giac · aa69c948
      Release Manager authored
      It does not look like Sagemath is translating lambert_w to Fricas and
      Giac syntax as I get an error when using fricas and giac but not with
      sympy.
      
      in Fricas, lambert_w(x) is lambertW(x)
      
      http://fricas.github.io/api/FunctionalSpecialFunction.html
      
      Using  SageMath version 8.3.rc2, Release Date: 2018-07-22
      
      {{{
      sage: var('x')
      x
      sage: integrate(lambert_w(x), x)
      (lambert_w(x)^2 - lambert_w(x) + 1)*x/lambert_w(x)
      
      sage: integrate(lambert_w(x), x,algorithm="fricas")
      ------------------------------------------------------------------------
      ---
      TypeError                                 Traceback (most recent call
      last)
      <ipython-input-9-106b0d350e34> in <module>()
      ----> 1 integrate(lambert_w(x), x,algorithm="fricas")
      
      /usr/lib/python2.7/site-packages/sage/misc/functional.py in integral(x,
      *args, **kwds)
          751     """
          752     if hasattr(x, 'integral'):
      --> 753         return x.integral(*args, **kwds)
          754     else:
          755         from sage.symbolic.ring import SR
      
      /usr/lib/python2.7/site-packages/sage/symbolic/expression.pyx in
      sage.symbolic.expression.Expression.integral
      (build/cythonized/sage/symbolic/expression.cpp:69759)()
        12364                     R = ring.SR
        12365             return R(integral(f, v, a, b, **kwds))
      > 12366         return integral(self, *args, **kwds)
        12367
        12368     integrate = integral
      
      /usr/lib/python2.7/site-packages/sage/symbolic/integration/integral.py
      in integrate(expression, v, a, b, algorithm, hold)
          814         if not integrator:
          815             raise ValueError("Unknown algorithm: %s" %
      algorithm)
      --> 816         return integrator(expression, v, a, b)
          817     if a is None:
          818         return indefinite_integral(expression, v, hold=hold)
      
      /usr/lib/python2.7/site-packages/sage/symbolic/integration/external.py
      in fricas_integrator(expression, v, a, b, noPole)
          173
          174     from sage.interfaces.fricas import fricas
      --> 175     ex = fricas(expression)
          176
          177     if a is None:
      
      /usr/lib/python2.7/site-packages/sage/interfaces/interface.py in
      __call__(self, x, name)
          280             return cls(self, x, name=name)
          281         try:
      --> 282             return self._coerce_from_special_method(x)
          283         except TypeError:
          284             raise
      
      /usr/lib/python2.7/site-packages/sage/interfaces/interface.py in
      _coerce_from_special_method(self, x)
          306             s = '_gp_'
          307         try:
      --> 308             return (x.__getattribute__(s))(self)
          309         except AttributeError:
          310             return self(x._interface_init_())
      
      /usr/lib/python2.7/site-packages/sage/structure/sage_object.pyx in
      sage.structure.sage_object.SageObject._fricas_
      (build/cythonized/sage/structure/sage_object.c:7729)()
          807             import sage.interfaces.fricas
          808             G = sage.interfaces.fricas.fricas
      --> 809         return self._interface_(G)
          810
          811     def _fricas_init_(self):
      
      /usr/lib/python2.7/site-packages/sage/symbolic/expression.pyx in
      sage.symbolic.expression.Expression._interface_
      (build/cythonized/sage/symbolic/expression.cpp:7825)()
          792         if is_a_constant(self._gobj):
          793             return self.pyobject()._interface_(I)
      --> 794         return super(Expression, self)._interface_(I)
          795
          796     def _maxima_(self, session=None):
      
      /usr/lib/python2.7/site-packages/sage/structure/sage_object.pyx in
      sage.structure.sage_object.SageObject._interface_
      (build/cythonized/sage/structure/sage_object.c:5895)()
          741             except Exception:
          742                 raise NotImplementedError("coercion of object %s
      to %s not implemented:\n%s\n%s" % (repr(self), I))
      --> 743         X = I(s)
          744         if c:
          745             try:
      
      /usr/lib/python2.7/site-packages/sage/interfaces/interface.py in
      __call__(self, x, name)
          278
          279         if isinstance(x, string_types):
      --> 280             return cls(self, x, name=name)
          281         try:
          282             return self._coerce_from_special_method(x)
      
      /usr/lib/python2.7/site-packages/sage/interfaces/expect.py in
      __init__(self, parent, value, is_name, name)
         1443             except (RuntimeError, ValueError) as x:
         1444                 self._session_number = -1
      -> 1445                 raise_(TypeError, TypeError(*x.args),
      sys.exc_info()[2])
         1446             except BaseException:
         1447                 self._session_number = -1
      
      /usr/lib/python2.7/site-packages/sage/interfaces/expect.py in
      __init__(self, parent, value, is_name, name)
         1438         else:
         1439             try:
      -> 1440                 self._name = parent._create(value, name=name)
         1441             # Convert ValueError and RuntimeError to TypeError
      for
         1442             # coercion to work properly.
      
      /usr/lib/python2.7/site-packages/sage/interfaces/interface.py in
      _create(self, value, name)
          474     def _create(self, value, name=None):
          475         name = self._next_var_name() if name is None else name
      --> 476         self.set(name, value)
          477         return name
          478
      
      /usr/lib/python2.7/site-packages/sage/interfaces/fricas.py in set(self,
      var, value)
          544         cmd = '%s%s%s;'%(var,self._assign_symbol(), value)
          545         output = self.eval(cmd, reformat=False)
      --> 546         self._check_errors(value, output)
          547
          548     def get(self, var):
      
      /usr/lib/python2.7/site-packages/sage/interfaces/fricas.py in
      _check_errors(self, line, output)
          518             for old, new in replacements:
          519                 output = output.replace(old, new)
      --> 520             raise RuntimeError("An error occurred when FriCAS
      evaluated '%s':\n%s" % (line, output))
          521
          522         # or even an error
      
      TypeError: An error occurred when FriCAS evaluated 'lambert_w(0,x)':
         There are no library operations named lambert_w
            Use HyperDoc Browse or issue
                                     )what op lambert_w
            to learn if there is any operation containing " lambert_w " in its
            name.
      
         Cannot find a definition or applicable library operation named
            lambert_w with argument type(s)
                                     NonNegativeInteger
                                        Variable(x)
      
            Perhaps you should use "@" to indicate the required return type,
      or
            "$" to specify which version of the function you need.
      
      }}}
      
      And with GIAC: (I do not know if giac supports lambert_w)
      
      {{{
      sage: var('x')
      x
      sage: integrate(lambert_w(x), x, algorithm="giac")
      ------------------------------------------------------------------------
      ---
      TypeError                                 Traceback (most recent call
      last)
      <ipython-input-2-ec332005d064> in <module>()
      ----> 1 integrate(lambert_w(x), x, algorithm="giac")
      
      /usr/lib/python2.7/site-packages/sage/misc/functional.py in integral(x,
      *args, **kwds)
          751     """
          752     if hasattr(x, 'integral'):
      --> 753         return x.integral(*args, **kwds)
          754     else:
          755         from sage.symbolic.ring import SR
      
      /usr/lib/python2.7/site-packages/sage/symbolic/expression.pyx in
      sage.symbolic.expression.Expression.integral
      (build/cythonized/sage/symbolic/expression.cpp:69759)()
        12364                     R = ring.SR
        12365             return R(integral(f, v, a, b, **kwds))
      > 12366         return integral(self, *args, **kwds)
        12367
        12368     integrate = integral
      
      /usr/lib/python2.7/site-packages/sage/symbolic/integration/integral.py
      in integrate(expression, v, a, b, algorithm, hold)
          814         if not integrator:
          815             raise ValueError("Unknown algorithm: %s" %
      algorithm)
      --> 816         return integrator(expression, v, a, b)
          817     if a is None:
          818         return indefinite_integral(expression, v, hold=hold)
      
      /usr/lib/python2.7/site-packages/sage/symbolic/integration/external.py
      in giac_integrator(expression, v, a, b)
          211     ex = expression._giac_()
          212     if a is None:
      --> 213         result = ex.integrate(v._giac_())
          214     else:
          215         result = ex.integrate(v._giac_(), a._giac_(),
      b._giac_())
      
      /usr/lib/python2.7/site-packages/sage/interfaces/giac.py in
      integral(self, var, min, max)
         1134         """
         1135         if min is None:
      -> 1136             return giac('int(%s,%s)'%(self.name(),var))
         1137         else:
         1138             if max is None:
      
      /usr/lib/python2.7/site-packages/sage/interfaces/interface.py in
      __call__(self, x, name)
          278
          279         if isinstance(x, string_types):
      --> 280             return cls(self, x, name=name)
          281         try:
          282             return self._coerce_from_special_method(x)
      
      /usr/lib/python2.7/site-packages/sage/interfaces/expect.py in
      __init__(self, parent, value, is_name, name)
         1443             except (RuntimeError, ValueError) as x:
         1444                 self._session_number = -1
      -> 1445                 raise_(TypeError, TypeError(*x.args),
      sys.exc_info()[2])
         1446             except BaseException:
         1447                 self._session_number = -1
      
      /usr/lib/python2.7/site-packages/sage/interfaces/expect.py in
      __init__(self, parent, value, is_name, name)
         1438         else:
         1439             try:
      -> 1440                 self._name = parent._create(value, name=name)
         1441             # Convert ValueError and RuntimeError to TypeError
      for
         1442             # coercion to work properly.
      
      /usr/lib/python2.7/site-packages/sage/interfaces/interface.py in
      _create(self, value, name)
          474     def _create(self, value, name=None):
          475         name = self._next_var_name() if name is None else name
      --> 476         self.set(name, value)
          477         return name
          478
      
      /usr/lib/python2.7/site-packages/sage/interfaces/giac.py in set(self,
      var, value)
          643         """
          644         cmd = '%s:=%s:;'%(var,value)   #if giac is not in maple
      mode ( maple_mode(0))
      --> 645         out = self.eval(cmd)
          646         if out.find("error") != -1:
          647             raise TypeError("Error executing code in
      Giac\nCODE:\n\t%s\nGiac ERROR:\n\t%s"%(cmd, out))
      
      /usr/lib/python2.7/site-packages/sage/interfaces/giac.py in eval(self,
      code, strip, **kwds)
          627         if strip:
          628              code = code.replace("\n","").strip()
      --> 629         ans = Expect.eval(self, code, strip=strip,
      **kwds).strip()
          630         return ans
          631
      
      /usr/lib/python2.7/site-packages/sage/interfaces/expect.py in eval(self,
      code, strip, synchronize, locals, allow_use_file, split_lines, **kwds)
         1352                 elif split_lines:
         1353                     return '\n'.join([self._eval_line(L,
      allow_use_file=allow_use_file, **kwds)
      -> 1354                                         for L in
      code.split('\n') if L != ''])
         1355                 else:
         1356                     return self._eval_line(code,
      allow_use_file=allow_use_file, **kwds)
      
      /usr/lib/python2.7/site-packages/sage/interfaces/giac.py in
      _eval_line(self, line, allow_use_file, wait_for_prompt,
      restart_if_needed)
          594                     wait_for_prompt=wait_for_prompt)
          595             if z.lower().find("error") != -1:
      --> 596                 raise RuntimeError("An error occurred running a
      Giac command:\nINPUT:\n%s\nOUTPUT:\n%s"%(line, z))
          597         return z
          598
      
      TypeError: An error occurred running a Giac command:
      INPUT:
      sage2:=int(sage0,x):;
      OUTPUT:
      "Expression used like a function diff(lambert_w,1)
      You should write subst(diff(lambert_w,1),lambert_w,0,x) Error: Bad
      Argument Value"
      sage:
      
      }}}
      
      URL: https://trac.sagemath.org/25987
      Reported by: gh-nasser1
      Ticket author(s): Martin Rubey
      Reviewer(s): Frédéric Chapoton
      aa69c948
    • Release Manager's avatar
      Trac #25886: Implement field_of_definition for DynamicalSystem · c2f70c83
      Release Manager authored
      For the nth iterate of a given DynamicalSystem, we provide a method that
      returns the field extension of the base field over which all of the
      periodic points, critical points, or pre-images of a point are defined.
      
      URL: https://trac.sagemath.org/25886
      Reported by: gh-Loops7
      Ticket author(s): Joseph Lupo
      Reviewer(s): Ben Hutz
      c2f70c83
    • Release Manager's avatar
      Trac #26187: py3: correct a deprecated assert · 8b6dd4d6
      Release Manager authored
      follow-up of #24272
      
      URL: https://trac.sagemath.org/26187
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Vincent Klein
      8b6dd4d6
    • Release Manager's avatar
      Trac #26181: py3: cleanup of the Cusps class · 7f38b652
      Release Manager authored
      also part of #24551
      
      URL: https://trac.sagemath.org/26181
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      7f38b652
    • Release Manager's avatar
      Trac #26179: py3: hash for words · 526439a7
      Release Manager authored
      part of #24551
      
      URL: https://trac.sagemath.org/26179
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Sébastien Labbé
      526439a7
    • Release Manager's avatar
      Trac #26177: py3: fix hash for codes · 25ccb3ec
      Release Manager authored
      part of #24551
      
      URL: https://trac.sagemath.org/26177
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      25ccb3ec
    • Release Manager's avatar
      Trac #26170: Support Java 10+ · 86dd3321
      Release Manager authored
      The current regex doesn't match the Java 10 (openJDK) version string, so
      3D plots throw an error when using Java 10. Update it so that it works
      for Java 10 (and hopefully for future versions)
      
      URL: https://trac.sagemath.org/26170
      Reported by: arojas
      Ticket author(s): Antonio Rojas
      Reviewer(s): Travis Scrimshaw
      86dd3321
    • Release Manager's avatar
      Trac #25925: py3: Fix combinat.tiling module for python3 · 8fe93f86
      Release Manager authored
      Fix {{{combinat.tiling}}} module for python3.
      
      URL: https://trac.sagemath.org/25925
      Reported by: vklein
      Ticket author(s): Vincent Klein
      Reviewer(s): Sébastien Labbé
      8fe93f86
    • Release Manager's avatar
      Trac #25011: Better fix to "GCC is installed multiple times" · 3bc87a57
      Release Manager authored
      #24907 added some code to `configure.ac` that may remove files from
      `$SAGE_LOCAL` when running `./configure`.  This is at best a bit
      sketchy.  Instead it should modify something in the Makefile--e.g.
      enable some rule to clean up GCC.  I haven't fully considered the
      details yet.  Ideally a fix to this would also not conflict too much
      with #24919.
      
      Configure tarball:
      https://trac.sagemath.org/attachment/ticket/25011/configure-280.tar.gz
      
      URL: https://trac.sagemath.org/25011
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Julian Rüth, Dima Pasechnik
      3bc87a57
    • Release Manager's avatar
      Trac #24544: cleaning linbox declarations + reimplement modn interface · 4c2743c3
      Release Manager authored
      We organize linbox declarations (`sage/libs/linbox/`) and make the Sage
      code almost independent of the `interfaces/sage` that is in linbox (see
      #26178 for the last step).
      
      Switching from `LinBox::DenseVector<Givaro::Modular<unsigned int>>` to
      `LinBox::DenseVector<Givaro::Modular<int64_t>>` presented some
      compilation issues (see discussion from [comment:43 comment:43]). That
      will be dealt with in #26178.
      
      (see also #22872 for the linbox task ticket)
      
      Some upstream reports to linbox and Cython
      
      - [[https://groups.google.com/forum/#!topic/cython-
      users/FYIh0OZ1qeE|Cython bug 1 (RuntimeError)]] (not relevant anymore)
      - [[https://groups.google.com/forum/#!topic/cython-
      users/81wTNLKZ2mw|Cython bug 2 (cimported module vs typedef in
      classes)]] (not relevant anymore)
      - [[https://github.com/linbox-team/linbox/issues/105|LinBox issue]]
      (solve is broken for rectangular matrices)
      - [[https://github.com/linbox-team/linbox/issues/117|LinBox issue 117]]
      (givaro modular field using `uint64_t`)
      
      URL: https://trac.sagemath.org/24544
      Reported by: vdelecroix
      Ticket author(s): Vincent Delecroix
      Reviewer(s): Travis Scrimshaw, Jeroen Demeyer
      4c2743c3
    • Release Manager's avatar
      Trac #26184: Broken regression test on search_doc · b9e6fdba
      Release Manager authored
      The tests added by #26017 do not pass:
      {{{
      $ ./sage -t --long --optional=dochtml,sage src/sage/misc/sagedoc.py
      too many failed tests, not using stored timings
      Running doctests with ID 2018-09-03-10-02-38-192a29c9.
      Git branch: HEAD
      Using --optional=dochtml,memlimit,sage
      Doctesting 1 file.
      sage -t --long src/sage/misc/sagedoc.py
      **********************************************************************
      File "src/sage/misc/sagedoc.py", line 1179, in sage.misc.sagedoc.?
      Failed example:
          len(L) < N  # optional - dochtml, long time
      Expected:
          True
      Got:
          False
      **********************************************************************
      File "src/sage/misc/sagedoc.py", line 1183, in sage.misc.sagedoc.?
      Failed example:
          all(tree_re.search(l) for l in L) # optional - dochtml, long time
      Expected:
          True
      Got:
          False
      **********************************************************************
      }}}
      
      Due to a bug in the doctest framework (#26110), these tests are not run
      by default.
      
      URL: https://trac.sagemath.org/26184
      Reported by: jdemeyer
      Ticket author(s): Erik Bray
      Reviewer(s): Jeroen Demeyer
      b9e6fdba
    • Frédéric Chapoton's avatar
      2ea14d15
  5. 03 Sep, 2018 10 commits
  6. 02 Sep, 2018 11 commits