Date: Tue, 31 Mar 2026 04:05:10 +0000 From: Yuri Victorovich <yuri@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 1de14a01af1c - main - math/heyoka: update 6.0.0=?utf-8?Q? =E2=86=92 7.1?=0.0 Message-ID: <69cb47f6.37297.7db71ba4@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=1de14a01af1ccac463c639ad7fcfa578b894255c commit 1de14a01af1ccac463c639ad7fcfa578b894255c Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2026-03-30 22:30:24 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2026-03-31 04:05:08 +0000 math/heyoka: update 6.0.0 → 7.10.0 --- math/heyoka/Makefile | 20 ++++------ math/heyoka/distinfo | 6 +-- math/heyoka/files/patch-CMakeLists.txt | 18 +++++++-- .../files/patch-src_detail_erfa_CMakeLists.txt | 14 +++++++ math/heyoka/files/patch-test_llvm_helpers.cpp | 43 ++++++++++++++++++++++ math/heyoka/files/patch-test_taylor__atan.cpp | 18 +++++++++ math/heyoka/files/patch-test_test__utils.cpp | 20 ++++++++++ math/heyoka/pkg-plist | 40 ++++++++++++++++---- 8 files changed, 153 insertions(+), 26 deletions(-) diff --git a/math/heyoka/Makefile b/math/heyoka/Makefile index 5930c8fce1ec..cccc039fe90a 100644 --- a/math/heyoka/Makefile +++ b/math/heyoka/Makefile @@ -1,43 +1,37 @@ PORTNAME= heyoka DISTVERSIONPREFIX= v -DISTVERSION= 6.0.0 -PORTREVISION= 7 +DISTVERSION= 7.10.0 CATEGORIES= math MAINTAINER= yuri@FreeBSD.org COMMENT= C++ library for ODE integration via Taylor's method and LLVM -WWW= https://bluescarni.github.io/heyoka/ +WWW= https://bluescarni.github.io/heyoka/ \ + https://github.com/bluescarni/heyoka LICENSE= MPL20 LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN= Fails to build with fmt 12+, The supported fmt versions are in the range [9, 11], but version 12 was found instead. -#BROKEN_FreeBSD_13= compilation fails: no member named 'transform' in namespace 'std::ranges'; did you mean 'llvm::transform' (std::ranges::transform isn't present) - LIB_DEPENDS= libboost_serialization.so:devel/boost-libs \ libfmt.so:devel/libfmt \ libgmp.so:math/gmp \ libmp++.so:math/mppp \ libmpc.so:math/mpc \ libmpfr.so:math/mpfr \ + libsqlite3.so:databases/sqlite3 \ libtbb.so:devel/onetbb \ libsleef.so:math/sleef \ libspdlog.so:devel/spdlog TEST_DEPENDS= xtensor>0:math/xtensor \ xtensor-blas>0:math/xtensor-blas -USES= cmake:testing compiler:c++20-lang llvm:min=16,build,run +USES= cmake:testing compiler:c++20-lang llvm:min=18,build,run ssl USE_LDCONFIG= yes USE_GITHUB= yes GH_ACCOUNT= bluescarni CMAKE_ON= HEYOKA_WITH_MPPP HEYOKA_WITH_SLEEF -CMAKE_TESTING_ON= HEYOKA_BUILD_TESTS # 1 test fails, see https://github.com/bluescarni/heyoka/issues/338 - -# 2 tests fail: -# * https://github.com/bluescarni/heyoka/issues/429 -# * https://github.com/bluescarni/heyoka/issues/430 +CMAKE_TESTING_ON= HEYOKA_BUILD_TESTS .include <bsd.port.pre.mk> @@ -52,4 +46,6 @@ LLVM_VERSION_MINOR= 0 CMAKE_ARGS+= -DFREEBSD_LLVM_VERSION=${LLVM_VERSION}.${LLVM_VERSION_MINOR} +# tests as of 7.10.0: 100% tests passed, 0 tests failed out of 162 + .include <bsd.port.post.mk> diff --git a/math/heyoka/distinfo b/math/heyoka/distinfo index b344e48194e1..c0d7f3788fe6 100644 --- a/math/heyoka/distinfo +++ b/math/heyoka/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1726978227 -SHA256 (bluescarni-heyoka-v6.0.0_GH0.tar.gz) = 9cf56a6a29db5c72c5203af70d568aede78cb549baf1505b8abd04b888492895 -SIZE (bluescarni-heyoka-v6.0.0_GH0.tar.gz) = 104464800 +TIMESTAMP = 1774898303 +SHA256 (bluescarni-heyoka-v7.10.0_GH0.tar.gz) = 32404b6e8e0697c5ee3e0debda523eb98c57485bfe39584715ca105b8e6377a1 +SIZE (bluescarni-heyoka-v7.10.0_GH0.tar.gz) = 86871990 diff --git a/math/heyoka/files/patch-CMakeLists.txt b/math/heyoka/files/patch-CMakeLists.txt index 833117d9a3d2..11421f0541c5 100644 --- a/math/heyoka/files/patch-CMakeLists.txt +++ b/math/heyoka/files/patch-CMakeLists.txt @@ -1,13 +1,23 @@ - fix llvm version +- use MODULE mode for OpenSSL (base system lacks cmake config file) ---- CMakeLists.txt.orig 2024-06-13 17:20:31 UTC +--- CMakeLists.txt.orig 2026-03-20 00:58:15 UTC +++ CMakeLists.txt -@@ -156,7 +156,7 @@ include(GNUInstallDirs) +@@ -153,7 +153,7 @@ # # https://github.com/llvm/llvm-project/issues/58558 include(GNUInstallDirs) -find_package(LLVM REQUIRED CONFIG) +find_package(LLVM ${FREEBSD_LLVM_VERSION} REQUIRED CONFIG) - if(${LLVM_VERSION_MAJOR} LESS 13 OR ${LLVM_VERSION_MAJOR} GREATER 18) - message(FATAL_ERROR "LLVM >= 13 and <= 18 is required.") + if(${LLVM_VERSION_MAJOR} LESS 18 OR ${LLVM_VERSION_MAJOR} GREATER 22) + message(FATAL_ERROR "LLVM >= 18 and <= 22 is required.") +@@ -638,7 +638,7 @@ + endif() + + # Mandatory private dependency on openssl. +-find_package(OpenSSL REQUIRED CONFIG) ++find_package(OpenSSL REQUIRED) + target_link_libraries(heyoka PRIVATE OpenSSL::SSL OpenSSL::Crypto) + + # Mandatory dependency on sqlite. See: diff --git a/math/heyoka/files/patch-src_detail_erfa_CMakeLists.txt b/math/heyoka/files/patch-src_detail_erfa_CMakeLists.txt new file mode 100644 index 000000000000..12d4d63387e3 --- /dev/null +++ b/math/heyoka/files/patch-src_detail_erfa_CMakeLists.txt @@ -0,0 +1,14 @@ +- enable PIC for erfa static library (required when linking into a shared library) + +--- src/detail/erfa/CMakeLists.txt.orig 2026-03-20 00:58:15 UTC ++++ src/detail/erfa/CMakeLists.txt +@@ -254,6 +254,9 @@ + + add_library(heyoka_erfa STATIC "${HEYOKA_ERFA_SRC_FILES}") + ++# Required when linking into a shared library. ++set_property(TARGET heyoka_erfa PROPERTY POSITION_INDEPENDENT_CODE ON) ++ + # Compile in C99 mode. + target_compile_features(heyoka_erfa PRIVATE c_std_99) + # Enforce vanilla C. diff --git a/math/heyoka/files/patch-test_llvm_helpers.cpp b/math/heyoka/files/patch-test_llvm_helpers.cpp new file mode 100644 index 000000000000..b962f8a6d7e7 --- /dev/null +++ b/math/heyoka/files/patch-test_llvm_helpers.cpp @@ -0,0 +1,43 @@ +--- test/llvm_helpers.cpp.orig ++++ test/llvm_helpers.cpp +@@ -1498,11 +1498,19 @@ + #if defined(HEYOKA_HAVE_REAL128) + if constexpr (!std::is_same_v<fp_t, mppp::real128>) { + #endif +- ++// On x86/x86-64, long double is 80-bit extended precision and there is no ++// hardware FMA instruction for this type. The system fmal() is not an exact ++// FMA, so the EFT property cannot be guaranteed for long double. ++#if defined(HEYOKA_ARCH_X86) ++ if constexpr (!std::is_same_v<fp_t, long double>) { ++#endif + using mp_fp_t = mppp::real; + const auto prec = std::numeric_limits<fp_t>::digits * 2; + + REQUIRE(mp_fp_t(x, prec) + mp_fp_t(y, prec) == mp_fp_t(a, prec) * mp_fp_t(b, prec)); ++#if defined(HEYOKA_ARCH_X86) ++ } ++#endif + #if defined(HEYOKA_HAVE_REAL128) + } + #endif +@@ -1588,10 +1596,19 @@ + #if defined(HEYOKA_HAVE_REAL128) + if constexpr (!std::is_same_v<fp_t, mppp::real128>) { + #endif ++// On x86/x86-64, long double is 80-bit extended precision and there is no ++// hardware FMA instruction for this type. The system fmal() is not an exact ++// FMA, so the EFT property cannot be guaranteed for long double. ++#if defined(HEYOKA_ARCH_X86) ++ if constexpr (!std::is_same_v<fp_t, long double>) { ++#endif + using mp_fp_t = mppp::real; + const auto prec = std::numeric_limits<fp_t>::digits * 2; + + REQUIRE(mp_fp_t(xv, prec) + mp_fp_t(yv, prec) == mp_fp_t(a, prec) * mp_fp_t(b, prec)); ++#if defined(HEYOKA_ARCH_X86) ++ } ++#endif + #if defined(HEYOKA_HAVE_REAL128) + } + #endif diff --git a/math/heyoka/files/patch-test_taylor__atan.cpp b/math/heyoka/files/patch-test_taylor__atan.cpp new file mode 100644 index 000000000000..03047cd538de --- /dev/null +++ b/math/heyoka/files/patch-test_taylor__atan.cpp @@ -0,0 +1,18 @@ +--- test/taylor_atan.cpp.orig ++++ test/taylor_atan.cpp +@@ -48,7 +48,16 @@ + >{}; + +-constexpr bool skip_batch_ld = false; ++// On x86/x86-64, long double is 80-bit extended precision. Batch Taylor ++// integration uses double-length (DL) arithmetic via EFT internally, which ++// relies on fmal() being an exact fused multiply-add. Since there is no ++// hardware FMA instruction for 80-bit extended precision on x86, the system ++// fmal() is not exact, making batch results unreliable for long double. ++#if defined(HEYOKA_ARCH_X86) ++constexpr bool skip_batch_ld = true; ++#else ++constexpr bool skip_batch_ld = false; ++#endif + + TEST_CASE("taylor atan decompose bug 00") diff --git a/math/heyoka/files/patch-test_test__utils.cpp b/math/heyoka/files/patch-test_test__utils.cpp new file mode 100644 index 000000000000..400577da1622 --- /dev/null +++ b/math/heyoka/files/patch-test_test__utils.cpp @@ -0,0 +1,20 @@ +--- test/test_utils.cpp.orig ++++ test/test_utils.cpp +@@ -186,7 +186,17 @@ + const auto jet_scalar = tc_to_jet(ta); + + for (auto i = 0ul; i < dim * 4ul; ++i) { ++// On x86/x86-64, long double is 80-bit extended precision. Batch Taylor ++// integration uses double-length arithmetic via EFT internally. Since the ++// system fmal() is not an exact FMA for 80-bit long double, the batch ++// results may differ from the scalar results. Skip this comparison. ++#if defined(HEYOKA_ARCH_X86) ++ if constexpr (!std::is_same_v<T, long double>) { ++#endif + REQUIRE(jet_scalar[i] == approximately(jet_batch[i * batch_size + batch_idx], tol)); ++#if defined(HEYOKA_ARCH_X86) ++ } ++#endif + } + } + } diff --git a/math/heyoka/pkg-plist b/math/heyoka/pkg-plist index 7f564523e6ba..00442bf8aade 100644 --- a/math/heyoka/pkg-plist +++ b/math/heyoka/pkg-plist @@ -3,7 +3,8 @@ include/heyoka/callback/angle_reducer.hpp include/heyoka/callbacks.hpp include/heyoka/config.hpp include/heyoka/continuous_output.hpp -include/heyoka/detail/aligned_buffer.hpp +include/heyoka/detail/aligned_vector.hpp +include/heyoka/detail/analytical_theories_helpers.hpp include/heyoka/detail/binomial.hpp include/heyoka/detail/cm_utils.hpp include/heyoka/detail/debug.hpp @@ -11,21 +12,28 @@ include/heyoka/detail/dfloat.hpp include/heyoka/detail/div.hpp include/heyoka/detail/dtens_impl.hpp include/heyoka/detail/ed_data.hpp +include/heyoka/detail/egm2008.hpp include/heyoka/detail/elp2000/elp2000_10_15.hpp include/heyoka/detail/elp2000/elp2000_16_21.hpp include/heyoka/detail/elp2000/elp2000_1_3.hpp include/heyoka/detail/elp2000/elp2000_22_36.hpp include/heyoka/detail/elp2000/elp2000_4_9.hpp +include/heyoka/detail/eop_data/builtin_eop_data.hpp +include/heyoka/detail/eop_sw_helpers.hpp +include/heyoka/detail/erfa_decls.hpp include/heyoka/detail/event_detection.hpp -include/heyoka/detail/fast_unordered.hpp -include/heyoka/detail/func_cache.hpp +include/heyoka/detail/ex_traversal.hpp include/heyoka/detail/fwd_decl.hpp +include/heyoka/detail/get_dl_path.hpp +include/heyoka/detail/http_download.hpp include/heyoka/detail/i_data.hpp +include/heyoka/detail/iau2006/X.hpp +include/heyoka/detail/iau2006/Y.hpp +include/heyoka/detail/iau2006/s.hpp include/heyoka/detail/igor.hpp include/heyoka/detail/llvm_func_create.hpp include/heyoka/detail/llvm_fwd.hpp include/heyoka/detail/llvm_helpers.hpp -include/heyoka/detail/llvm_vector_type.hpp include/heyoka/detail/logging_impl.hpp include/heyoka/detail/mdspan/__p0009_bits/compressed_pair.hpp include/heyoka/detail/mdspan/__p0009_bits/config.hpp @@ -51,16 +59,22 @@ include/heyoka/detail/mdspan/mdspan include/heyoka/detail/num_identity.hpp include/heyoka/detail/num_utils.hpp include/heyoka/detail/optional_s11n.hpp +include/heyoka/detail/ranges_to.hpp include/heyoka/detail/real_helpers.hpp -include/heyoka/detail/rng_to_vec.hpp +include/heyoka/detail/safe_integer.hpp include/heyoka/detail/simple_timer.hpp +include/heyoka/detail/sincos_combine.hpp include/heyoka/detail/string_conv.hpp include/heyoka/detail/sub.hpp include/heyoka/detail/sum_sq.hpp +include/heyoka/detail/sw_data/builtin_sw_data.hpp +include/heyoka/detail/ta_jit_data.hpp include/heyoka/detail/tanuki.hpp include/heyoka/detail/tanuki_impl.hpp include/heyoka/detail/taylor_common.hpp +include/heyoka/detail/tbb_isolated.hpp include/heyoka/detail/type_traits.hpp +include/heyoka/detail/udf_split.hpp include/heyoka/detail/variant_s11n.hpp include/heyoka/detail/vector_math.hpp include/heyoka/detail/visibility.hpp @@ -73,11 +87,15 @@ include/heyoka/detail/vsop2013/vsop2013_6.hpp include/heyoka/detail/vsop2013/vsop2013_7.hpp include/heyoka/detail/vsop2013/vsop2013_8.hpp include/heyoka/detail/vsop2013/vsop2013_9.hpp +include/heyoka/detail/vsop2013/vsop2013_term.hpp +include/heyoka/detail/vsys_data.hpp include/heyoka/ensemble_propagate.hpp +include/heyoka/eop_data.hpp include/heyoka/events.hpp include/heyoka/exceptions.hpp include/heyoka/expression.hpp include/heyoka/func.hpp +include/heyoka/func_args.hpp include/heyoka/gp.hpp include/heyoka/hamiltonian.hpp include/heyoka/heyoka.hpp @@ -120,9 +138,14 @@ include/heyoka/math/time.hpp include/heyoka/mdspan.hpp include/heyoka/model/cart2geo.hpp include/heyoka/model/cr3bp.hpp +include/heyoka/model/dayfrac.hpp +include/heyoka/model/egm2008.hpp include/heyoka/model/elp2000.hpp +include/heyoka/model/eop.hpp include/heyoka/model/ffnn.hpp include/heyoka/model/fixed_centres.hpp +include/heyoka/model/frame_transformations.hpp +include/heyoka/model/iau2006.hpp include/heyoka/model/jb08_tn.hpp include/heyoka/model/mascon.hpp include/heyoka/model/nbody.hpp @@ -130,6 +153,8 @@ include/heyoka/model/nrlmsise00_tn.hpp include/heyoka/model/pendulum.hpp include/heyoka/model/rotating.hpp include/heyoka/model/sgp4.hpp +include/heyoka/model/sw.hpp +include/heyoka/model/time_conversions.hpp include/heyoka/model/vsop2013.hpp include/heyoka/models.hpp include/heyoka/number.hpp @@ -137,6 +162,7 @@ include/heyoka/param.hpp include/heyoka/s11n.hpp include/heyoka/splitmix64.hpp include/heyoka/step_callback.hpp +include/heyoka/sw_data.hpp include/heyoka/taylor.hpp include/heyoka/var_ode_sys.hpp include/heyoka/variable.hpp @@ -145,5 +171,5 @@ lib/cmake/heyoka/heyoka-config.cmake lib/cmake/heyoka/heyoka_export-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/heyoka/heyoka_export.cmake lib/libheyoka.so -lib/libheyoka.so.30 -lib/libheyoka.so.30.0 +lib/libheyoka.so.42 +lib/libheyoka.so.42.0home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69cb47f6.37297.7db71ba4>
