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-08-30 14:49:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsemigroups (Old) and /work/SRC/openSUSE:Factory/.libsemigroups.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsemigroups" Tue Aug 30 14:49:17 2022 rev:16 rq:999994 version:2.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libsemigroups/libsemigroups.changes 2022-07-03 18:26:50.992731580 +0200 +++ /work/SRC/openSUSE:Factory/.libsemigroups.new.2083/libsemigroups.changes 2022-08-30 14:49:49.156172365 +0200 @@ -1,0 +2,7 @@ +Sat Aug 13 08:30:28 UTC 2022 - Jan Engelhardt <[email protected]> + +- Update to release 2.2.1 + * This is a minor release fixing a data race (probably) caused + by setting the global locale + +------------------------------------------------------------------- Old: ---- libsemigroups-2.2.0.tar.gz New: ---- libsemigroups-2.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsemigroups.spec ++++++ --- /var/tmp/diff_new_pack.P9b365/_old 2022-08-30 14:49:49.664173661 +0200 +++ /var/tmp/diff_new_pack.P9b365/_new 2022-08-30 14:49:49.668173671 +0200 @@ -18,7 +18,7 @@ Name: libsemigroups %define lname libsemigroups2 -Version: 2.2.0 +Version: 2.2.1 Release: 0 Summary: Library with algorithms for computing finite and finitely presented semigroups License: GPL-3.0-or-later ++++++ libsemigroups-2.2.0.tar.gz -> libsemigroups-2.2.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/.VERSION new/libsemigroups-2.2.1/.VERSION --- old/libsemigroups-2.2.0/.VERSION 2022-07-01 17:16:26.135584384 +0200 +++ new/libsemigroups-2.2.1/.VERSION 2022-08-12 10:11:36.978803755 +0200 @@ -1 +1 @@ -2.2.0 \ No newline at end of file +2.2.1 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/README.rst new/libsemigroups-2.2.1/README.rst --- old/libsemigroups-2.2.0/README.rst 2022-07-01 17:16:14.671961655 +0200 +++ new/libsemigroups-2.2.1/README.rst 2022-08-12 10:08:34.544681634 +0200 @@ -4,7 +4,7 @@ The full license is in the file LICENSE, distributed with this software. -libsemigroups - Version 2.2.0 +libsemigroups - Version 2.2.1 ============================= .. image:: https://readthedocs.org/projects/libsemigroups/badge/?version=master diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/configure new/libsemigroups-2.2.1/configure --- old/libsemigroups-2.2.0/configure 2022-07-01 17:16:29.660445493 +0200 +++ new/libsemigroups-2.2.1/configure 2022-08-12 10:11:40.645479653 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libsemigroups 2.2.0. +# Generated by GNU Autoconf 2.71 for libsemigroups 2.2.1. # # Report bugs to <[email protected]>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='libsemigroups' PACKAGE_TARNAME='libsemigroups' -PACKAGE_VERSION='2.2.0' -PACKAGE_STRING='libsemigroups 2.2.0' +PACKAGE_VERSION='2.2.1' +PACKAGE_STRING='libsemigroups 2.2.1' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1430,7 +1430,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.2.0 to adapt to many kinds of systems. +\`configure' configures libsemigroups 2.2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1502,7 +1502,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libsemigroups 2.2.0:";; + short | recursive ) echo "Configuration of libsemigroups 2.2.1:";; esac cat <<\_ACEOF @@ -1643,7 +1643,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libsemigroups configure 2.2.0 +libsemigroups configure 2.2.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2482,7 +2482,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.2.0, which was +It was created by libsemigroups $as_me 2.2.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4091,7 +4091,7 @@ # Define the identity of the package. PACKAGE='libsemigroups' - VERSION='2.2.0' + VERSION='2.2.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -23424,7 +23424,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.2.0, which was +This file was extended by libsemigroups $as_me 2.2.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23492,7 +23492,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libsemigroups config.status 2.2.0 +libsemigroups config.status 2.2.1 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.2.0/docs/source/changelog.rst new/libsemigroups-2.2.1/docs/source/changelog.rst --- old/libsemigroups-2.2.0/docs/source/changelog.rst 2022-07-01 17:16:14.672384102 +0200 +++ new/libsemigroups-2.2.1/docs/source/changelog.rst 2022-08-12 10:09:57.454323188 +0200 @@ -1,6 +1,12 @@ Changelog - version 2 ===================== +v2.2.1 (released 12/08/2022) +---------------------------- + +This is a minor release fixing a data race (probably) caused by setting the +global locale, that sometimes caused a crash. + v2.2.0 (released 01/07/2022) ---------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/docs/source/index.rst new/libsemigroups-2.2.1/docs/source/index.rst --- old/libsemigroups-2.2.0/docs/source/index.rst 2022-07-01 17:16:14.672666302 +0200 +++ new/libsemigroups-2.2.1/docs/source/index.rst 2022-08-12 10:10:39.557829863 +0200 @@ -1,4 +1,4 @@ -libsemigroups - Version 2.2.0 +libsemigroups - Version 2.2.1 ============================= C++ library for semigroups and monoids diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/docs/source/install.rst new/libsemigroups-2.2.1/docs/source/install.rst --- old/libsemigroups-2.2.0/docs/source/install.rst 2022-07-01 17:16:14.673013459 +0200 +++ new/libsemigroups-2.2.1/docs/source/install.rst 2022-08-12 10:10:17.862673152 +0200 @@ -1,4 +1,4 @@ -.. |libsemigroups-version| replace:: 2.2.0 +.. |libsemigroups-version| replace:: 2.2.1 .. _Installation: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/include/libsemigroups/config.hpp new/libsemigroups-2.2.1/include/libsemigroups/config.hpp --- old/libsemigroups-2.2.0/include/libsemigroups/config.hpp 2022-07-01 17:16:35.570752003 +0200 +++ new/libsemigroups-2.2.1/include/libsemigroups/config.hpp 2022-08-12 10:11:47.204412828 +0200 @@ -181,7 +181,7 @@ /* Define to the full name and version of this package. */ #ifndef LIBSEMIGROUPS_PACKAGE_STRING -#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.2.0" +#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.2.1" #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.2.0" +#define LIBSEMIGROUPS_PACKAGE_VERSION "2.2.1" #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.2.0" +#define LIBSEMIGROUPS_VERSION "2.2.1" #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.2.0/include/libsemigroups/report.hpp new/libsemigroups-2.2.1/include/libsemigroups/report.hpp --- old/libsemigroups-2.2.0/include/libsemigroups/report.hpp 2022-06-24 16:18:43.578007063 +0200 +++ new/libsemigroups-2.2.1/include/libsemigroups/report.hpp 2022-08-12 10:07:53.544142364 +0200 @@ -396,12 +396,7 @@ class PrintTable { public: explicit PrintTable(size_t width = 72) - : _rows(), _header(), _footer(), _width(width) { - try { - std::locale::global(std::locale("en_US.UTF-8")); - } catch (std::runtime_error const& e) { - } - } + : _rows(), _header(), _footer(), _width(width) {} std::string emit() { std::string result = lineohash() + _header + lineohash(); @@ -467,6 +462,10 @@ }; } // namespace detail + namespace report { + bool should_report() noexcept; + } + //! This struct can be used to enable printing of some information during //! various of the computation in ``libsemigroups``. Reporting is enable (or //! not) at construction time, and disable when the ReportGuard goes out of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/src/report.cpp new/libsemigroups-2.2.1/src/report.cpp --- old/libsemigroups-2.2.0/src/report.cpp 2022-05-15 16:54:05.108367682 +0200 +++ new/libsemigroups-2.2.1/src/report.cpp 2022-08-12 10:07:53.544515055 +0200 @@ -59,12 +59,7 @@ } Reporter::Reporter(bool report) - : _last_msg(), _mtx(), _msg(), _options(), _report(report) { - try { - std::locale::global(std::locale("en_US.UTF-8")); - } catch (std::runtime_error const& e) { - } - } + : _last_msg(), _mtx(), _msg(), _options(), _report(report) {} #ifdef LIBSEMIGROUPS_FMT_ENABLED Reporter& Reporter::color(fmt::color c) { @@ -141,4 +136,11 @@ } } } // namespace detail + + namespace report { + bool should_report() noexcept { + return REPORTER.report(); + } + + } // namespace report } // namespace libsemigroups diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/src/todd-coxeter.cpp new/libsemigroups-2.2.1/src/todd-coxeter.cpp --- old/libsemigroups-2.2.0/src/todd-coxeter.cpp 2022-06-24 16:18:43.584874610 +0200 +++ new/libsemigroups-2.2.1/src/todd-coxeter.cpp 2022-08-12 10:07:53.545612588 +0200 @@ -1576,11 +1576,13 @@ #ifdef LIBSEMIGROUPS_ENABLE_STATS void ToddCoxeter::report_coincidences(char const* fnam) { - REPORT_DEFAULT(FORMAT("coincidences:" + fmt_line(), - _coinc.size(), - int64_t(_coinc.size() - _stats.prev_coincidences), - fnam)); - _stats.prev_coincidences = _coinc.size(); + if (report::should_report()) { + REPORT_DEFAULT(FORMAT("coincidences:" + fmt_line(), + _coinc.size(), + int64_t(_coinc.size() - _stats.prev_coincidences), + fnam)); + _stats.prev_coincidences = _coinc.size(); + } } #else void ToddCoxeter::report_coincidences(char const* fnam) { @@ -1591,12 +1593,14 @@ #ifdef LIBSEMIGROUPS_ENABLE_STATS void ToddCoxeter::report_active_cosets(char const* fnam) { - REPORT_DEFAULT( - FORMAT("active cosets:" + fmt_line(), - number_of_cosets_active(), - int64_t(number_of_cosets_active() - _stats.prev_active_cosets), - fnam)); - _stats.prev_active_cosets = number_of_cosets_active(); + if (report::should_report()) { + REPORT_DEFAULT(FORMAT( + "active cosets:" + fmt_line(), + number_of_cosets_active(), + int64_t(number_of_cosets_active() - _stats.prev_active_cosets), + fnam)); + _stats.prev_active_cosets = number_of_cosets_active(); + } } #else void ToddCoxeter::report_active_cosets(char const* fnam) { @@ -1606,52 +1610,60 @@ #endif void ToddCoxeter::report_cosets_killed(char const* fnam, int64_t N) const { + if (report::should_report()) { #ifdef LIBSEMIGROUPS_FMT_ENABLED - std::string fmt = "\t{:>12} {:+12L} ({})\n"; + std::string fmt = "\t{:>12} {:+12L} ({})\n"; #else - std::string fmt = "\t%12s %+'12lld (%s)\n"; + std::string fmt = "\t%12s %+'12lld (%s)\n"; #endif - REPORT_DEFAULT(FORMAT("cosets killed:" + fmt, "", -1 * N, fnam)); + REPORT_DEFAULT(FORMAT("cosets killed:" + fmt, "", -1 * N, fnam)); + } } void ToddCoxeter::report_inc_lookahead(char const* fnam, size_t new_value) const { + if (report::should_report()) { #if defined(LIBSEMIGROUPS_FMT_ENABLED) - std::string fmt = "\t{:12L} {:+12L} ({})\n"; + std::string fmt = "\t{:12L} {:+12L} ({})\n"; #else - std::string fmt = "\t%'12llu %+'12lld (%s)\n"; + std::string fmt = "\t%'12llu %+'12lld (%s)\n"; #endif - REPORT_DEFAULT(FORMAT("lookahead at:" + fmt, - new_value, - int64_t(new_value - next_lookahead()), - fnam)); + REPORT_DEFAULT(FORMAT("lookahead at:" + fmt, + new_value, + int64_t(new_value - next_lookahead()), + fnam)); + } } void ToddCoxeter::report_time(char const* fnam, detail::Timer& t) const { - auto tt = t.string(); - size_t width = 12; - // Check if we contain a \mu - if (tt.find("\u03BC") != std::string::npos) { - width = 13; - } + if (report::should_report()) { + auto tt = t.string(); + size_t width = 12; + // Check if we contain a \mu + if (tt.find("\u03BC") != std::string::npos) { + width = 13; + } #ifdef LIBSEMIGROUPS_FMT_ENABLED - std::string fmt = "\t{:>" + std::to_string(width) + "} {:>{}} ({})\n"; - REPORT_DEFAULT(FORMAT("elapsed time:" + fmt, tt.c_str(), "", 12, fnam)); + std::string fmt = "\t{:>" + std::to_string(width) + "} {:>{}} ({})\n"; + REPORT_DEFAULT(FORMAT("elapsed time:" + fmt, tt.c_str(), "", 12, fnam)); #else - std::string fmt = "\t%" + std::to_string(width) + "s %*s (%s)\n"; - REPORT_DEFAULT(FORMAT("elapsed time:" + fmt, tt.c_str(), 12, "", fnam)); + std::string fmt = "\t%" + std::to_string(width) + "s %*s (%s)\n"; + REPORT_DEFAULT(FORMAT("elapsed time:" + fmt, tt.c_str(), 12, "", fnam)); #endif + } } // Cannot test this void ToddCoxeter::report_at_coset(char const* fnam, size_t N) const { + if (report::should_report()) { #ifdef LIBSEMIGROUPS_FMT_ENABLED - std::string fmt = "\t{:12L} {:12L} ({})\n"; + std::string fmt = "\t{:12L} {:12L} ({})\n"; #else - std::string fmt = "\t%'12llu %'12lld (%s)\n"; + std::string fmt = "\t%'12llu %'12lld (%s)\n"; #endif - REPORT_DEFAULT( - FORMAT("at coset:" + fmt, N, number_of_cosets_active(), fnam)); + REPORT_DEFAULT( + FORMAT("at coset:" + fmt, N, number_of_cosets_active(), fnam)); + } } //////////////////////////////////////////////////////////////////////// diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/tests/test-main.cpp new/libsemigroups-2.2.1/tests/test-main.cpp --- old/libsemigroups-2.2.0/tests/test-main.cpp 2022-05-15 16:54:12.472898936 +0200 +++ new/libsemigroups-2.2.1/tests/test-main.cpp 2022-08-11 15:11:14.007277096 +0200 @@ -49,10 +49,6 @@ using TestEventListenerBase::TestEventListenerBase; // inherit constructor void testCaseStarting(Catch::TestCaseInfo const& testInfo) override { - try { - std::locale::global(std::locale("en_US.UTF-8")); - } catch (std::runtime_error const& e) { - } _first_call = true; _one = testInfo.name; _two = " . . ."; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.2.0/tests/test-timer.cpp new/libsemigroups-2.2.1/tests/test-timer.cpp --- old/libsemigroups-2.2.0/tests/test-timer.cpp 2022-05-15 16:54:12.500321473 +0200 +++ new/libsemigroups-2.2.1/tests/test-timer.cpp 2022-08-11 15:11:24.313782669 +0200 @@ -31,7 +31,6 @@ "001", "string method (1 argument)", "[quick]") { - std::locale::global(std::locale("C")); detail::Timer t; std::chrono::nanoseconds ns(1); REQUIRE(t.string(ns) == "1ns");
