1. 06 Feb, 2020 2 commits
  2. 02 Feb, 2020 1 commit
  3. 31 Jan, 2020 23 commits
    • Release Manager's avatar
      Trac #29093: Don't “fix” the permissions of preexisting DOT_SAGE · e4607fdd
      Release Manager authored
      See the commit message for details.
      
      URL: https://trac.sagemath.org/29093
      Reported by: mmezzarobba
      Ticket author(s): Marc Mezzarobba
      Reviewer(s): Matthias Koeppe
      e4607fdd
    • Release Manager's avatar
      Trac #29085: CombinatorialPolyhedron: Expose `is_bounded` · 798a8500
      Release Manager authored
      `CombinatorialPolyhedron` has a method `is_bounded`, which is cython-
      only.
      
      We expose this method under the name `is_compact` as in
      `Polyhedron_base`. Before it was hard to access this information.
      
      URL: https://trac.sagemath.org/29085
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Laith Rastanawi
      798a8500
    • Release Manager's avatar
      Trac #29056: numpy: make numpy find openblas from Homebrew · c8d4b8a0
      Release Manager authored
      For numpy to find Homebrew's openblas on macOS, this ticket adds an
      `[openblas]` section to numpy's site.cfg if Sage is using openblas. This
      is also what Homebrew's [https://github.com/Homebrew/homebrew-core/blob/
      f2463cbba086689c872cddd3a8bc242976a603ff/Formula/numpy.rb#L25-L30 numpy
      formula] does. See also the upstream [https://github.com/numpy/numpy/blo
      b/2199ba7fb7f8bb383552fdcd6feec4faee7ae394/site.cfg.example#L129-L132
      site.cfg.example].
      
      Before this ticket, numpy would use the macOS Accelerate framework
      instead of openblas, as can be seen from the logs:
      
      {{{
        FOUND:
          extra_compile_args = ['-msse3',
      '-I/System/Library/Frameworks/vecLib.framework/Headers']
          extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
          define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
      }}}
      
      After:
      
      {{{
        FOUND:
          libraries = ['openblas', 'openblas']
          library_dirs = ['/usr/local/Cellar/openblas/0.3.7/lib']
          language = c
          define_macros = [('HAVE_CBLAS', None)]
      }}}
      
      This problem was previously discussed on
      [https://groups.google.com/forum/#!topic/sage-devel/91e0GfHT-Yo sage-
      devel].
      
      URL: https://trac.sagemath.org/29056
      Reported by: gh-mwageringel
      Ticket author(s): Markus Wageringel
      Reviewer(s): Matthias Koeppe
      c8d4b8a0
    • Release Manager's avatar
      Trac #28979: Remove period at the end of one-line summary of modules for consistency · 448b7f08
      Release Manager authored
      Might turn out to be a futile attempt, but I felt a sudden urge to do a
      sweeping cleanup.
      
      URL: https://trac.sagemath.org/28979
      Reported by: klee
      Ticket author(s): Kwankyu Lee
      Reviewer(s): Travis Scrimshaw
      448b7f08
    • Release Manager's avatar
      Trac #12803: quotient of ideals throws up Singular bug · 577f006e
      Release Manager authored
      This is a bug in Singular 3.1.7 (fixed in 4.0.1, see ticket #17254):
      
      {{{
      R.<xe,xv> = ZZ[]
      
      J = Ideal(4*xv^3+3*xv^2, 3*xe*xv^2+xe-2*xv);
      
      I  = Ideal(-3, -3*xv-1, -3);
      I2 = Ideal(-3, -3*xv-1);
      assert( I  == I2 )
      
      Q1 = J.quotient(I) # wrong
      Q2 = J.quotient(I2)
      
      assert( Q1 == Q2 ) # fails
      }}}
      
      URL: https://trac.sagemath.org/12803
      Reported by: mariah
      Ticket author(s): Markus Wageringel
      Reviewer(s): Kwankyu Lee
      577f006e
    • Release Manager's avatar
      Trac #29100: spkg-configure.m4 for boost and boost_cropped · 10fb04d6
      Release Manager authored
      we use a macro from autoconf archive to test the version
      
      URL: https://trac.sagemath.org/29100
      Reported by: dimpase
      Ticket author(s): Dima Pasechnik
      Reviewer(s): Isuru Fernando
      10fb04d6
    • Release Manager's avatar
      Trac #29095: Fix sphinxify deprecation warnings with sphinx 2.2 · b4956f6d
      Release Manager authored
      With sphinx 2.2, sphinxify throws a deprecation warning:
      {{{
      /usr/share/doc/sage/common/themes/sage/search.html:22:
      RemovedInSphinx30Warning: To modify script_files in the theme is
      deprecated. Please insert a <script> tag directly in your theme instead.
      }}}
      Fix taken from rtd_theme [1]
      
      [1] https://github.com/readthedocs/sphinx_rtd_theme/commit/4a7dc08db0bf8
      7edc15a4af59914c82077473dff
      
      URL: https://trac.sagemath.org/29095
      Reported by: arojas
      Ticket author(s): Antonio Rojas
      Reviewer(s): John Palmieri
      b4956f6d
    • Release Manager's avatar
      Trac #29094: Use rich_to_bool_sgn instead of rich_to_bool when comparing outputs of mpz_cmp · aa4b0b2f
      Release Manager authored
      According to its documentation, `mpz_cmp` yields arbitrary
      positive/negative numbers, but `rich_to_bool` assumes the input is in
      `[-1, 0, 1]`. Thus it yields wrong results:
      {{{
      sage: B.<i,j,k> = QuaternionAlgebra(6)
      sage: B(1) == B(-1)
      False
      sage: B(1) != B(-1)
      False
      }}}
      
      URL: https://trac.sagemath.org/29094
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Frédéric Chapoton
      aa4b0b2f
    • Release Manager's avatar
      Trac #29084: Make fflas_ffpack detect and use system openblas on Arch · b38e091a
      Release Manager authored
      The fflas-ffpack spkg-install passes the output of `pkg-config --libs
      cblas` as link flags. The fflas-ffpack uses these flags in its configure
      script to detect whether openblas is being used, by testing for the
      openblas_set_num_threads function. This doesn't work on Arch when using
      system openblas, since cblas is not provided by openblas. We fix this by
      also adding the output of `pkg-config --libs blas` to the link flags.
      
      URL: https://trac.sagemath.org/29084
      Reported by: arojas
      Ticket author(s): Antonio Rojas
      Reviewer(s): Dima Pasechnik, Matthias Koeppe
      b38e091a
    • Release Manager's avatar
      Trac #29073: `gale_transform` does not work for `RDF` · e410c82f
      Release Manager authored
      Currently the Gale transform for `RDF` does not work
      
      {{{
      sage: P = polytopes.icosahedron(exact=False)
      sage: sum(P.gale_transform())
      (1.3819660112000005, -1.3819660112000005, 0.3819660112000003,
      -1.3819660112000005, -9.43689570931383e-16, 1.6653345369377348e-16,
      -6.661338147750939e-16, 0.0)
      }}}
      
      but the sum should be close to zero. This is of course only an
      indication that something goes terribly wrong. For #29065, I wanted to
      add a doctest recovering an inexact polyhedron from the gale diagram,
      but it simply does not work.
      
      The problem is quite simple. The method `right_kernel` for matrices,
      should just not be used, as it echolonizes the kernel. This is just
      something, one shouldn't do for inexact rings. The method
      `right_kernel_matrix(basis=computed)` gives a much more useful matrix.
      
      We also leave a note in `left_kernel`, `right_kernel`, and
      `right_kernel_matrix` to indicate this problem.
      
      URL: https://trac.sagemath.org/29073
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Laith Rastanawi
      e410c82f
    • Release Manager's avatar
      Trac #29071: verify if cblas.pc and lapack.pc should be replaced by links to openblas.pc · 2c207ead
      Release Manager authored
      currently openblas's spkg-configure.pc unconditionally makes cblas.pc
      and lapack.pc copies of openblas.pc, which in some cases if incorrect,
      e.g. Arch Linux has libcblas linked to libopenblas
      and containing stuff missing in libopenblas, resulting in errors.
      
      this has been reported on sage-devel
      https://groups.google.com/d/msg/sage-devel/pIOnFyFJMtM/_FbzM2OxCQAJ
      
      So we should make these installations conditional.
      
      URL: https://trac.sagemath.org/29071
      Reported by: dimpase
      Ticket author(s): Dima Pasechnik
      Reviewer(s): Isuru Fernando, Matthias Koeppe
      2c207ead
    • Release Manager's avatar
      Trac #29053: Add debian/fedora/arch/conda package information to build/pkgs,... · ef9af32c
      Release Manager authored
      Trac #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini
      
      https://doc.sagemath.org/html/en/installation/source.html#linux-
      recommended-installation
      gives `apt-get install` and `yum install` command lines to install
      system packages that will be recognized by `build/pkgs/SPKG/spkg-
      configure.m4`.
      
      Several packages are missing, see comments in
      https://trac.sagemath.org/attachment/ticket/27824/Dockerfile-ubuntu-
      minimal
      
      This ticket puts this information on a per-package basis into
      `build/pkgs/SPKG/distros/debian.txt`, `.../fedora.txt`, `.../arch.txt`
      for the following purposes:
      - `sage -info SPKG` prints out this information.
      - Provide a `tox.ini` that generates and runs `Dockerfile`s that test
      the installation on various systems. Example (running 3 builds in
      parallel):
         {{{
         $ tox -p auto -e archlinux-latest,ubuntu-focal-minimal,debian-buster-
      maximal
      ⠸
         }}}
      
      Incidental change on this ticket:
      - Mark `gfortran` as a `type=standard` package. It is a prereq of
      standard package `numpy`. Its status as a `type=optional` package
      predates the clarifications brought by the development of the `spkg-
      configure.m4` mechanism (#27330).
      
      ----------
      
      Possible follow-up and related tickets:
      - #29087 - Add a GitHub workflow that runs this automatically, with many
      parallel jobs.
      - Also the `apt-cyg` command lines at
      https://trac.sagemath.org/wiki/Cygwin64Port could be generated in the
      same way.
      - Aggregate and format it (during `./bootstrap`) to produce the command
      lines shown in the manual. This ticket already prepares it by moving
      these command lines into separate `.txt` files.
      - #29041: at `./bootstrap` time, generate `src/requirements.txt`,
      `src/constraints.txt`, `src/setup.cfg` `[install_requires]` from
      `build/pkgs`
      - #28745: Add `SAGE_ROOT/environment.yml` for `conda env create -f`.
      - Add to tox.ini a conda run (either with a fresh environment or fresh
      conda install) without docker - to test with macOS conda
      - Add to tox.ini a homebrew run (with a fresh install not in /usr/local)
      
      Resources:
      - https://repology.org/
      
      URL: https://trac.sagemath.org/29053
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Dima Pasechnik
      ef9af32c
    • Release Manager's avatar
      Trac #29028: bugs for binary quadratic forms whose discriminant is a square · b9e43fd0
      Release Manager authored
      Ticket #28989 fixes bugs for quadratic forms whose discriminant is
      positive, but not a square. This ticket addresses the remaining case
      where the discriminant is a square. Symptoms of the bugs include:
      
      Two forms may be properly equivalent, but not equivalent, and
      equivalence is not reflexive:
      {{{
      sage: Q = BinaryQF(0, 2, 0)
      sage: Q.discriminant()
      4
      sage: Q.is_equivalent(Q, proper=True)
      True
      sage: Q.is_equivalent(Q, proper=False)
      False
      }}}
      
      The forms `-4*x^2 + 10*x*y`, `-2*x^2 + 10*x*y`, ` 10*x*y`, `2*x^2 +
      10*x*y`, `4*x^2 + 10*x*y`, and `5*x^2 + 10*x*y` are not primitive (i.e.,
      the gcd of the coefficients is not 1), but they appear in a list of
      primitive forms:
      {{{
      sage: BinaryQF_reduced_representatives(10^2, primitive_only=True)
      [-4*x^2 + 10*x*y,
       -3*x^2 + 10*x*y,
       -2*x^2 + 10*x*y,
       -x^2 + 10*x*y,
       10*x*y,
       x^2 + 10*x*y,
       2*x^2 + 10*x*y,
       3*x^2 + 10*x*y,
       4*x^2 + 10*x*y,
       5*x^2 + 10*x*y]
      }}}
      
      I will upload a PR soon.
      
      URL: https://trac.sagemath.org/29028
      Reported by: gh-DaveWitteMorris
      Ticket author(s): Dave Morris
      Reviewer(s): Travis Scrimshaw
      b9e43fd0
    • Release Manager's avatar
      Trac #29015: Fix frobenius power in non-monic cyclic covers · 4429daa6
      Release Manager authored
      As per the text after (2.8) in  (Arul, Vishal, Alex J. Best, Edgar
      Costa, Richard Magner, and Nicholas Triantafillou. “Computing Zeta
      Functions of Cyclic Covers in Large Characteristic.” The Open Book
      Series 2, no. 1 (January 28, 2019): 37–53.
      https://doi.org/10.2140/obs.2019.2.37.) the q-power frobenius is what we
      need to find the action of, before we used the p-th, see the new doctest
      for a failing example.
      
      URL: https://trac.sagemath.org/29015
      Reported by: alexjbest
      Ticket author(s): Alex J. Best
      Reviewer(s): Frédéric Chapoton, Edgar Costa
      4429daa6
    • Release Manager's avatar
      Trac #28953: spring cleanup in scripts · 5d2c5b1b
      Release Manager authored
      mainly pyflakes and pep8 details
      
      URL: https://trac.sagemath.org/28953
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      5d2c5b1b
    • Release Manager's avatar
      Trac #28869: Isomorphisms of absolute fields can not be used in change_ring · 1a7f090b
      Release Manager authored
      For a polynomial `f` defined over a number field `K`, when replacing `K`
      by its absolute field `L = K.absolute_field(names='b')` there might be
      an error when changing `f` with the appropriate isomorphism
      `f.change_ring(L.structure()[1])`.
      
      The problem arises from the fact that `change_ring` wants to check
      whether the isomorphism is part of `K.Hom(L)` by calling
      `K.Hom(L)(L.structure()[1])` which gives an error if `L.structure()[1]`
      is not an instance of `NumberFieldHomomorphism_im_gens` which it not
      necessarily is. Here is a minimal working example
      
      {{{
      sage: K.<a> = CyclotomicField(8)
      sage: L.<b> = K.absolute_field()
      sage: phi = L.structure()[1]
      sage: phi.parent() == K.Hom(L)
      True
      sage: K.Hom(L)(phi)
      Traceback (most recent call last):
      ...
      TypeError: unable to convert Isomorphism given by variable name change
      map:
        From: Cyclotomic Field of order 8 and degree 4
        To:   Number Field in b with defining polynomial x^4 + 1 to an element
      of Number Field in b with defining polynomial x^4 + 1
      }}}
      
      The error seems a consequence of a call to `K.Hom(L)` interpreting the
      argument as an element of the codomain if it is not an instance of
      `NumberFieldHomomorphism_im_gens`.
      
      Here is the example failing on `change_ring` where the error message is
      even less insightful
      
      {{{
      sage: K.<a> = CyclotomicField(8)
      sage: L.<b> = K.absolute_field()
      sage: R.<x> = K[]
      sage: f = x^2 + a
      sage: f.change_ring(L.structure()[1])
      Traceback (most recent call last):
      ...
      TypeError:
      }}}
      
      URL: https://trac.sagemath.org/28869
      Reported by: jvlangen
      Ticket author(s): Peter Bruin
      Reviewer(s): Travis Scrimshaw
      1a7f090b
    • Release Manager's avatar
      Trac #28095: Add --enable-OPTIONALSPKG options to configure · 4d21d4f6
      Release Manager authored
      This ticket adds options such as `--enable-lrslib`, `--enable-topcom`
      for all optional and experimental packages to `configure`. As per
      `configure --help`:
      {{{
        ...
        --enable-lie={no|if_installed|yes}
                                enable build and use of the experimental
      package lie
                                (default: "if_installed")
                                package information: ./sage -info lie
        --disable-lie           disable build and uninstall if previously
      installed
                                by Sage in PREFIX; same as --enable-lie=no
        ...
      }}}
      
      Subsequent `make` will then install or uninstall these packages.
      
      This is an interface alternative to `sage -i OPTIONALSPKG` / `make
      OPTIONALSPKG` and `make OPTIONALSPKG-clean`.
      
      This will simplify installations of sage with a list of optional
      packages.
      
      (This was previously discussed in #21538, which did not clearly enough
      distinguish this proposal from the topic of using system packages,
      #27567.)
      
      Follow-up:
      - #29113: Reimplement `sage -i SPKG` as `configure --enable-SPKG && make
      build`
      
      URL: https://trac.sagemath.org/28095
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Dima Pasechnik
      4d21d4f6
    • Release Manager's avatar
      Trac #28054: invariant form cannot be specified for GO/SO over a finite field · 94056f86
      Release Manager authored
      in `src/sage/groups/matrix_gps/orthogonal.py` one sees
      {{{
              if invariant_form is not None:
                  if is_FiniteField(ring):
                      raise NotImplementedError("invariant_form for finite
      groups is fixed by GAP")
      }}}
      but it is not triggered on every finite field input, but only these with
      `e=0`.
      
      URL: https://trac.sagemath.org/28054
      Reported by: dimpase
      Ticket author(s): Sebastian Oehms
      Reviewer(s): Dima Pasechnik, Travis Scrimshaw
      94056f86
    • Release Manager's avatar
      Trac #27954: Integral curves over finite fields: closed points · 6f626864
      Release Manager authored
      This is a subticket of #27873.
      
      Closed points are added to integral curves over finite fields.
      
      URL: https://trac.sagemath.org/27954
      Reported by: klee
      Ticket author(s): Kwankyu Lee
      Reviewer(s): Travis Scrimshaw
      6f626864
    • Release Manager's avatar
      Trac #26421: Polynomial roots cannot be calculated over a ring of Laurent polynomials · 79401117
      Release Manager authored
      ... even if the polynomial is linear or the roots are integers:
      
      {{{
      sage: R.<t> = LaurentPolynomialRing(ZZ)
      sage: P.<x> = PolynomialRing(R)
      sage: p = x-t
      sage: p.roots()
      /home/sebastian/develop/sage/src/bin/sage-ipython:1: DeprecationWarning:
      content is deprecated. Please use content_ideal instead.
      See http://trac.sagemath.org/16613 for details.
        #!/usr/bin/env sage-python23
      ------------------------------------------------------------------------
      ---
      Traceback (most recent call last):
      ...
      TypeError: ideal() takes exactly 1 argument (2 given)
      }}}
      
      The calculation aborts, since the method `ideal`  of the class
      `LaurentPolynomialRing_generic` is not implemented but invoked via
      `content_ideal` which could be avoided or replaced by the function
      `lcm`.
      
      But there are further problems:
      
      1) The method `ideal` of the class `LaurentPolynomialRing_generic`
      raises the wrong error, since it doesn't have the right number of
      arguments.
      
      2) The correct `NotImplementedError` would not be caught.
      
      3) Factorization over some cases of integral domains is not implemented
      in the method `factor` of  the class `Polynomial` (even though it should
      be possible using the field of fractions)
      
      4) Just aesthetically: The deprecation of the method `content` (#16613)
      has not been implemented properly (the warning can't be avoided by the
      user).
      
      URL: https://trac.sagemath.org/26421
      Reported by: soehms
      Ticket author(s): Sebastian Oehms
      Reviewer(s): Travis Scrimshaw
      79401117
    • Release Manager's avatar
      Trac #26363: Polyhedron_normaliz.save · 3373ddc9
      Release Manager authored
      {{{
      sage: P = polytopes.dodecahedron(backend='normaliz')
      sage: P
      A 3-dimensional polyhedron in (Number Field in sqrt5 with defining
      polynomial x^2 - 5)^3 defined as the convex hull of 20 vertices
      sage: P.save('dodecahedron.sobj')
      TypeError: can't pickle PyCapsule objects
      }}}
      
      We fix this by removing the cone with `__getstate__` on pickling.
      
      On unpickling we use `__setstate__` and
      `_cone_from_Vrepresentation_and_Hrepresentation` from #28639 to restore
      the cone.
      
      Special care has to be taken in the following cases:
      - no inequalities (the cone can only be initialized from Vrep),
      - the empty polyhedron (cone is `None` in this case).
      
      As the lines are recomputed, there is no guarantee that they appear in
      the same order in the normaliz cone. However, normaliz sorts the given
      lines anyway:
      {{{
      sage: P = Polyhedron(lines=[[1,0], [0,1]], backend='normaliz').lines()
      (A line in the direction (1, 0), A line in the direction (0, 1))
      sage: P = Polyhedron(lines=[[0,1], [1,0]], backend='normaliz').lines()
      (A line in the direction (1, 0), A line in the direction (0, 1))
      sage: P = Polyhedron(lines=[[1,1], [1,0]], backend='normaliz').lines()
      (A line in the direction (1, 0), A line in the direction (0, 1))
      }}}
      
      Also, even if `_normaliz_cone` has the lines somewhat shuffled, this
      shouldn't be noticable as computations are invariant on which line we
      choose.
      
      URL: https://trac.sagemath.org/26363
      Reported by: mkoeppe
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Travis Scrimshaw
      3373ddc9
    • Release Manager's avatar
      Trac #26130: fflas_ffpack is not tested, tests fail · 3b41e5cd
      Release Manager authored
      While trying to port the nix build (and its dependencies) to darwin,
      @jbaum98 [https://github.com/linbox-team/fflas-ffpack/issues/173
      discovered] that the fflas-ffpack tests are failing on darwin when using
      openblas. They don't fail on linux using openblas and they don't fail on
      darwin using another blas.
      
      Trying to figure out if that is a nix issue or a fflas-ffpack / openblas
      issue, I compared our build with the sage spkg. I noticed that sage is
      not even running the fflas_ffpack tests. So maybe some issues with
      darwin have gone unnoticed.
      
      I even get one test failure on linux:
      
      {{{
      FAIL: test-fgemm-check
      ======================
      
      Checking ............................Modular<double> mod 67 ... PASSED
      with seed = 1535225205942725
      Checking ........................Modular<double> mod 351293 ... PASSED
      with seed = 1535225205942726
      Checking .........................Modular<double> mod 17659 ... PASSED
      with seed = 1535225205942727
      Checking ....................ModularBalanced<double> mod 67 ... PASSED
      with seed = 1535225205942725
      Checking ................ModularBalanced<double> mod 351293 ... PASSED
      with seed = 1535225205942726
      Checking .................ModularBalanced<double> mod 17659 ... PASSED
      with seed = 1535225205942727
      Checking .............................Modular<float> mod 13 ... FAILED
      FAILED with seed = 1535225205942725
      FAIL test-fgemm-check (exit status: 1)
      }}}
      
      Upstream issue: https://github.com/linbox-team/fflas-ffpack/issues/146
      
      URL: https://trac.sagemath.org/26130
      Reported by: gh-timokau
      Ticket author(s): Timo Kaufmann
      Reviewer(s): Matthias Koeppe
      3b41e5cd
    • Release Manager's avatar
      Trac #25509: Provide a simple (and generic) way to create immutable vectors and matrices · 67759239
      Release Manager authored
      We currently have the following elegant way to produce immutable graphs:
      {{{
      sage: set([Graph(i) for i in range(5)])
      ------------------------------------------------------------------------
      ---
      TypeError                                 Traceback (most recent call
      last)
      ...
      TypeError: This graph is mutable, and thus not hashable. Create an
      immutable copy by `g.copy(immutable=True)`
      sage: set([Graph(i, immutable=True) for i in range(5)])
      {Graph on 0 vertices,
       Graph on 1 vertex,
       Graph on 2 vertices,
       Graph on 3 vertices,
       Graph on 4 vertices}
      }}}
      The aim of this ticket is to have the same for other objects, in
      particular vectors and matrices.
      
      It would avoid introducing a variable just to make this adjustment. This
      can simplify code by more than just one line. Consider, for example,
      list/set/dict comprehensions and compare
      {{{
      S = set()
      for x in some_list:
          v = vector(x)
          v.set_immutable()
          S.add(v)
      }}}
      to
      {{{
      S = set(vector(x, immutable=True) for x in some_list)
      }}}
      
      URL: https://trac.sagemath.org/25509
      Reported by: mantepse
      Ticket author(s): Julian Ritter
      Reviewer(s): Jonathan Kliem
      67759239
  4. 30 Jan, 2020 3 commits
  5. 29 Jan, 2020 5 commits
  6. 28 Jan, 2020 6 commits