Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libsemigroups for openSUSE:Factory 
checked in at 2022-03-05 14:44:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsemigroups (Old)
 and      /work/SRC/openSUSE:Factory/.libsemigroups.new.1958 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsemigroups"

Sat Mar  5 14:44:33 2022 rev:13 rq:959514 version:2.1.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsemigroups/libsemigroups.changes      
2021-12-17 23:54:42.355539309 +0100
+++ /work/SRC/openSUSE:Factory/.libsemigroups.new.1958/libsemigroups.changes    
2022-03-05 14:45:14.271728488 +0100
@@ -1,0 +2,9 @@
+Fri Mar  4 18:53:58 UTC 2022 - Jan Engelhardt <jeng...@inai.de>
+
+- Update to release 2.1.4
+  * Is is now possible to create the quotient_froidure_pin of a
+    congruence with infinitely many classes.
+  * Some exception messages were corrected for Bipartition
+    objects.
+
+-------------------------------------------------------------------

Old:
----
  libsemigroups-2.1.3.tar.gz

New:
----
  libsemigroups-2.1.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libsemigroups.spec ++++++
--- /var/tmp/diff_new_pack.0T2HbY/_old  2022-03-05 14:45:14.815728625 +0100
+++ /var/tmp/diff_new_pack.0T2HbY/_new  2022-03-05 14:45:14.827728628 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libsemigroups
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 Name:           libsemigroups
 %define lname  libsemigroups2
-Version:        2.1.3
+Version:        2.1.4
 Release:        0
 Summary:        Library with algorithms for computing finite and finitely 
presented semigroups
 License:        GPL-3.0-or-later

++++++ libsemigroups-2.1.3.tar.gz -> libsemigroups-2.1.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/.VERSION 
new/libsemigroups-2.1.4/.VERSION
--- old/libsemigroups-2.1.3/.VERSION    2021-12-16 16:57:27.981003307 +0100
+++ new/libsemigroups-2.1.4/.VERSION    2022-03-04 13:31:25.675172008 +0100
@@ -1 +1 @@
-2.1.3
\ No newline at end of file
+2.1.4
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/Makefile.am 
new/libsemigroups-2.1.4/Makefile.am
--- old/libsemigroups-2.1.3/Makefile.am 2021-11-30 12:26:35.439991451 +0100
+++ new/libsemigroups-2.1.4/Makefile.am 2022-03-04 13:27:46.415778113 +0100
@@ -16,7 +16,7 @@
 
 if LIBSEMIGROUPS_DEBUG
 AM_CPPFLAGS = -DDEBUG
-AM_CXXFLAGS += -g3 -O0 -fno-omit-frame-pointer 
+AM_CXXFLAGS += -g3 -O0 -fno-omit-frame-pointer
 else
 AM_CPPFLAGS = -DNDEBUG
 endif
@@ -32,7 +32,7 @@
 AM_CPPFLAGS += -DFMT_HEADER_ONLY
 endif
 
-LIBS = $(AM_LDFLAGS) 
+LIBS = $(AM_LDFLAGS)
 
 ACLOCAL_AMFLAGS        = -I m4
 
@@ -40,7 +40,7 @@
 pkgconfig_DATA     = libsemigroups.pc
 
 ## We include config.hpp in the distribution even though it is
-## autogenerated by configure. 
+## autogenerated by configure.
 
 ## libsemigroups headers
 pkginclude_HEADERS =  include/libsemigroups/action.hpp
@@ -105,7 +105,7 @@
 pkginclude_HEADERS += include/libsemigroups/word.hpp
 
 ## Define hpcombiincludedir outside the conditional
-## LIBSEMIGROUPS_HPCOMBI_ENABLED because it is used by 
+## LIBSEMIGROUPS_HPCOMBI_ENABLED because it is used by
 ## uninstall-hook
 hpcombiincludedir = $(includedir)/libsemigroups/HPCombi/include
 if LIBSEMIGROUPS_HPCOMBI_ENABLED
@@ -129,7 +129,7 @@
 endif ##??LIBSEMIGROUPS_HPCOMBI_ENABLED
 
 ## Define fmtincludedir outside the conditional
-## LIBSEMIGROUPS_WITH_INTERNAL_FMT because it is used by 
+## LIBSEMIGROUPS_WITH_INTERNAL_FMT because it is used by
 ## uninstall-hook
 fmtincludedir = $(includedir)/libsemigroups/fmt
 if LIBSEMIGROUPS_WITH_INTERNAL_FMT
@@ -149,7 +149,7 @@
 endif
 
 ## Define eigenincludedir outside the conditional
-## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN because it is used by 
+## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN because it is used by
 ## uninstall-hook
 eigenincludedir = $(includedir)/libsemigroups/Eigen
 if LIBSEMIGROUPS_WITH_INTERNAL_EIGEN
@@ -535,7 +535,7 @@
 eigensrchouseholderinclude_HEADERS =  
extern/eigen-3.3.9/Eigen/src/Householder/BlockHouseholder.h
 eigensrchouseholderinclude_HEADERS += 
extern/eigen-3.3.9/Eigen/src/Householder/HouseholderSequence.h
 eigensrchouseholderinclude_HEADERS += 
extern/eigen-3.3.9/Eigen/src/Householder/Householder.h
-endif  ## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN 
+endif  ## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN
 
 lib_LTLIBRARIES = libsemigroups.la
 
@@ -568,7 +568,7 @@
 libsemigroups_la_SOURCES += src/wislo.cpp
 libsemigroups_la_SOURCES += src/word.cpp
 
-libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS) 
+libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS)
 libsemigroups_la_CXXFLAGS = $(AM_CXXFLAGS)
 
 ## See 
https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info
@@ -582,8 +582,8 @@
 
 EXTRA_DIST =  .clang-format
 EXTRA_DIST += autogen.sh
-EXTRA_DIST += CPPLINT.cfg 
-EXTRA_DIST += LICENSE 
+EXTRA_DIST += CPPLINT.cfg
+EXTRA_DIST += LICENSE
 EXTRA_DIST += README.rst
 EXTRA_DIST += .VERSION
 EXTRA_DIST += docs
@@ -591,10 +591,11 @@
 EXTRA_DIST += etc/make-doc-yml.sh
 EXTRA_DIST += etc/make-format.sh
 EXTRA_DIST += etc/make-lint.sh
+EXTRA_DIST += etc/post-proc-doc.sh
 EXTRA_DIST += etc/version-number.sh
 EXTRA_DIST += extern/HPCombi/VERSION
-EXTRA_DIST += src/kbe-impl.hpp 
-EXTRA_DIST += src/knuth-bendix-impl.hpp 
+EXTRA_DIST += src/kbe-impl.hpp
+EXTRA_DIST += src/knuth-bendix-impl.hpp
 EXTRA_DIST += tests/catch.hpp
 EXTRA_DIST += tests/fpsemi-examples.hpp
 EXTRA_DIST += tests/bmat-data.hpp
@@ -613,7 +614,7 @@
 CHECK_FLAGS1  = --use-colour yes --order lex --abort
 CHECK_FLAGS2  = [quick]
 
-check_PROGRAMS =  test_all 
+check_PROGRAMS =  test_all
 
 EXTRA_PROGRAMS =  test_action
 EXTRA_PROGRAMS += test_bipart
@@ -1011,7 +1012,7 @@
        @echo 
"********************************************************************"
 endif
 
-.VERSION: 
+.VERSION:
        etc/version-number.sh > .TMP_VERSION && mv .TMP_VERSION .VERSION
 
 clean-local:
@@ -1062,12 +1063,12 @@
        @echo "Running cpplint . . .";
        @etc/make-lint.sh
 
-doc-yml: 
+doc-yml:
        @etc/make-doc-yml.sh
 
 doc-sphinx:
        @etc/make-doc-sphinx.sh
 
-doc: 
+doc:
        $(MAKE) doc-yml
        $(MAKE) doc-sphinx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/Makefile.in 
new/libsemigroups-2.1.4/Makefile.in
--- old/libsemigroups-2.1.3/Makefile.in 2021-12-16 16:57:42.320736823 +0100
+++ new/libsemigroups-2.1.4/Makefile.in 2022-03-04 15:20:36.214177163 +0100
@@ -96,7 +96,7 @@
 host_triplet = @host@
 target_triplet = @target@
 @LIBSEMIGROUPS_HPCOMBI_ENABLED_TRUE@am__append_1 = $(HPCOMBI_CXXFLAGS)
-@LIBSEMIGROUPS_DEBUG_TRUE@am__append_2 = -g3 -O0 -fno-omit-frame-pointer 
+@LIBSEMIGROUPS_DEBUG_TRUE@am__append_2 = -g3 -O0 -fno-omit-frame-pointer
 @HPCOMBI_CONSTEXPR_FUN_ARGS_TRUE@am__append_3 = -DHPCOMBI_CONSTEXPR_FUN_ARGS
 @LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@am__append_4 = -DFMT_HEADER_ONLY
 check_PROGRAMS = test_all$(EXEEXT)
@@ -1471,7 +1471,7 @@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
-LIBS = $(AM_LDFLAGS) 
+LIBS = $(AM_LDFLAGS)
 LIBTOOL = @LIBTOOL@
 LIPO = @LIPO@
 LN_S = @LN_S@
@@ -2020,13 +2020,13 @@
        src/report.cpp src/runner.cpp src/siso.cpp src/string.cpp \
        src/suffix-tree.cpp src/timer.cpp src/todd-coxeter.cpp \
        src/wilo.cpp src/wislo.cpp src/word.cpp
-libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS) 
+libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS)
 libsemigroups_la_CXXFLAGS = $(AM_CXXFLAGS)
 libsemigroups_la_LDFLAGS = -version-info 2:0:0
 EXTRA_DIST = .clang-format autogen.sh CPPLINT.cfg LICENSE README.rst \
        .VERSION docs etc/make-doc-sphinx.sh etc/make-doc-yml.sh \
-       etc/make-format.sh etc/make-lint.sh etc/version-number.sh \
-       extern/HPCombi/VERSION src/kbe-impl.hpp \
+       etc/make-format.sh etc/make-lint.sh etc/post-proc-doc.sh \
+       etc/version-number.sh extern/HPCombi/VERSION src/kbe-impl.hpp \
        src/knuth-bendix-impl.hpp tests/catch.hpp \
        tests/fpsemi-examples.hpp tests/bmat-data.hpp \
        tests/test-main.hpp benchmarks/bench-main.hpp \
@@ -4882,7 +4882,7 @@
 @LIBSEMIGROUPS_DEBUG_TRUE@     @echo "************************ Debug mode 
enabled ************************"
 @LIBSEMIGROUPS_DEBUG_TRUE@     @echo 
"********************************************************************"
 
-.VERSION: 
+.VERSION:
        etc/version-number.sh > .TMP_VERSION && mv .TMP_VERSION .VERSION
 
 clean-local:
@@ -4933,13 +4933,13 @@
        @echo "Running cpplint . . .";
        @etc/make-lint.sh
 
-doc-yml: 
+doc-yml:
        @etc/make-doc-yml.sh
 
 doc-sphinx:
        @etc/make-doc-sphinx.sh
 
-doc: 
+doc:
        $(MAKE) doc-yml
        $(MAKE) doc-sphinx
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/README.rst 
new/libsemigroups-2.1.4/README.rst
--- old/libsemigroups-2.1.3/README.rst  2021-12-16 16:57:37.409840068 +0100
+++ new/libsemigroups-2.1.4/README.rst  2022-03-04 13:51:48.442021553 +0100
@@ -1,10 +1,10 @@
-.. Copyright (c) 2019-2021, J. D. Mitchell
+.. Copyright (c) 2019-2022, J. D. Mitchell
 
    Distributed under the terms of the GPL license version 3.
 
    The full license is in the file LICENSE, distributed with this software.
 
-libsemigroups - Version 2.1.3
+libsemigroups - Version 2.1.4
 =============================
 
 .. image:: https://readthedocs.org/projects/libsemigroups/badge/?version=master
@@ -14,23 +14,23 @@
 .. image:: https://mybinder.org/badge_logo.svg
     :target: https://mybinder.org/v2/gh/libsemigroups/libsemigroups/master
     :alt: Launch Binder
-    
+
 .. image:: 
https://codecov.io/gh/libsemigroups/libsemigroups/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/libsemigroups/libsemigroups
 
 .. image:: https://img.shields.io/conda/dn/conda-forge/libsemigroups
   :target: https://github.com/conda-forge/libsemigroups-feedstock
 
-.. image:: 
https://anaconda.org/conda-forge/libsemigroups/badges/installer/conda.svg   
+.. image:: 
https://anaconda.org/conda-forge/libsemigroups/badges/installer/conda.svg
   :target: https://conda.anaconda.org/conda-forge
 
 .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1437752.svg
   :target: https://doi.org/10.5281/zenodo.1437752
 
-.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/license.svg   
+.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/license.svg
   :target: https://anaconda.org/conda-forge/libsemigroups
 
-.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/platforms.svg 
  
+.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/platforms.svg
   :target: https://anaconda.org/conda-forge/libsemigroups
 
 C++ library for semigroups and monoids
@@ -54,47 +54,52 @@
   algorithm for testing equivalence of words in free bands.
 - an implementation of the algorithm for solving the word problem
   for small overlap monoids, and for computing normal forms in such monoids;
-  see `Kambites <https://doi.org/10.1016/j.jalgebra.2008.09.038>`__, 
-  `Kambites <https://doi.org/10.1016/j.jalgebra.2008.12.028>`__, and 
+  see `Kambites <https://doi.org/10.1016/j.jalgebra.2008.09.038>`__,
+  `Kambites <https://doi.org/10.1016/j.jalgebra.2008.12.028>`__, and
   `Mitchell-Tsalakou
-  <http://arxiv.org/abs/2105.12125>`__. 
+  <http://arxiv.org/abs/2105.12125>`__.
 
 .. _Froidure-Pin algorithm: https://www.irif.fr/~jep/PDF/Rio.pdf
 .. _Todd-Coxeter algorithm: 
https://en.wikipedia.org/wiki/Todd%E2%80%93Coxeter_algorithm
 .. _Knuth-Bendix algorithm: 
https://en.wikipedia.org/wiki/Knuth%E2%80%93Bendix_completion_algorithm
 .. _Schreier-Sims algorithm: 
https://en.wikipedia.org/wiki/Schreier%E2%80%93Sims_algorithm
 .. _Konieczny: https://link.springer.com/article/10.1007/BF02573672
-.. _Lallement-McFadden: 
https://www.sciencedirect.com/science/article/pii/S0747717108800570 
+.. _Lallement-McFadden: 
https://www.sciencedirect.com/science/article/pii/S0747717108800570
 .. _Radoszewski-Rytter: 
https://link.springer.com/chapter/10.1007/978-3-642-11266-9_55
 
 ``libsemigroups`` is partly based on `Algorithms for computing finite
-semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric 
Pin`_.  
+semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric Pin`_.
 
-.. _Algorithms for computing finite semigroups: 
https://www.irif.fr/~jep/PDF/Rio.pdf 
+.. _Algorithms for computing finite semigroups: 
https://www.irif.fr/~jep/PDF/Rio.pdf
 .. _Expository slides: https://www.irif.fr/~jep/PDF/Exposes/StAndrews.pdf
 .. _Semigroupe 2.01: 
https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html
 .. _Jean-Eric Pin: https://www.irif.fr/~jep/
 
 ``libsemigroups`` is used in the `Semigroups package for GAP`_,  and it is
 possible to use ``libsemigroups`` directly in Python 3 via the package
-`libsemigroups_pybind11`_ The development version of ``libsemigroups`` is
+`libsemigroups_pybind11`_. The development version of ``libsemigroups`` is
 available on github_, and some related projects are here_.
 
+.. _github: https://github.com/libsemigroups/libsemigroups
+.. _here: https://github.com/libsemigroups
+.. _libsemigroups_pybind11: 
https://libsemigroups.github.io/libsemigroups_pybind11/
+.. _Semigroups package for GAP: https://semigroups.github.io/Semigroups
+
 The main classes in ``libsemigroups`` are named after the algorithms they
-implement; see, for example,  :cpp:any:`libsemigroups::FroidurePin`,
-:cpp:any:`libsemigroups::Konieczny`,
-:cpp:any:`libsemigroups::congruence::ToddCoxeter`,
-:cpp:any:`libsemigroups::fpsemigroup::Kambites`, 
-:cpp:any:`libsemigroups::fpsemigroup::KnuthBendix`, and
-:cpp:any:`libsemigroups::SchreierSims`.
+implement; see, for example,  ``libsemigroups::FroidurePin``,
+``libsemigroups::Konieczny``,
+``libsemigroups::congruence::ToddCoxeter``,
+``libsemigroups::fpsemigroup::Kambites``,
+``libsemigroups::fpsemigroup::KnuthBendix``, and
+``libsemigroups::SchreierSims``.
 
-The implementations in :cpp:any:`libsemigroups::FroidurePin`,
-:cpp:any:`libsemigroups::Konieczny`, and :cpp:any:`libsemigroups::SchreierSims`
+The implementations in ``libsemigroups::FroidurePin``,
+``libsemigroups::Konieczny``, and ``libsemigroups::SchreierSims``
 are generic and easily adapted to user-defined types.
 
 ``libsemigroups`` uses: `HPCombi`_ which uses the SSE and AVX instruction sets
 for very fast manipulation of transformations, partial permutations,
-permutations, and boolean matrices of small size;  `catch`_ for tests; 
+permutations, and boolean matrices of small size;  `catch`_ for tests;
 `fmt`_ for reporting; and `eigen`_ for some linear algebra computations.
 
 .. _HPCombi: https://github.com/hivert/HPCombi
@@ -140,13 +145,13 @@
   Lallement-McFadden algorithm, to the Todd-Coxeter implementation, and to
   BMat8s.
 - `N. Thiery`_ contributed to the build system, packaging ``libsemigroups`` via
-  conda, the python bindings and many helpful conversations and suggestions. 
+  conda, the python bindings and many helpful conversations and suggestions.
 - `M. Torpey`_ contributed to the congruences code in the v0.0.1 to v0.6.7.
 - `M. Tsalakou`_ contributed to the Knuth-Bendix implementation, related
-  algorithms for the class :cpp:any:`ActionDigraph`, and to the implementation
-  of the :cpp:any:`Kambites` class.
+  algorithms for the class `ActionDigraph`, and to the implementation
+  of the `Kambites` class.
 
-.. _R. Cirpons: 
+.. _R. Cirpons:
 .. _F. Hivert: https://www.lri.fr/~hivert/
 .. _J. James: http://www.jamezone.org/
 .. _J. Jonu??as: http://julius.jonusas.work/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/configure 
new/libsemigroups-2.1.4/configure
--- old/libsemigroups-2.1.3/configure   2021-12-16 16:57:41.702529132 +0100
+++ new/libsemigroups-2.1.4/configure   2022-03-04 15:20:35.607099391 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libsemigroups 2.1.3.
+# Generated by GNU Autoconf 2.71 for libsemigroups 2.1.4.
 #
 # Report bugs to <j...@st-andrews.ac.uk>.
 #
@@ -621,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='libsemigroups'
 PACKAGE_TARNAME='libsemigroups'
-PACKAGE_VERSION='2.1.3'
-PACKAGE_STRING='libsemigroups 2.1.3'
+PACKAGE_VERSION='2.1.4'
+PACKAGE_STRING='libsemigroups 2.1.4'
 PACKAGE_BUGREPORT='j...@st-andrews.ac.uk'
 PACKAGE_URL=''
 
@@ -1429,7 +1429,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libsemigroups 2.1.3 to adapt to many kinds of systems.
+\`configure' configures libsemigroups 2.1.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1501,7 +1501,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libsemigroups 2.1.3:";;
+     short | recursive ) echo "Configuration of libsemigroups 2.1.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1642,7 +1642,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libsemigroups configure 2.1.3
+libsemigroups configure 2.1.4
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2481,7 +2481,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libsemigroups $as_me 2.1.3, which was
+It was created by libsemigroups $as_me 2.1.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -4090,7 +4090,7 @@
 
 # Define the identity of the package.
  PACKAGE='libsemigroups'
- VERSION='2.1.3'
+ VERSION='2.1.4'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -23285,7 +23285,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libsemigroups $as_me 2.1.3, which was
+This file was extended by libsemigroups $as_me 2.1.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23353,7 +23353,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libsemigroups config.status 2.1.3
+libsemigroups config.status 2.1.4
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/docs/source/changelog.rst 
new/libsemigroups-2.1.4/docs/source/changelog.rst
--- old/libsemigroups-2.1.3/docs/source/changelog.rst   2021-12-16 
16:57:37.414028116 +0100
+++ new/libsemigroups-2.1.4/docs/source/changelog.rst   2022-03-04 
13:56:42.610961565 +0100
@@ -1,6 +1,18 @@
 Changelog - version 2
 =====================
 
+v2.1.4 (released 04/03/2022)
+----------------------------
+
+This is a minor release with with a few minor changes:
+
+* it is now possible to create the `quotient_froidure_pin` of a congruence with
+  infinitely many classes;
+* some exception messages were corrected for `Bipartition` objects;
+* compilation of v2.1.0 to v2.1.3 did not work in cygwin for Windows;
+* there was a file missing in the archive, which meant that it wasn't possible
+  to build the documentation.
+
 v2.1.3 (released 16/12/2021)
 ----------------------------
 
@@ -30,7 +42,7 @@
 * new implementations of the linear time algorithm by Kambites for equality
   checking and the algorithm by Mitchell and Tsalakou
   for finding normal forms in small overlap monoids in the class ``Kambites``
-  (@james-d-mitchell and @mariatsalakou 
+  (@james-d-mitchell and @mariatsalakou
   https://github.com/libsemigroups/libsemigroups/pull/278)
 * a performance improvement in the implementation of Konieczny algorithm, for
   determining the structure of a finite semigroup or monoid (@flsmith
@@ -38,15 +50,15 @@
   https://github.com/libsemigroups/libsemigroups/pull/304)
 * an implement of the linear time algorithm by Radoszewski and Rytter for
   checking equality of words in free bands in the function
-  ``freeband_equal_to`` (@reiniscirpons 
+  ``freeband_equal_to`` (@reiniscirpons
   https://github.com/libsemigroups/libsemigroups/pull/298)
 * a major revision, expansion of the settings, and improvement in the
   performance of the implementation of the Todd-Coxeter algorithm in the
-  class ``ToddCoxeter`` (@james-d-mitchell 
-  https://github.com/libsemigroups/libsemigroups/pull/313 
+  class ``ToddCoxeter`` (@james-d-mitchell
+  https://github.com/libsemigroups/libsemigroups/pull/313
   https://github.com/libsemigroups/libsemigroups/pull/318)
 * some other minor issues in the class templates
-  ``FroidurePin`` and ``ActionDigraph`` were resolved 
+  ``FroidurePin`` and ``ActionDigraph`` were resolved
   (@james-d-mitchell https://github.com/libsemigroups/libsemigroups/pull/299
   https://github.com/libsemigroups/libsemigroups/pull/300)
 
@@ -83,7 +95,7 @@
 simplifications were made as a consequence.  The documentation has been
 improved, some deprecated functionality was remove, and other minor
 improvements, and simplifications were made. The included version of `eigen`_
-was updated from version 3.3.7 to 3.3.9. 
+was updated from version 3.3.7 to 3.3.9.
 
 .. _eigen: http://eigen.tuxfamily.org/
 
@@ -108,12 +120,12 @@
 - every function including ``_nr_`` has been renamed using ``_number_of_`` for
   consistency
 - ``const`` has been removed from all function parameters passed by value
-- ``congruence_type`` was renamed ``congruence_kind`` for consistency 
+- ``congruence_type`` was renamed ``congruence_kind`` for consistency
 - ``CongruenceByPairsHelper`` was renamed ``CongruenceByPairs``
 - ``Congruence::policy`` was renamed ``Congruence::options``
 - ``FroidurePin::copy_closure`` returns by value instead of returning a pointer
 - ``FroidurePin::copy_add_generators`` returns by value instead of returning a
-  pointer 
+  pointer
 - ``FroidurePin::letter_to_pos`` was renamed ``FroidurePin::current_position``
 - ``FroidurePin::length_const`` was renamed ``FroidurePin::length``
 - ``FroidurePin::length_non_const`` was renamed ``FroidurePin::current_length``
@@ -132,7 +144,7 @@
 =====================
 
 .. toctree::
-  
+
    changelog-v1
 
 .. _J. James: http://www.jamezone.org/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/docs/source/index.rst 
new/libsemigroups-2.1.4/docs/source/index.rst
--- old/libsemigroups-2.1.3/docs/source/index.rst       2021-12-16 
16:57:37.419797092 +0100
+++ new/libsemigroups-2.1.4/docs/source/index.rst       2022-03-04 
15:19:59.921653173 +0100
@@ -1,4 +1,4 @@
-libsemigroups - Version 2.1.3
+libsemigroups - Version 2.1.4
 =============================
 
 C++ library for semigroups and monoids
@@ -24,42 +24,42 @@
 - an implementation of the algorithm for solving the word problem
   for small overlap monoids, and for computing normal forms in such monoids;
   see `Kambites <https://doi.org/10.1016/j.jalgebra.2008.09.038>`__
-  :cite:`Kambites2009aa`, 
+  :cite:`Kambites2009aa`,
   `Kambites <https://doi.org/10.1016/j.jalgebra.2008.12.028>`__
   :cite:`Kambites2009ab`, and `Mitchell-Tsalakou
-  <http://arxiv.org/abs/2105.12125>`__ :cite:`Mitchell2021aa`. 
+  <http://arxiv.org/abs/2105.12125>`__ :cite:`Mitchell2021aa`.
 
 .. _Froidure-Pin algorithm: https://www.irif.fr/~jep/PDF/Rio.pdf
 .. _Todd-Coxeter algorithm: 
https://en.wikipedia.org/wiki/Todd%E2%80%93Coxeter_algorithm
 .. _Knuth-Bendix algorithm: 
https://en.wikipedia.org/wiki/Knuth%E2%80%93Bendix_completion_algorithm
 .. _Schreier-Sims algorithm: 
https://en.wikipedia.org/wiki/Schreier%E2%80%93Sims_algorithm
 .. _Konieczny: https://link.springer.com/article/10.1007/BF02573672
-.. _Lallement-McFadden: 
https://www.sciencedirect.com/science/article/pii/S0747717108800570 
+.. _Lallement-McFadden: 
https://www.sciencedirect.com/science/article/pii/S0747717108800570
 .. _Radoszewski-Rytter: 
https://link.springer.com/chapter/10.1007/978-3-642-11266-9_55
 
 ``libsemigroups`` is partly based on `Algorithms for computing finite
-semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric 
Pin`_.  
+semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric Pin`_.
 
-.. _Algorithms for computing finite semigroups: 
https://www.irif.fr/~jep/PDF/Rio.pdf 
+.. _Algorithms for computing finite semigroups: 
https://www.irif.fr/~jep/PDF/Rio.pdf
 .. _Expository slides: https://www.irif.fr/~jep/PDF/Exposes/StAndrews.pdf
 .. _Semigroupe 2.01: 
https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html
 .. _Jean-Eric Pin: https://www.irif.fr/~jep/
 
 ``libsemigroups`` is used in the `Semigroups package for GAP`_,  and it is
 possible to use ``libsemigroups`` directly in Python 3 via the package
-`libsemigroups_pybind11`_ The development version of ``libsemigroups`` is
+`libsemigroups_pybind11`_. The development version of ``libsemigroups`` is
 available on github_, and some related projects are here_.
 
 .. _github: https://github.com/libsemigroups/libsemigroups
-.. _here: https://github.com/libsemigroups 
+.. _here: https://github.com/libsemigroups
 .. _libsemigroups_pybind11: 
https://libsemigroups.github.io/libsemigroups_pybind11/
-.. _Semigroups package for GAP: https://semigroups.github.io/Semigroups 
+.. _Semigroups package for GAP: https://semigroups.github.io/Semigroups
 
 The main classes in ``libsemigroups`` are named after the algorithms they
 implement; see, for example,  :cpp:any:`libsemigroups::FroidurePin`,
 :cpp:any:`libsemigroups::Konieczny`,
 :cpp:any:`libsemigroups::congruence::ToddCoxeter`,
-:cpp:any:`libsemigroups::fpsemigroup::Kambites`, 
+:cpp:any:`libsemigroups::fpsemigroup::Kambites`,
 :cpp:any:`libsemigroups::fpsemigroup::KnuthBendix`, and
 :cpp:any:`libsemigroups::SchreierSims`.
 
@@ -69,7 +69,7 @@
 
 ``libsemigroups`` uses: `HPCombi`_ which uses the SSE and AVX instruction sets
 for very fast manipulation of transformations, partial permutations,
-permutations, and boolean matrices of small size;  `catch`_ for tests; 
+permutations, and boolean matrices of small size;  `catch`_ for tests;
 `fmt`_ for reporting; and `eigen`_ for some linear algebra computations.
 
 .. _HPCombi: https://github.com/hivert/HPCombi
@@ -80,7 +80,7 @@
 .. toctree::
    :maxdepth: 1
    :caption: Installation and changelog
-  
+
    install
    changelog
 
@@ -108,8 +108,8 @@
 .. toctree::
    :caption: Further info
    :maxdepth: 1
-  
+
    semigroupe
    authors
 
-.. _Semigroupe: 
https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html 
+.. _Semigroupe: 
https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/docs/source/install.rst 
new/libsemigroups-2.1.4/docs/source/install.rst
--- old/libsemigroups-2.1.3/docs/source/install.rst     2021-12-16 
16:57:37.422683288 +0100
+++ new/libsemigroups-2.1.4/docs/source/install.rst     2022-03-04 
15:20:00.878957278 +0100
@@ -1,4 +1,4 @@
-.. |libsemigroups-version| replace:: 2.1.3
+.. |libsemigroups-version| replace:: 2.1.4
 
 .. _Installation:
 
@@ -9,7 +9,7 @@
 ---------------------
 
 This installation method assumes that you have anaconda or miniconda installed.
-See the `getting started`_ and `miniconda download page`_ on the conda_ 
+See the `getting started`_ and `miniconda download page`_ on the conda_
 website.
 
 .. _getting started: http://bit.ly/33B0Vfs
@@ -56,7 +56,7 @@
 .. parsed-literal::
 
    curl -L -O 
https://github.com/libsemigroups/libsemigroups/releases/latest/download/libsemigroups-|libsemigroups-version|.tar.gz
-   tar -xf libsemigroups-|libsemigroups-version|.tar.gz 
+   tar -xf libsemigroups-|libsemigroups-version|.tar.gz
    rm -f libsemigroups-|libsemigroups-version|.tar.gz
    cd libsemigroups-|libsemigroups-version|
    ./configure && make -j8 && sudo make install
@@ -104,7 +104,7 @@
 configuration options are available for ``libsemigroups``:
 
 ==========================  ==================================================
-Option 
+Option
 --------------------------  --------------------------------------------------
 --enable-code-coverage      enable code coverage support (default=no)
 --enable-compile-warnings   enable compiler warnings (default=no)
@@ -157,7 +157,7 @@
 will print the version of the installed ``libsemigroups``. (As usual,
 ``PKG_CONFIG_PATH`` may be exported, added to shell configuration, etc.)
 
-Building the documentation 
+Building the documentation
 --------------------------
 
 The following are required to be able to build the documentation:
@@ -171,13 +171,13 @@
 
 ::
 
-    brew install doxygen sphinx 
-    pip3 install -r docs/requirements 
+    brew install doxygen sphinx
+    pip3 install -r docs/requirements
 
 .. TODO add ubuntu instructions
 
 Then it ought to be possible to just run ``make doc`` in the ``libsemigroups``
-directory. 
+directory.
 
 Issues
 ------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/etc/post-proc-doc.sh 
new/libsemigroups-2.1.4/etc/post-proc-doc.sh
--- old/libsemigroups-2.1.3/etc/post-proc-doc.sh        1970-01-01 
01:00:00.000000000 +0100
+++ new/libsemigroups-2.1.4/etc/post-proc-doc.sh        2021-11-28 
12:25:20.049849491 +0100
@@ -0,0 +1,79 @@
+#!/bin/bash
+set -e
+
+cd docs/
+
+PREFIX=build/html/_generated/
+
+# Action
+
+FILES=( "libsemigroups__action__constructors.html" \
+        "libsemigroups__action__initialization.html" \
+        "libsemigroups__action__member_functions_inherited_from_runner.html" \
+        "libsemigroups__action__member_types.html" \
+        "libsemigroups__action__position__size__empty___.html" \
+        "libsemigroups__action__strongly_connected_components.html" )
+LINK="libsemigroups__action__member_functions_inherited_from_runner.html"
+
+for FILE in "${FILES[@]}"; do
+  echo "* fixing Runner links in: $FILE"
+  sed -i'' -e "s:libsemigroups__runner__operators.html\#:$LINK\#:g" 
"$PREFIX/$FILE"
+  sed -i'' -e "s:libsemigroups__runner__state.html\#:$LINK\#:g" "$PREFIX/$FILE"
+  sed -i'' -e "s:libsemigroups__runner__reporting.html\#:$LINK\#:g" 
"$PREFIX/$FILE"
+done
+
+# CongruenceInterface
+
+FILES=( "libsemigroups__congruenceinterface.html" \
+        "libsemigroups__congruenceinterface__member_types.html" \
+        "libsemigroups__congruenceinterface__constructors.html" \
+        "libsemigroups__congruenceinterface__deleted_constructors.html" \
+        "libsemigroups__congruenceinterface__handedness.html" \
+        "libsemigroups__congruenceinterface__initialization.html" \
+        "libsemigroups__congruenceinterface__iterators.html" \
+        
"libsemigroups__congruenceinterface__member_functions_inherited_from_runner.html"
 \
+        "libsemigroups__congruenceinterface__member_types.html" \
+        
"libsemigroups__congruenceinterface__numbers_of_classes__and_comparisons.html" \
+        "libsemigroups__congruenceinterface__related_semigroups.html" \
+        "libsemigroups__congruenceinterface__words_and_class_indices.html" )
+
+LINK="libsemigroups__congruenceinterface__member_functions_inherited_from_runner.html"
+
+for FILE in "${FILES[@]}"; do
+  echo "* fixing Runner links in: $FILE"
+  sed -i'' -e "s:libsemigroups__runner__operators.html\#:$LINK\#:g" 
"$PREFIX/$FILE"
+  sed -i'' -e "s:libsemigroups__runner__state.html\#:$LINK\#:g" "$PREFIX/$FILE"
+  sed -i'' -e "s:libsemigroups__runner__reporting.html\#:$LINK\#:g" 
"$PREFIX/$FILE"
+done
+
+# This only works because the structure of the doc for
+#??KnuthBendixCongruenceByPairs and CongruenceInterface are the same.
+for FILE in "${FILES[@]}"; do
+  echo "* fixing KnuthBendixCongruenceByPairs links in: $FILE"
+  sed -i'' -e 
's:libsemigroups__knuthbendixcongruencebypairs:libsemigroups__congruenceinterface:g'
 "$PREFIX/$FILE"
+done
+
+# Congruence
+
+FILES=( "libsemigroups__congruence__member_functions.html" \
+        
"libsemigroups__congruence__member_functions_inherited_from_congruenceinterface.html"
 \
+        
"libsemigroups__congruence__member_functions_inherited_from_runner.html" \
+        "libsemigroups__congruence__member_types.html" )
+
+# This only works because the structure of the doc for
+#??KnuthBendixCongruenceByPairs and Congruence are the same.
+for FILE in "${FILES[@]}"; do
+  echo "* fixing KnuthBendixCongruenceByPairs links in: $FILE"
+  sed -i'' -e 
's:libsemigroups__knuthbendixcongruencebypairs:libsemigroups__congruence:g' 
"$PREFIX/$FILE"
+done
+
+LINK="libsemigroups__congruence__member_functions_inherited_from_runner.html"
+for FILE in "${FILES[@]}"; do
+  echo "* fixing Runner links in: $FILE"
+  sed -i'' -e "s:libsemigroups__runner__operators.html\#:$LINK\#:g" 
"$PREFIX/$FILE"
+  sed -i'' -e "s:libsemigroups__runner__state.html\#:$LINK\#:g" "$PREFIX/$FILE"
+  sed -i'' -e "s:libsemigroups__runner__reporting.html\#:$LINK\#:g" 
"$PREFIX/$FILE"
+done
+
+#
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/include/libsemigroups/config.hpp 
new/libsemigroups-2.1.4/include/libsemigroups/config.hpp
--- old/libsemigroups-2.1.3/include/libsemigroups/config.hpp    2021-12-16 
16:57:47.527046009 +0100
+++ new/libsemigroups-2.1.4/include/libsemigroups/config.hpp    2022-03-04 
15:20:40.416315298 +0100
@@ -181,7 +181,7 @@
 
 /* Define to the full name and version of this package. */
 #ifndef LIBSEMIGROUPS_PACKAGE_STRING
-#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.1.3"
+#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.1.4"
 #endif
 
 /* Define to the one symbol short name of this package. */
@@ -196,7 +196,7 @@
 
 /* Define to the version of this package. */
 #ifndef LIBSEMIGROUPS_PACKAGE_VERSION
-#define LIBSEMIGROUPS_PACKAGE_VERSION "2.1.3"
+#define LIBSEMIGROUPS_PACKAGE_VERSION "2.1.4"
 #endif
 
 /* Define to necessary symbol if this constant uses a non-standard name on
@@ -232,7 +232,7 @@
 
 /* Version number of package */
 #ifndef LIBSEMIGROUPS_VERSION
-#define LIBSEMIGROUPS_VERSION "2.1.3"
+#define LIBSEMIGROUPS_VERSION "2.1.4"
 #endif
 
 /* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libsemigroups-2.1.3/include/libsemigroups/kambites.hpp 
new/libsemigroups-2.1.4/include/libsemigroups/kambites.hpp
--- old/libsemigroups-2.1.3/include/libsemigroups/kambites.hpp  2021-12-04 
15:47:58.475788840 +0100
+++ new/libsemigroups-2.1.4/include/libsemigroups/kambites.hpp  2022-03-04 
13:28:00.264837901 +0100
@@ -410,7 +410,7 @@
           size_t i = relation_prefix(it, y.cend());
           if (i != UNDEFINED) {
             size_t n = it - y.cbegin();
-            y.erase(y.cbegin() + x.size(), y.cend());
+            y.erase(y.begin() + x.size(), y.end());
             return std::make_tuple(
                 i, x.cbegin() + n, first + (XY(i).size() - (x.size() - n)));
           }
@@ -628,7 +628,7 @@
         std::tie(s, it_zrb, it_wp)
             = p_active(Z(rb), w.cbegin() + Z(r).size(), w.cend());
         LIBSEMIGROUPS_ASSERT(s < _relation_words.size());
-        // we could just use w.erase(w.cbegin(), it_wp); if not for the
+        // we could just use w.erase(w.begin(), it_wp); if not for the
         // if-statement in the next line requiring the old w.
         internal_type wp(it_wp, w.cend());
         if (!wp_prefix(wp, wp, Z(s))) {
@@ -639,7 +639,7 @@
         if (sb != UNDEFINED) {
           // line 10
           replace_prefix(wp, Z(s));
-          wp.erase(wp.cbegin(), wp.cbegin() + Z(s).size());
+          wp.erase(wp.begin(), wp.begin() + Z(s).size());
           internal_type b(X(sb).cbegin() + (Z(rb).cend() - it_zrb),
                           X(sb).cend());  // b
           if (wp_prefix(internal_type(w0),
@@ -837,12 +837,12 @@
       internal_type u(w.cbegin() + i + XY(j).size(), w.cend());
       replace_prefix(u, Z(j));
       LIBSEMIGROUPS_ASSERT(detail::is_prefix(u, Z(j)));
-      u.erase(u.cbegin(), u.cbegin() + Z(j).size());
+      u.erase(u.begin(), u.begin() + Z(j).size());
 
       size_t k = prefix_of_complement(j, p.cbegin() + i, p.cend());
       LIBSEMIGROUPS_ASSERT(k != UNDEFINED);
 
-      w.erase(w.cbegin() + i, w.cend());
+      w.erase(w.begin() + i, w.end());
       w += XYZ(k);
       w += u;
       LIBSEMIGROUPS_ASSERT(detail::is_prefix(w, p));
@@ -943,11 +943,11 @@
               v.cbegin() + XY(j).size(), v.cend(), Z(j).cbegin(), Z(j).cend());
 
           if (up_start_Z && vp_start_Z) {  // line 22
-            u.erase(u.cbegin(), u.cbegin() + XYZ(i).size());
+            u.erase(u.begin(), u.begin() + XYZ(i).size());
             auto k = Z_active_complement(i, u);
             k      = (k == UNDEFINED ? i : k);
             u      = Z(k) + u;
-            v.erase(v.cbegin(), v.cbegin() + XYZ(j).size());
+            v.erase(v.begin(), v.begin() + XYZ(j).size());
             v = Z(k) + v;
             p.clear();
             // line 23
@@ -957,17 +957,17 @@
             } else {
               p = Z(i);
             }
-            u.erase(u.cbegin(), u.cbegin() + XY(i).size());
-            v.erase(v.cbegin(), v.cbegin() + XY(i).size());
+            u.erase(u.begin(), u.begin() + XY(i).size());
+            v.erase(v.begin(), v.begin() + XY(i).size());
           } else if (vp_start_Z) {  // line 30
-            u.erase(u.cbegin(), u.cbegin() + XY(i).size());
-            v.erase(v.cbegin(), v.cbegin() + XYZ(j).size());
+            u.erase(u.begin(), u.begin() + XY(i).size());
+            v.erase(v.begin(), v.begin() + XYZ(j).size());
             v = Z(i) + v;
             p.clear();
           } else if (up_start_Z) {  // line 32
-            u.erase(u.cbegin(), u.cbegin() + XYZ(i).size());
+            u.erase(u.begin(), u.begin() + XYZ(i).size());
             u = Z(j) + u;
-            v.erase(v.cbegin(), v.cbegin() + XY(j).size());
+            v.erase(v.begin(), v.begin() + XY(j).size());
             p.clear();
           } else {  // line 34
             p = detail::maximum_common_suffix(Z(i), Z(j));
@@ -981,8 +981,8 @@
                               Z(j).cend() - p.size())) {
               return false;
             } else {
-              u.erase(u.cbegin(), u.cbegin() + XYZ(i).size() - p.size());
-              v.erase(v.cbegin(), v.cbegin() + XYZ(j).size() - p.size());
+              u.erase(u.begin(), u.begin() + XYZ(i).size() - p.size());
+              v.erase(v.begin(), v.begin() + XYZ(j).size() - p.size());
             }
           }
         }
@@ -1195,7 +1195,7 @@
 
       word_type class_index_to_word_impl(class_index_type) override;
       size_t    number_of_classes_impl() override;
-      [[noreturn]] std::shared_ptr<FroidurePinBase> quotient_impl() override;
+      std::shared_ptr<FroidurePinBase> quotient_impl() override;
       class_index_type word_to_class_index_impl(word_type const&) override;
       void             run_impl() override;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libsemigroups-2.1.3/include/libsemigroups/string-view.hpp 
new/libsemigroups-2.1.4/include/libsemigroups/string-view.hpp
--- old/libsemigroups-2.1.3/include/libsemigroups/string-view.hpp       
2021-11-29 13:11:01.552115342 +0100
+++ new/libsemigroups-2.1.4/include/libsemigroups/string-view.hpp       
2022-03-04 13:28:00.265258982 +0100
@@ -945,6 +945,14 @@
         return const_reverse_iterator(cbegin());
       }
 
+      const_iterator begin() const {
+        return cbegin();
+      }
+
+      const_iterator end() const {
+        return cend();
+      }
+
       ////////////////////////////////////////////////////////////////////////
       // MultiStringView - operators - public
       ////////////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/src/bipart.cpp 
new/libsemigroups-2.1.4/src/bipart.cpp
--- old/libsemigroups-2.1.3/src/bipart.cpp      2021-11-28 12:30:48.104918111 
+0100
+++ new/libsemigroups-2.1.4/src/bipart.cpp      2022-03-04 11:12:12.626875490 
+0100
@@ -171,8 +171,8 @@
 
   // TODO(later) check other things like _nr_blocks is correct etc...
   void validate(Bipartition const& x) {
-    size_t const n = 2 * x.degree();
-    if (n != static_cast<size_t>(std::distance(x.cbegin(), x.cend()))) {
+    size_t const n = static_cast<size_t>(std::distance(x.cbegin(), x.cend()));
+    if (2 * x.degree() != n) {
       LIBSEMIGROUPS_EXCEPTION(
           "the degree of a bipartition must be even, found %llu", uint64_t(n));
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/src/cong-intf.cpp 
new/libsemigroups-2.1.4/src/cong-intf.cpp
--- old/libsemigroups-2.1.3/src/cong-intf.cpp   2021-11-28 12:30:48.105306269 
+0100
+++ new/libsemigroups-2.1.4/src/cong-intf.cpp   2022-03-04 11:12:12.627361887 
+0100
@@ -208,9 +208,6 @@
       return _quotient;
     } else if (kind() != congruence_kind::twosided) {
       LIBSEMIGROUPS_EXCEPTION("the congruence must be two-sided");
-    } else if (is_quotient_obviously_infinite()) {
-      LIBSEMIGROUPS_EXCEPTION(
-          "cannot find the quotient semigroup, it is infinite");
     }
     _quotient = quotient_impl();
     _quotient->immutable(true);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/src/kambites.cpp 
new/libsemigroups-2.1.4/src/kambites.cpp
--- old/libsemigroups-2.1.3/src/kambites.cpp    2021-11-28 12:30:48.106403537 
+0100
+++ new/libsemigroups-2.1.4/src/kambites.cpp    2022-03-04 11:12:12.627929948 
+0100
@@ -138,8 +138,8 @@
       return _k->size();
     }
 
-    [[noreturn]] std::shared_ptr<FroidurePinBase> Kambites::quotient_impl() {
-      LIBSEMIGROUPS_EXCEPTION("Cannot reach here!");
+    std::shared_ptr<FroidurePinBase> Kambites::quotient_impl() {
+      return _k->froidure_pin();
     }
 
     class_index_type Kambites::word_to_class_index_impl(word_type const& word) 
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/tests/test-bipart.cpp 
new/libsemigroups-2.1.4/tests/test-bipart.cpp
--- old/libsemigroups-2.1.3/tests/test-bipart.cpp       2021-11-28 
12:25:20.195474345 +0100
+++ new/libsemigroups-2.1.4/tests/test-bipart.cpp       2022-03-04 
11:12:12.633374230 +0100
@@ -450,6 +450,9 @@
     REQUIRE(xxx <= xx);
     REQUIRE(xx >= xxx);
 
+    // Check for odd degree
+    REQUIRE_THROWS_AS(Bipartition::make({0, 1, 2}), LibsemigroupsException);
+
     REQUIRE_THROWS_AS(Bipartition::make({{0, 2, 3, 4, 5, 6, 9, -1, -2, -7},
                                          {7, 10, -3, -9, -10},
                                          {8, -4},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/tests/test-cong.cpp 
new/libsemigroups-2.1.4/tests/test-cong.cpp
--- old/libsemigroups-2.1.3/tests/test-cong.cpp 2021-11-28 12:30:48.110205997 
+0100
+++ new/libsemigroups-2.1.4/tests/test-cong.cpp 2022-03-04 11:12:12.633900668 
+0100
@@ -1399,7 +1399,7 @@
     // fail.
     REQUIRE(cong.word_to_class_index({2, 2, 2, 2}) == 254);
     REQUIRE(cong.class_index_to_word(2) == word_type({2}));
-    REQUIRE_THROWS_AS(cong.quotient_froidure_pin(), LibsemigroupsException);
+    REQUIRE_NOTHROW(cong.quotient_froidure_pin());
     REQUIRE_THROWS_AS(cong.cbegin_ntc(), LibsemigroupsException);
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-2.1.3/tests/test-kambites.cpp 
new/libsemigroups-2.1.4/tests/test-kambites.cpp
--- old/libsemigroups-2.1.3/tests/test-kambites.cpp     2021-12-16 
15:41:37.525732395 +0100
+++ new/libsemigroups-2.1.4/tests/test-kambites.cpp     2022-03-04 
11:12:12.635286445 +0100
@@ -1789,9 +1789,7 @@
       REQUIRE(k.contains({4, 5}, {3, 6}));
       REQUIRE(k.contains({0, 0, 0, 0, 0, 4, 5}, {0, 0, 0, 0, 0, 3, 6}));
       REQUIRE(k.contains({4, 5, 0, 1, 0, 1, 0}, {3, 6, 0, 1, 0, 1, 0}));
-      // TODO(later) there's no reason that we can't find the
-      // quotient_froidure_pin here
-      REQUIRE_THROWS_AS(k.quotient_froidure_pin(), LibsemigroupsException);
+      REQUIRE_NOTHROW(k.quotient_froidure_pin());
     }
 
     LIBSEMIGROUPS_TEST_CASE("Kambites",
@@ -1814,7 +1812,7 @@
       REQUIRE(!l.is_quotient_obviously_finite());
       REQUIRE(l.number_of_classes() == POSITIVE_INFINITY);
       REQUIRE(l.class_index_to_word(100) == word_type({0, 1, 0, 0}));
-      REQUIRE_THROWS_AS(l.quotient_froidure_pin(), LibsemigroupsException);
+      REQUIRE_NOTHROW(l.quotient_froidure_pin());
       REQUIRE(l.word_to_class_index({0, 1, 0, 0}) == 100);
     }
 

Reply via email to