From 68918475fe69b36f4cd85ec4af29b17eb8038bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20R=C3=BCth?= Date: Mon, 13 Nov 2023 12:47:56 +0200 Subject: [PATCH 1/6] Support building against fmt=10 --- doc/news/fmt10.rst | 3 +++ libintervalxt/configure.ac | 4 +++- libintervalxt/environment.yml | 2 +- libintervalxt/recipe/conda_build_config.yaml | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 doc/news/fmt10.rst diff --git a/doc/news/fmt10.rst b/doc/news/fmt10.rst new file mode 100644 index 0000000..30637c6 --- /dev/null +++ b/doc/news/fmt10.rst @@ -0,0 +1,3 @@ +**Fixed:** + +* Fixed building libintervalxt with fmt version 10. diff --git a/libintervalxt/configure.ac b/libintervalxt/configure.ac index 8adb8a6..83a33ea 100644 --- a/libintervalxt/configure.ac +++ b/libintervalxt/configure.ac @@ -46,7 +46,9 @@ AC_CHECK_HEADERS([fmt/format.h], , AC_MSG_ERROR([fmt headers not found])) AX_CXX_CHECK_LIB([fmt], [fmt::v6::getpagesize()], , [ AX_CXX_CHECK_LIB([fmt], [fmt::v7::getpagesize()], , [ AX_CXX_CHECK_LIB([fmt], [fmt::v8::report_system_error(int code=0, const char* message=nullptr)], , [ - AX_CXX_CHECK_LIB([fmt], [fmt::v9::report_system_error(int code=0, const char* message=nullptr)], , [AC_MSG_ERROR([fmt library not found])], [-lfmt]) + AX_CXX_CHECK_LIB([fmt], [fmt::v9::report_system_error(int code=0, const char* message=nullptr)], , [ + AX_CXX_CHECK_LIB([fmt], [fmt::v10::report_system_error(int code=0, const char* message=nullptr)], , [AC_MSG_ERROR([fmt library not found])], [-lfmt]) + ], [-lfmt]) ], [-lfmt]) ], [-lfmt]) ], [-lfmt]) diff --git a/libintervalxt/environment.yml b/libintervalxt/environment.yml index 29af3d9..5e467d3 100644 --- a/libintervalxt/environment.yml +++ b/libintervalxt/environment.yml @@ -13,7 +13,7 @@ dependencies: - cxx-compiler - libeantic>=1,<2 - libflint - - fmt=9 + - fmt=10 - gmp - gmpxxll - libexactreal>=3,<4 diff --git a/libintervalxt/recipe/conda_build_config.yaml b/libintervalxt/recipe/conda_build_config.yaml index 4b84251..2ad4e7d 100644 --- a/libintervalxt/recipe/conda_build_config.yaml +++ b/libintervalxt/recipe/conda_build_config.yaml @@ -5,4 +5,4 @@ boost_cpp: gmp: - '6' fmt: - - '9' + - '10' From 72707d017a0fae35f374f2d62d679326cb4df0fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20R=C3=BCth?= Date: Thu, 28 Dec 2023 00:24:53 -0600 Subject: [PATCH 2/6] Fix typo --- libintervalxt/test/interval_exchange_transformation.test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libintervalxt/test/interval_exchange_transformation.test.cc b/libintervalxt/test/interval_exchange_transformation.test.cc index fabcd28..0dde8e7 100644 --- a/libintervalxt/test/interval_exchange_transformation.test.cc +++ b/libintervalxt/test/interval_exchange_transformation.test.cc @@ -326,7 +326,7 @@ TEST_CASE("Computation of SAF Invariant", "[interval_exchange_transformation][sa auto iet = IET(lengths, {a, b, c, d}, {d, c, b, a}); CAPTURE(iet); - // Check that SAF invariant can be computed in an initiallly swapped IET. + // Check that SAF invariant can be computed in an initially swapped IET. iet.swap(); iet.safInvariant(); iet.swap(); From be112b5e285614ea2b299094dc15a70a01dd779d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20R=C3=BCth?= Date: Thu, 28 Dec 2023 00:25:09 -0600 Subject: [PATCH 3/6] Ignore Parma as in PPL --- .codespellrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codespellrc b/.codespellrc index a4a461f..26afa7b 100644 --- a/.codespellrc +++ b/.codespellrc @@ -1,3 +1,3 @@ [codespell] skip = libintervalxt/src/external/**/*,libintervalxt/test/external/**/* -ignore-words-list = rever +ignore-words-list = rever,Parma From f891af1e239639b36eea87dbd2922131d3776e2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20R=C3=BCth?= Date: Thu, 28 Dec 2023 00:31:21 -0600 Subject: [PATCH 4/6] Fix codespell config see https://github.com/codespell-project/codespell/issues/2375 --- .codespellrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codespellrc b/.codespellrc index 26afa7b..149cc2b 100644 --- a/.codespellrc +++ b/.codespellrc @@ -1,3 +1,3 @@ [codespell] skip = libintervalxt/src/external/**/*,libintervalxt/test/external/**/* -ignore-words-list = rever,Parma +ignore-words-list = rever,parma From 85898fda621bdf1f24b76ea203d195fcab48924c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20R=C3=BCth?= Date: Fri, 29 Dec 2023 15:11:25 -0600 Subject: [PATCH 5/6] ignore whitespace in type names --- pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py b/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py index f970a9c..93d250f 100644 --- a/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py +++ b/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py @@ -57,12 +57,14 @@ def track(self, name, headers): def __call__(self): for length, headers in self.known_lengths: if length not in LengthRegistrar.REGISTERED_LENGTHS: - if length == "intervalxt::cppyy::Lengths > >": + intervalxt::cppyy::Lengths>>)); + + if length.replace(' ', '') == "intervalxt::cppyy::Lengths>>": import logging logging.warning("GMP does not provide a cereal interface yet. Therefore serialization of mpz lengths is not supported yet.") continue - if length == "intervalxt::cppyy::Lengths > >": + if length.replace(' ', '') == "intervalxt::cppyy::Lengths>>": import logging logging.warning("GMP does not provide a cereal interface yet. Therefore serialization of mpq lengths is not supported yet.") continue From 9f40edd17355f8f65ddeb3c147b7a52fb940ef8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20R=C3=BCth?= Date: Fri, 29 Dec 2023 15:29:08 -0600 Subject: [PATCH 6/6] Fix syntax error --- pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py b/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py index 93d250f..4a7e7e7 100644 --- a/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py +++ b/pyintervalxt/src/pyintervalxt/cppyy_intervalxt.py @@ -57,8 +57,6 @@ def track(self, name, headers): def __call__(self): for length, headers in self.known_lengths: if length not in LengthRegistrar.REGISTERED_LENGTHS: - intervalxt::cppyy::Lengths>>)); - if length.replace(' ', '') == "intervalxt::cppyy::Lengths>>": import logging logging.warning("GMP does not provide a cereal interface yet. Therefore serialization of mpz lengths is not supported yet.")