Skip to content

Breaking Change Proposals

Mahrud Sayrafi edited this page May 6, 2025 · 10 revisions

This is a list of previous, upcoming, and proposed breaking changes in the Core of Macaulay2, along with a reference to when and where the change occurred. This is not intended to be an exhaustive list, but focus on the major changes.

Proposed Changes

  • #3596: genericMatrix should be row major
  • #3340: correct quotient and modulus for non-integers
  • #3194: operators for S_+, <v,u>, and f^#
  • #1978: {1..5} as syntax for toList(1..5)
  • #3020 and #3032: left ideals
  • #1608 and #1455: operations on MutableList should be in-place
  • #1238 ^ should be right-associative

Upcoming Changes

These changes are currently in effect in the development branch, to be evaluated until the next release.

  • v1.25.11:
    • [future PR]: The Complexes package will be preloaded by default, superseding OldChainComplexes, added in #3774.
  • v1.25.05:
    • #3761: isIsomorphic now only returns true or false, and the certificate is available via isomorphism.
    • #3550: Matrix \\ Matrix is now a shortcut for quotient'(Matrix, Matrix). The previous functionality is still available via Matrix // Matrix, which is a shortcut for quotient(Matrix, Matrix). Additionally, both methods now work for maps of non-free modules.

Previous Changes

Eventually, the most important breaking changes should be listed here. For now, see changes to Macaulay2, by version.

In addition, the instances where a package was renamed Polyhedra -> OldPolyhedra should be listed.

  • v1.24.11:
    • #3519: the behavior of basis over tower rings has changed. Previously basis was computed over the most recent coefficient ring, but now it is computed over the first coefficient ring. Previous behavior can be mimicked by passing the option basis(..., Variables => gens R).

Rejected Changes

These are mainly listed for posterity.

  • #2336: change precedence of Ring Array
Clone this wiki locally