* [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build. @ 2023-11-02 15:36 Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher ` (8 more replies) 0 siblings, 9 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-02 15:36 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier Hi Guix! During update process of python-spherical-geometry I faced with failing build due to issue with qd package, see https://github.com/spacetelescope/spherical_geometry/issues/227 for more detail. I've prepared patch for qd based on the proposed in discussion, also there is dependent package - elemental, which failed for a long time and fixed with update to the latest commit. This patch series include updates of qd and elemental packages and fixing their styles. Sharlatan Hellseher (5): gnu: qd: Use G-expressions. gnu: qd: Apply patch to fix accuracy in angle computation. gnu: elemental: Update to 0.87.7-0.6eb15a0. gnu: elemental: Remove input labels. gnu: elemental: Update package style. gnu/local.mk | 1 + gnu/packages/maths.scm | 109 ++++---- gnu/packages/multiprecision.scm | 28 +- ...qd-fix-accuracy-in-angle-computation.patch | 258 ++++++++++++++++++ 4 files changed, 331 insertions(+), 65 deletions(-) create mode 100644 gnu/packages/patches/qd-fix-accuracy-in-angle-computation.patch base-commit: 0647f308b46b7ba7aa136068712f8d82d69d1a35 -- 2.41.0 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH 1/5] gnu: qd: Use G-expressions. 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher @ 2023-11-02 15:37 ` Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 2/5] gnu: qd: Apply patch to fix accuracy in angle computation Sharlatan Hellseher ` (7 subsequent siblings) 8 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-02 15:37 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher * gnu/packages/multiprecision.scm (qd): Adjust package style by using G-expressions. Change-Id: I9265979343e67d1d9e9e69b7b071ea1e429d3ee4 --- gnu/packages/multiprecision.scm | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 3aa5dccfab..11afcfe4a0 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -263,18 +264,18 @@ (define-public qd (native-inputs (list gfortran)) (arguments - `(#:configure-flags `("--disable-enable_fma" ;weird :/ - "--disable-static" - "--enable-shared" - ,,@(if (string-prefix? "aarch64" - (or (%current-target-system) - (%current-system))) - ;; XXX: The qd_test test fails numerical - ;; accuracy checks for 'dd_real::exp()' on - ;; aarch64 with GCC 5.4 at -O2. Disabling - ;; expensive optimizations lets it pass. - '("CXXFLAGS=-O3 -fno-expensive-optimizations") - '("CXXFLAGS=-O3"))))) + (list + #:configure-flags + #~(list "--disable-enable_fma" ;weird :/ + "--disable-static" + "--enable-shared" + #$@(if (target-aarch64?) + ;; XXX: The qd_test test fails numerical + ;; accuracy checks for 'dd_real::exp()' on + ;; aarch64 with GCC 5.4 at -O2. Disabling + ;; expensive optimizations lets it pass. + '("CXXFLAGS=-O3 -fno-expensive-optimizations") + '("CXXFLAGS=-O3"))))) (home-page "https://www.davidhbailey.com/dhbsoftware/") (synopsis "Double-double and quad-double library") (description "This package supports both a double-double -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH 2/5] gnu: qd: Apply patch to fix accuracy in angle computation. 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher @ 2023-11-02 15:37 ` Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher ` (6 subsequent siblings) 8 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-02 15:37 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher During attempt to upgrade python-spherical-geometry there was upstream discussion to adjust qd. Patch is sourced and adjusted based on the proposed one during discussion: https://github.com/spacetelescope/spherical_geometry/issues/227 * gnu/packages/multiprecision.scm (qd): [source]: Apply patch. * gnu/packages/patches/qd-fix-accuracy-in-angle-computation.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: Ic1dfdbe19b3347367b2ffb846be6bb975a0b89ae --- gnu/local.mk | 1 + gnu/packages/multiprecision.scm | 3 +- ...qd-fix-accuracy-in-angle-computation.patch | 258 ++++++++++++++++++ 3 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/qd-fix-accuracy-in-angle-computation.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8d817379a7..b6a5113063 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1896,6 +1896,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-waitress-fix-tests.patch \ %D%/packages/patches/python-werkzeug-tests.patch \ %D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \ + %D%/packages/patches/qd-fix-accuracy-in-angle-computation.patch \ %D%/packages/patches/qemu-build-info-manual.patch \ %D%/packages/patches/qemu-disable-some-qtests-tests.patch \ %D%/packages/patches/qemu-glibc-2.27.patch \ diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 11afcfe4a0..453b351a65 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -259,7 +259,8 @@ (define-public qd (uri (string-append "https://crd-legacy.lbl.gov/~dhbailey/mpdist/qd-" version ".tar.gz")) (sha256 - (base32 "09pfd77rmy370hy7qdqw84z21y9zpl3fcwzf93rhiv0kwhfg9smk")))) + (base32 "09pfd77rmy370hy7qdqw84z21y9zpl3fcwzf93rhiv0kwhfg9smk")) + (patches (search-patches "qd-fix-accuracy-in-angle-computation.patch")))) (build-system gnu-build-system) (native-inputs (list gfortran)) diff --git a/gnu/packages/patches/qd-fix-accuracy-in-angle-computation.patch b/gnu/packages/patches/qd-fix-accuracy-in-angle-computation.patch new file mode 100644 index 0000000000..288d56919e --- /dev/null +++ b/gnu/packages/patches/qd-fix-accuracy-in-angle-computation.patch @@ -0,0 +1,258 @@ +From e5ccba8fc889c38f49a247ff3060e8462388f6f9 Mon Sep 17 00:00:00 2001 +From: Sharlatan Hellseher <sharlatanus@gmail.com> +Date: Thu, 2 Nov 2023 02:49:54 +0000 +Subject: [PATCH] Fix accuracy in angle computation (#224) + +Author: Mihai Cara <mcara@users.noreply.github.com> +Source: https://github.com/spacetelescope/spherical_geometry/pull/224 + +* Fix accuracy in angle computation + +* Enhance comparisons and expose QD 2*pi +--- + include/qd/c_dd.h | 2 ++ + include/qd/c_qd.h | 4 ++- + include/qd/qd_real.h | 11 ++++---- + src/c_dd.cpp | 8 ++++++ + src/c_qd.cpp | 15 +++++++++-- + src/qd_real.cpp | 63 +++++++++++++++++++++++++++----------------- + 6 files changed, 71 insertions(+), 32 deletions(-) + +diff --git a/include/qd/c_dd.h b/include/qd/c_dd.h +index 203a8fa..7ffcb01 100644 +--- a/include/qd/c_dd.h ++++ b/include/qd/c_dd.h +@@ -90,6 +90,8 @@ void c_dd_comp(const double *a, const double *b, int *result); + void c_dd_comp_dd_d(const double *a, double b, int *result); + void c_dd_comp_d_dd(double a, const double *b, int *result); + void c_dd_pi(double *a); ++void c_dd_2pi(double *a); ++double c_dd_epsilon(void); + + #ifdef __cplusplus + } +diff --git a/include/qd/c_qd.h b/include/qd/c_qd.h +index 9062d1d..b118f26 100644 +--- a/include/qd/c_qd.h ++++ b/include/qd/c_qd.h +@@ -65,7 +65,7 @@ void c_qd_copy(const double *a, double *b); + void c_qd_copy_dd(const double *a, double *b); + void c_qd_copy_d(double a, double *b); + +-void c_qd_sqrt(const double *a, double *b); ++int c_qd_sqrt(const double *a, double *b); + void c_qd_sqr(const double *a, double *b); + + void c_qd_abs(const double *a, double *b); +@@ -111,6 +111,8 @@ void c_qd_comp(const double *a, const double *b, int *result); + void c_qd_comp_qd_d(const double *a, double b, int *result); + void c_qd_comp_d_qd(double a, const double *b, int *result); + void c_qd_pi(double *a); ++void c_qd_2pi(double *a); ++double c_qd_epsilon(void); + + #ifdef __cplusplus + } +diff --git a/include/qd/qd_real.h b/include/qd/qd_real.h +index 32079d0..9435678 100644 +--- a/include/qd/qd_real.h ++++ b/include/qd/qd_real.h +@@ -120,16 +120,16 @@ struct QD_API qd_real { + static qd_real rand(void); + + void to_digits(char *s, int &expn, int precision = _ndigits) const; +- void write(char *s, int len, int precision = _ndigits, ++ void write(char *s, int len, int precision = _ndigits, + bool showpos = false, bool uppercase = false) const; +- std::string to_string(int precision = _ndigits, int width = 0, +- std::ios_base::fmtflags fmt = static_cast<std::ios_base::fmtflags>(0), ++ std::string to_string(int precision = _ndigits, int width = 0, ++ std::ios_base::fmtflags fmt = static_cast<std::ios_base::fmtflags>(0), + bool showpos = false, bool uppercase = false, char fill = ' ') const; + static int read(const char *s, qd_real &a); + + /* Debugging methods */ + void dump(const std::string &name = "", std::ostream &os = std::cerr) const; +- void dump_bits(const std::string &name = "", ++ void dump_bits(const std::string &name = "", + std::ostream &os = std::cerr) const; + + static qd_real debug_rand(); +@@ -150,7 +150,7 @@ namespace std { + } + + QD_API qd_real polyeval(const qd_real *c, int n, const qd_real &x); +-QD_API qd_real polyroot(const qd_real *c, int n, ++QD_API qd_real polyroot(const qd_real *c, int n, + const qd_real &x0, int max_iter = 64, double thresh = 0.0); + + QD_API qd_real qdrand(void); +@@ -190,6 +190,7 @@ QD_API qd_real operator/(double a, const qd_real &b); + + QD_API qd_real sqr(const qd_real &a); + QD_API qd_real sqrt(const qd_real &a); ++QD_API qd_real fsqrt(const qd_real &a, int &flag); + QD_API qd_real pow(const qd_real &a, int n); + QD_API qd_real pow(const qd_real &a, const qd_real &b); + QD_API qd_real npwr(const qd_real &a, int n); +diff --git a/src/c_dd.cpp b/src/c_dd.cpp +index 1cb2989..1df03e2 100644 +--- a/src/c_dd.cpp ++++ b/src/c_dd.cpp +@@ -311,4 +311,12 @@ void c_dd_pi(double *a) { + TO_DOUBLE_PTR(dd_real::_pi, a); + } + ++void c_dd_2pi(double *a) { ++ TO_DOUBLE_PTR(dd_real::_2pi, a); ++} ++ ++double c_dd_epsilon(void) { ++ return (double) std::numeric_limits<dd_real>::epsilon(); ++} ++ + } +diff --git a/src/c_qd.cpp b/src/c_qd.cpp +index 010cf85..95cffb3 100644 +--- a/src/c_qd.cpp ++++ b/src/c_qd.cpp +@@ -237,11 +237,14 @@ void c_qd_copy_d(double a, double *b) { + } + + +-void c_qd_sqrt(const double *a, double *b) { ++int c_qd_sqrt(const double *a, double *b) { ++ int flag; + qd_real bb; +- bb = sqrt(qd_real(a)); ++ bb = fsqrt(qd_real(a), flag); + TO_DOUBLE_PTR(bb, b); ++ return flag; + } ++ + void c_qd_sqr(const double *a, double *b) { + qd_real bb; + bb = sqr(qd_real(a)); +@@ -447,4 +450,12 @@ void c_qd_pi(double *a) { + TO_DOUBLE_PTR(qd_real::_pi, a); + } + ++void c_qd_2pi(double *a) { ++ TO_DOUBLE_PTR(qd_real::_2pi, a); ++} ++ ++double c_qd_epsilon(void) { ++ return (double) std::numeric_limits<qd_real>::epsilon(); ++} ++ + } +diff --git a/src/qd_real.cpp b/src/qd_real.cpp +index 70988ff..2da15c2 100644 +--- a/src/qd_real.cpp ++++ b/src/qd_real.cpp +@@ -191,7 +191,7 @@ istream &operator>>(istream &s, qd_real &qd) { + ostream &operator<<(ostream &os, const qd_real &qd) { + bool showpos = (os.flags() & ios_base::showpos) != 0; + bool uppercase = (os.flags() & ios_base::uppercase) != 0; +- return os << qd.to_string(os.precision(), os.width(), os.flags(), ++ return os << qd.to_string(os.precision(), os.width(), os.flags(), + showpos, uppercase, os.fill()); + } + +@@ -346,9 +346,9 @@ void qd_real::to_digits(char *s, int &expn, int precision) const { + } + + /* If first digit is 10, shift everything. */ +- if (s[0] > '9') { +- e++; +- for (i = precision; i >= 2; i--) s[i] = s[i-1]; ++ if (s[0] > '9') { ++ e++; ++ for (i = precision; i >= 2; i--) s[i] = s[i-1]; + s[0] = '1'; + s[1] = '0'; + } +@@ -519,7 +519,6 @@ string qd_real::to_string(int precision, int width, ios_base::fmtflags fmt, + if( fabs( from_string / this->x[0] ) > 3.0 ){ + + int point_position; +- char temp; + + // loop on the string, find the point, move it up one + // don't act on the first character +@@ -736,37 +735,53 @@ qd_real qd_real::accurate_div(const qd_real &a, const qd_real &b) { + return qd_real(q0, q1, q2, q3); + } + +-QD_API qd_real sqrt(const qd_real &a) { +- /* Strategy: +- +- Perform the following Newton iteration: ++QD_API qd_real fsqrt(const qd_real &a, int &flag) { ++ /* Uses Heron's method, see: ++ https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method + +- x' = x + (1 - a * x^2) * x / 2; +- +- which converges to 1/sqrt(a), starting with the +- double precision approximation to 1/sqrt(a). +- Since Newton's iteration more or less doubles the +- number of correct digits, we only need to perform it +- twice. ++ 1. x0 = approximate sqrt(a); ++ 2. x_{n+1} = (1/2) * (x_n + a / x_n); ++ 3. repeat 2 until corrections are small + */ + ++ int i; ++ double e, eps; ++ ++ qd_real r, diff; ++ qd_real half = "0.5000000000000000000000000000000000" ++ "000000000000000000000000000000000000"; ++ + if (a.is_zero()) +- return 0.0; ++ return (qd_real) 0.0; + + if (a.is_negative()) { + qd_real::error("(qd_real::sqrt): Negative argument."); + return qd_real::_nan; + } + +- qd_real r = (1.0 / std::sqrt(a[0])); +- qd_real h = mul_pwr2(a, 0.5); ++ eps = std::numeric_limits<qd_real>::epsilon(); + +- r += ((0.5 - h * sqr(r)) * r); +- r += ((0.5 - h * sqr(r)) * r); +- r += ((0.5 - h * sqr(r)) * r); ++ qd_real x = std::sqrt(a[0]); ++ qd_real y; + +- r *= a; +- return r; ++ for (i=0; i < 10; i++) { ++ y = half * (x + a / x); ++ diff = x - y; ++ x = y; ++ e = fabs(((diff[3] + diff[2]) + diff[1]) + diff[0]); ++ if (e < fabs(x.x[0]) * eps) { ++ flag = 0; // convergence achieved ++ return x; ++ } ++ } ++ ++ flag = 1; // failed to converge ++ return x; ++} ++ ++QD_API qd_real sqrt(const qd_real &a) { ++ int flag; ++ return fsqrt(a, flag); + } + + +-- +2.41.0 + -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0. 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 2/5] gnu: qd: Apply patch to fix accuracy in angle computation Sharlatan Hellseher @ 2023-11-02 15:37 ` Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher ` (5 subsequent siblings) 8 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-02 15:37 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier The build of elemental is failed on GCC 7+: https://github.com/elemental/Elemental/issues/254 Fixed but not released yet in merge request: https://github.com/elemental/Elemental/pull/259 * gnu/packages/maths.scm (elemental): Update to 0.87.7-0.6eb15a0. Change-Id: I333f1de160489035f1a8875173abdd57c03ef777 --- gnu/packages/maths.scm | 109 +++++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 52 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ed1708c77b..6b9725bdcc 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7593,60 +7593,65 @@ (define-public elpa-openmpi (synopsis "Eigenvalue solvers for symmetric matrices (with MPI support)"))) (define-public elemental - (package - (name "elemental") - (version "0.87.7") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/elemental/Elemental") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1687xpjjzig27y2pnqv7hv09smpijyfdpz7qjgmcxf4shfajlfkc")))) - (build-system cmake-build-system) - (home-page "https://github.com/elemental/Elemental") - (native-inputs - (list gfortran)) - (inputs - `(("blas" ,openblas) - ("gfortran:lib" ,gfortran "lib") - ("gmp" ,gmp) - ("lapack" ,lapack) - ("metis" ,metis) - ("mpc" ,mpc) - ("mpfr" ,mpfr) - ("mpi" ,openmpi) - ("qd" ,qd))) - (arguments - `(#:build-type "Release" ;default RelWithDebInfo not supported - #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" - "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" - "-DEL_CACHE_WARNINGS:BOOL=YES" - "-DEL_TESTS:BOOL=YES" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DGFORTRAN_LIB=gfortran") - #:phases (modify-phases %standard-phases - (add-before 'check 'mpi-setup - ,%openmpi-setup) - (add-before 'check 'setup-tests - (lambda _ - ;; Parallelism is done at the MPI layer. - (setenv "OMP_NUM_THREADS" "1") - #t)) - (add-after 'install 'remove-tests - (lambda* (#:key outputs #:allow-other-keys) - ;; Tests are installed, with no easy configuration - ;; switch to prevent this, so delete them. - (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) - (synopsis "Dense and sparse-direct linear algebra and optimization") - (description "Elemental is a modern C++ library for distributed-memory + ;; The build of 0.87.7 is failed for a long time due to new version of GCC. The + ;; latest commit has fixes. + ;; See https://github.com/elemental/Elemental/issues/254 + (let ((commit "6eb15a0da2a4998bf1cf971ae231b78e06d989d9") + (revision "0")) + (package + (name "elemental") + (version (git-version "0.87.7" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elemental/Elemental") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06xcs4ic60ndcf2hq19gr8yjwdsnphpcyhapab41rkw726z4lm7p")))) + (build-system cmake-build-system) + (home-page "https://github.com/elemental/Elemental") + (native-inputs + (list gfortran)) + (inputs + `(("blas" ,openblas) + ("gfortran:lib" ,gfortran "lib") + ("gmp" ,gmp) + ("lapack" ,lapack) + ("metis" ,metis) + ("mpc" ,mpc) + ("mpfr" ,mpfr) + ("mpi" ,openmpi) + ("qd" ,qd))) + (arguments + `(#:build-type "Release" ;default RelWithDebInfo not supported + #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" + "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" + "-DEL_CACHE_WARNINGS:BOOL=YES" + "-DEL_TESTS:BOOL=YES" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DGFORTRAN_LIB=gfortran") + #:phases (modify-phases %standard-phases + (add-before 'check 'mpi-setup + ,%openmpi-setup) + (add-before 'check 'setup-tests + (lambda _ + ;; Parallelism is done at the MPI layer. + (setenv "OMP_NUM_THREADS" "1") + #t)) + (add-after 'install 'remove-tests + (lambda* (#:key outputs #:allow-other-keys) + ;; Tests are installed, with no easy configuration + ;; switch to prevent this, so delete them. + (delete-file-recursively + (string-append (assoc-ref outputs "out") "/bin")) + #t))))) + (synopsis "Dense and sparse-direct linear algebra and optimization") + (description "Elemental is a modern C++ library for distributed-memory dense and sparse-direct linear algebra, conic optimization, and lattice reduction.") - (license license:bsd-2))) + (license license:bsd-2)))) (define-public mcrl2 (package -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH 4/5] gnu: elemental: Remove input labels. 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher ` (2 preceding siblings ...) 2023-11-02 15:37 ` [bug#66896] [PATCH 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher @ 2023-11-02 15:37 ` Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 5/5] gnu: elemental: Update package style Sharlatan Hellseher ` (4 subsequent siblings) 8 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-02 15:37 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier * gnu/packages/maths.scm (elemental)[inputs]: Remove labels. Change-Id: I239b56cb5871d5cb2dbd587502c647a37beb30b7 --- gnu/packages/maths.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 6b9725bdcc..0ed25834f6 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7615,15 +7615,15 @@ (define-public elemental (native-inputs (list gfortran)) (inputs - `(("blas" ,openblas) - ("gfortran:lib" ,gfortran "lib") - ("gmp" ,gmp) - ("lapack" ,lapack) - ("metis" ,metis) - ("mpc" ,mpc) - ("mpfr" ,mpfr) - ("mpi" ,openmpi) - ("qd" ,qd))) + (list `(,gfortran "lib") + gmp + lapack + metis + mpc + mpfr + openmpi + qd + openblas)) (arguments `(#:build-type "Release" ;default RelWithDebInfo not supported #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH 5/5] gnu: elemental: Update package style. 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher ` (3 preceding siblings ...) 2023-11-02 15:37 ` [bug#66896] [PATCH 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher @ 2023-11-02 15:37 ` Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] Sharlatan Hellseher ` (3 subsequent siblings) 8 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-02 15:37 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier * gnu/packages/maths.scm (elemental): Update package style, shift order of package fields. [arguments]: Use G-expressions. {phases}: Remove trailing #f from each lambda. Change-Id: Ib961eb99159e1206963041bd7014dca032a21441 --- gnu/packages/maths.scm | 48 +++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0ed25834f6..34710fc65c 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7611,7 +7611,29 @@ (define-public elemental (base32 "06xcs4ic60ndcf2hq19gr8yjwdsnphpcyhapab41rkw726z4lm7p")))) (build-system cmake-build-system) - (home-page "https://github.com/elemental/Elemental") + (arguments + (list + #:build-type "Release" ;default RelWithDebInfo not supported + #:configure-flags + #~(list "-DEL_DISABLE_PARMETIS:BOOL=YES" + "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" + "-DEL_CACHE_WARNINGS:BOOL=YES" + "-DEL_TESTS:BOOL=YES" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DGFORTRAN_LIB=gfortran") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'mpi-setup + #$%openmpi-setup) + (add-before 'check 'setup-tests + (lambda _ ;; Parallelism is done at the MPI layer. + (setenv "OMP_NUM_THREADS" "1"))) + (add-after 'install 'remove-tests + (lambda _ + ;; Tests are installed, with no easy configuration + ;; switch to prevent this, so delete them. + (delete-file-recursively + (string-append #$output "/bin/test"))))))) (native-inputs (list gfortran)) (inputs @@ -7624,29 +7646,7 @@ (define-public elemental openmpi qd openblas)) - (arguments - `(#:build-type "Release" ;default RelWithDebInfo not supported - #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" - "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" - "-DEL_CACHE_WARNINGS:BOOL=YES" - "-DEL_TESTS:BOOL=YES" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DGFORTRAN_LIB=gfortran") - #:phases (modify-phases %standard-phases - (add-before 'check 'mpi-setup - ,%openmpi-setup) - (add-before 'check 'setup-tests - (lambda _ - ;; Parallelism is done at the MPI layer. - (setenv "OMP_NUM_THREADS" "1") - #t)) - (add-after 'install 'remove-tests - (lambda* (#:key outputs #:allow-other-keys) - ;; Tests are installed, with no easy configuration - ;; switch to prevent this, so delete them. - (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) + (home-page "https://github.com/elemental/Elemental") (synopsis "Dense and sparse-direct linear algebra and optimization") (description "Elemental is a modern C++ library for distributed-memory dense and sparse-direct linear algebra, conic optimization, and lattice -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher ` (4 preceding siblings ...) 2023-11-02 15:37 ` [bug#66896] [PATCH 5/5] gnu: elemental: Update package style Sharlatan Hellseher @ 2023-11-04 1:58 ` Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher ` (2 subsequent siblings) 8 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-04 1:58 UTC (permalink / raw) To: 66896 Hi Guix! Mean while author of QD accepted patch and release new version! I'm sending v2 of patch series. QA is green! -- … наш разум - превосходная объяснительная машина которая способна найти смысл почти в чем угодно, истолковать любой феномен, но совершенно не в состоянии принять мысль о непредсказуемости. ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions. 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher ` (5 preceding siblings ...) 2023-11-04 1:58 ` [bug#66896] Sharlatan Hellseher @ 2023-11-04 1:58 ` Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher ` (3 more replies) 2023-11-05 14:55 ` [bug#66896] Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 8 siblings, 4 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-04 1:58 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher * gnu/packages/multiprecision.scm (qd): Adjust package style by using G-expressions. Change-Id: I9265979343e67d1d9e9e69b7b071ea1e429d3ee4 --- gnu/packages/multiprecision.scm | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 3aa5dccfab..11afcfe4a0 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -263,18 +264,18 @@ (define-public qd (native-inputs (list gfortran)) (arguments - `(#:configure-flags `("--disable-enable_fma" ;weird :/ - "--disable-static" - "--enable-shared" - ,,@(if (string-prefix? "aarch64" - (or (%current-target-system) - (%current-system))) - ;; XXX: The qd_test test fails numerical - ;; accuracy checks for 'dd_real::exp()' on - ;; aarch64 with GCC 5.4 at -O2. Disabling - ;; expensive optimizations lets it pass. - '("CXXFLAGS=-O3 -fno-expensive-optimizations") - '("CXXFLAGS=-O3"))))) + (list + #:configure-flags + #~(list "--disable-enable_fma" ;weird :/ + "--disable-static" + "--enable-shared" + #$@(if (target-aarch64?) + ;; XXX: The qd_test test fails numerical + ;; accuracy checks for 'dd_real::exp()' on + ;; aarch64 with GCC 5.4 at -O2. Disabling + ;; expensive optimizations lets it pass. + '("CXXFLAGS=-O3 -fno-expensive-optimizations") + '("CXXFLAGS=-O3"))))) (home-page "https://www.davidhbailey.com/dhbsoftware/") (synopsis "Double-double and quad-double library") (description "This package supports both a double-double base-commit: 0647f308b46b7ba7aa136068712f8d82d69d1a35 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v2 2/5] gnu: qd: Update to 2.3.24. 2023-11-04 1:58 ` [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher @ 2023-11-04 1:58 ` Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher ` (2 subsequent siblings) 3 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-04 1:58 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher During attempt to upgrade python-spherical-geometry there was upstream discussion to adjust qd. The patch was proposed and accepted by the author of qd it was sourced from the discussion and suggested by one one of spherical_geometry maintainer: https://github.com/spacetelescope/spherical_geometry/issues/227 * gnu/packages/multiprecision.scm (qd): Update to 2.3.24. [native-inputs]: Add automake and autoconf. Change-Id: Ic1dfdbe19b3347367b2ffb846be6bb975a0b89ae --- gnu/packages/multiprecision.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 11afcfe4a0..8c63b3921c 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -252,17 +252,16 @@ (define-public irram (define-public qd (package (name "qd") - (version "2.3.23") + (version "2.3.24") (source (origin (method url-fetch) (uri (string-append "https://crd-legacy.lbl.gov/~dhbailey/mpdist/qd-" version ".tar.gz")) (sha256 - (base32 "09pfd77rmy370hy7qdqw84z21y9zpl3fcwzf93rhiv0kwhfg9smk")))) + (base32 "1j56a9fnzk846yibg3wg82377lby6pyzfvrl22730a096gl3hrxd")))) (build-system gnu-build-system) - (native-inputs - (list gfortran)) + (native-inputs (list automake autoconf gfortran)) (arguments (list #:configure-flags -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v2 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0. 2023-11-04 1:58 ` [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher @ 2023-11-04 1:58 ` Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 5/5] gnu: elemental: Update package style Sharlatan Hellseher 3 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-04 1:58 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier The build of elemental is failed on GCC 7+: https://github.com/elemental/Elemental/issues/254 Fixed but not released yet in merge request: https://github.com/elemental/Elemental/pull/259 * gnu/packages/maths.scm (elemental): Update to 0.87.7-0.6eb15a0. Change-Id: I333f1de160489035f1a8875173abdd57c03ef777 --- gnu/packages/maths.scm | 109 +++++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 52 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ed1708c77b..6b9725bdcc 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7593,60 +7593,65 @@ (define-public elpa-openmpi (synopsis "Eigenvalue solvers for symmetric matrices (with MPI support)"))) (define-public elemental - (package - (name "elemental") - (version "0.87.7") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/elemental/Elemental") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1687xpjjzig27y2pnqv7hv09smpijyfdpz7qjgmcxf4shfajlfkc")))) - (build-system cmake-build-system) - (home-page "https://github.com/elemental/Elemental") - (native-inputs - (list gfortran)) - (inputs - `(("blas" ,openblas) - ("gfortran:lib" ,gfortran "lib") - ("gmp" ,gmp) - ("lapack" ,lapack) - ("metis" ,metis) - ("mpc" ,mpc) - ("mpfr" ,mpfr) - ("mpi" ,openmpi) - ("qd" ,qd))) - (arguments - `(#:build-type "Release" ;default RelWithDebInfo not supported - #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" - "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" - "-DEL_CACHE_WARNINGS:BOOL=YES" - "-DEL_TESTS:BOOL=YES" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DGFORTRAN_LIB=gfortran") - #:phases (modify-phases %standard-phases - (add-before 'check 'mpi-setup - ,%openmpi-setup) - (add-before 'check 'setup-tests - (lambda _ - ;; Parallelism is done at the MPI layer. - (setenv "OMP_NUM_THREADS" "1") - #t)) - (add-after 'install 'remove-tests - (lambda* (#:key outputs #:allow-other-keys) - ;; Tests are installed, with no easy configuration - ;; switch to prevent this, so delete them. - (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) - (synopsis "Dense and sparse-direct linear algebra and optimization") - (description "Elemental is a modern C++ library for distributed-memory + ;; The build of 0.87.7 is failed for a long time due to new version of GCC. The + ;; latest commit has fixes. + ;; See https://github.com/elemental/Elemental/issues/254 + (let ((commit "6eb15a0da2a4998bf1cf971ae231b78e06d989d9") + (revision "0")) + (package + (name "elemental") + (version (git-version "0.87.7" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elemental/Elemental") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06xcs4ic60ndcf2hq19gr8yjwdsnphpcyhapab41rkw726z4lm7p")))) + (build-system cmake-build-system) + (home-page "https://github.com/elemental/Elemental") + (native-inputs + (list gfortran)) + (inputs + `(("blas" ,openblas) + ("gfortran:lib" ,gfortran "lib") + ("gmp" ,gmp) + ("lapack" ,lapack) + ("metis" ,metis) + ("mpc" ,mpc) + ("mpfr" ,mpfr) + ("mpi" ,openmpi) + ("qd" ,qd))) + (arguments + `(#:build-type "Release" ;default RelWithDebInfo not supported + #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" + "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" + "-DEL_CACHE_WARNINGS:BOOL=YES" + "-DEL_TESTS:BOOL=YES" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DGFORTRAN_LIB=gfortran") + #:phases (modify-phases %standard-phases + (add-before 'check 'mpi-setup + ,%openmpi-setup) + (add-before 'check 'setup-tests + (lambda _ + ;; Parallelism is done at the MPI layer. + (setenv "OMP_NUM_THREADS" "1") + #t)) + (add-after 'install 'remove-tests + (lambda* (#:key outputs #:allow-other-keys) + ;; Tests are installed, with no easy configuration + ;; switch to prevent this, so delete them. + (delete-file-recursively + (string-append (assoc-ref outputs "out") "/bin")) + #t))))) + (synopsis "Dense and sparse-direct linear algebra and optimization") + (description "Elemental is a modern C++ library for distributed-memory dense and sparse-direct linear algebra, conic optimization, and lattice reduction.") - (license license:bsd-2))) + (license license:bsd-2)))) (define-public mcrl2 (package -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v2 4/5] gnu: elemental: Remove input labels. 2023-11-04 1:58 ` [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher @ 2023-11-04 1:58 ` Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 5/5] gnu: elemental: Update package style Sharlatan Hellseher 3 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-04 1:58 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier * gnu/packages/maths.scm (elemental)[inputs]: Remove labels. Change-Id: I239b56cb5871d5cb2dbd587502c647a37beb30b7 --- gnu/packages/maths.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 6b9725bdcc..0ed25834f6 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7615,15 +7615,15 @@ (define-public elemental (native-inputs (list gfortran)) (inputs - `(("blas" ,openblas) - ("gfortran:lib" ,gfortran "lib") - ("gmp" ,gmp) - ("lapack" ,lapack) - ("metis" ,metis) - ("mpc" ,mpc) - ("mpfr" ,mpfr) - ("mpi" ,openmpi) - ("qd" ,qd))) + (list `(,gfortran "lib") + gmp + lapack + metis + mpc + mpfr + openmpi + qd + openblas)) (arguments `(#:build-type "Release" ;default RelWithDebInfo not supported #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v2 5/5] gnu: elemental: Update package style. 2023-11-04 1:58 ` [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher ` (2 preceding siblings ...) 2023-11-04 1:58 ` [bug#66896] [PATCH v2 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher @ 2023-11-04 1:58 ` Sharlatan Hellseher 3 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-04 1:58 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier * gnu/packages/maths.scm (elemental): Update package style, shift order of package fields. [arguments]: Use G-expressions. {phases}: Remove trailing #f from each lambda. Change-Id: Ib961eb99159e1206963041bd7014dca032a21441 --- gnu/packages/maths.scm | 48 +++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0ed25834f6..34710fc65c 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7611,7 +7611,29 @@ (define-public elemental (base32 "06xcs4ic60ndcf2hq19gr8yjwdsnphpcyhapab41rkw726z4lm7p")))) (build-system cmake-build-system) - (home-page "https://github.com/elemental/Elemental") + (arguments + (list + #:build-type "Release" ;default RelWithDebInfo not supported + #:configure-flags + #~(list "-DEL_DISABLE_PARMETIS:BOOL=YES" + "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" + "-DEL_CACHE_WARNINGS:BOOL=YES" + "-DEL_TESTS:BOOL=YES" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DGFORTRAN_LIB=gfortran") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'mpi-setup + #$%openmpi-setup) + (add-before 'check 'setup-tests + (lambda _ ;; Parallelism is done at the MPI layer. + (setenv "OMP_NUM_THREADS" "1"))) + (add-after 'install 'remove-tests + (lambda _ + ;; Tests are installed, with no easy configuration + ;; switch to prevent this, so delete them. + (delete-file-recursively + (string-append #$output "/bin/test"))))))) (native-inputs (list gfortran)) (inputs @@ -7624,29 +7646,7 @@ (define-public elemental openmpi qd openblas)) - (arguments - `(#:build-type "Release" ;default RelWithDebInfo not supported - #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" - "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" - "-DEL_CACHE_WARNINGS:BOOL=YES" - "-DEL_TESTS:BOOL=YES" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DGFORTRAN_LIB=gfortran") - #:phases (modify-phases %standard-phases - (add-before 'check 'mpi-setup - ,%openmpi-setup) - (add-before 'check 'setup-tests - (lambda _ - ;; Parallelism is done at the MPI layer. - (setenv "OMP_NUM_THREADS" "1") - #t)) - (add-after 'install 'remove-tests - (lambda* (#:key outputs #:allow-other-keys) - ;; Tests are installed, with no easy configuration - ;; switch to prevent this, so delete them. - (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) + (home-page "https://github.com/elemental/Elemental") (synopsis "Dense and sparse-direct linear algebra and optimization") (description "Elemental is a modern C++ library for distributed-memory dense and sparse-direct linear algebra, conic optimization, and lattice -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher ` (6 preceding siblings ...) 2023-11-04 1:58 ` [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher @ 2023-11-05 14:55 ` Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 8 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-05 14:55 UTC (permalink / raw) To: 66896 The source of the package was updated with refreshed version and re-generated build scripts. Sending V3 patch series. -- … наш разум - превосходная объяснительная машина которая способна найти смысл почти в чем угодно, истолковать любой феномен, но совершенно не в состоянии принять мысль о непредсказуемости. ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions. 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher ` (7 preceding siblings ...) 2023-11-05 14:55 ` [bug#66896] Sharlatan Hellseher @ 2023-11-05 14:56 ` Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher ` (3 more replies) 8 siblings, 4 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-05 14:56 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher * gnu/packages/multiprecision.scm (qd): Adjust package style by using G-expressions. Change-Id: I9265979343e67d1d9e9e69b7b071ea1e429d3ee4 --- gnu/packages/multiprecision.scm | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 3aa5dccfab..11afcfe4a0 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -263,18 +264,18 @@ (define-public qd (native-inputs (list gfortran)) (arguments - `(#:configure-flags `("--disable-enable_fma" ;weird :/ - "--disable-static" - "--enable-shared" - ,,@(if (string-prefix? "aarch64" - (or (%current-target-system) - (%current-system))) - ;; XXX: The qd_test test fails numerical - ;; accuracy checks for 'dd_real::exp()' on - ;; aarch64 with GCC 5.4 at -O2. Disabling - ;; expensive optimizations lets it pass. - '("CXXFLAGS=-O3 -fno-expensive-optimizations") - '("CXXFLAGS=-O3"))))) + (list + #:configure-flags + #~(list "--disable-enable_fma" ;weird :/ + "--disable-static" + "--enable-shared" + #$@(if (target-aarch64?) + ;; XXX: The qd_test test fails numerical + ;; accuracy checks for 'dd_real::exp()' on + ;; aarch64 with GCC 5.4 at -O2. Disabling + ;; expensive optimizations lets it pass. + '("CXXFLAGS=-O3 -fno-expensive-optimizations") + '("CXXFLAGS=-O3"))))) (home-page "https://www.davidhbailey.com/dhbsoftware/") (synopsis "Double-double and quad-double library") (description "This package supports both a double-double base-commit: 0647f308b46b7ba7aa136068712f8d82d69d1a35 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v3 2/5] gnu: qd: Update to 2.3.24. 2023-11-05 14:56 ` [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher @ 2023-11-05 14:56 ` Sharlatan Hellseher 2023-11-19 2:01 ` bug#66896: " Eric Bavier 2023-11-05 14:56 ` [bug#66896] [PATCH v3 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher ` (2 subsequent siblings) 3 siblings, 1 reply; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-05 14:56 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher During attempt to upgrade python-spherical-geometry there was upstream discussion to adjust qd. The patch was proposed and accepted by the author of qd it was suggested by one one of spherical_geometry maintainer: https://github.com/spacetelescope/spherical_geometry/issues/227 * gnu/packages/multiprecision.scm (qd): Update to 2.3.24. [native-inputs]: Add automake and autoconf. Change-Id: Ic1dfdbe19b3347367b2ffb846be6bb975a0b89ae --- gnu/packages/multiprecision.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 11afcfe4a0..0c6255c129 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -252,17 +252,16 @@ (define-public irram (define-public qd (package (name "qd") - (version "2.3.23") + (version "2.3.24") (source (origin (method url-fetch) (uri (string-append "https://crd-legacy.lbl.gov/~dhbailey/mpdist/qd-" version ".tar.gz")) (sha256 - (base32 "09pfd77rmy370hy7qdqw84z21y9zpl3fcwzf93rhiv0kwhfg9smk")))) + (base32 "0f0fwsyh23p5zfyrj6n16q7b56g213fnhdc8dbl22r3fz1rnqyx4")))) (build-system gnu-build-system) - (native-inputs - (list gfortran)) + (native-inputs (list automake autoconf gfortran)) (arguments (list #:configure-flags -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* bug#66896: [PATCH v3 2/5] gnu: qd: Update to 2.3.24. 2023-11-05 14:56 ` [bug#66896] [PATCH v3 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher @ 2023-11-19 2:01 ` Eric Bavier 0 siblings, 0 replies; 19+ messages in thread From: Eric Bavier @ 2023-11-19 2:01 UTC (permalink / raw) To: Sharlatan Hellseher, 66896-done Thank you for your follow-through on this patch. I've pushed this series in commits 1f4fb3f47c..d335e2492 `~Eric On Sun, 2023-11-05 at 14:56 +0000, Sharlatan Hellseher wrote: > During attempt to upgrade python-spherical-geometry there was upstream > discussion to adjust qd. The patch was proposed and accepted by the > author of qd it was suggested by one one of spherical_geometry > maintainer: > https://github.com/spacetelescope/spherical_geometry/issues/227 > ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v3 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0. 2023-11-05 14:56 ` [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher @ 2023-11-05 14:56 ` Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 5/5] gnu: elemental: Update package style Sharlatan Hellseher 3 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-05 14:56 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier The build of elemental is failed on GCC 7+: https://github.com/elemental/Elemental/issues/254 Fixed but not released yet in merge request: https://github.com/elemental/Elemental/pull/259 * gnu/packages/maths.scm (elemental): Update to 0.87.7-0.6eb15a0. Change-Id: I333f1de160489035f1a8875173abdd57c03ef777 --- gnu/packages/maths.scm | 109 +++++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 52 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ed1708c77b..6b9725bdcc 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7593,60 +7593,65 @@ (define-public elpa-openmpi (synopsis "Eigenvalue solvers for symmetric matrices (with MPI support)"))) (define-public elemental - (package - (name "elemental") - (version "0.87.7") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/elemental/Elemental") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1687xpjjzig27y2pnqv7hv09smpijyfdpz7qjgmcxf4shfajlfkc")))) - (build-system cmake-build-system) - (home-page "https://github.com/elemental/Elemental") - (native-inputs - (list gfortran)) - (inputs - `(("blas" ,openblas) - ("gfortran:lib" ,gfortran "lib") - ("gmp" ,gmp) - ("lapack" ,lapack) - ("metis" ,metis) - ("mpc" ,mpc) - ("mpfr" ,mpfr) - ("mpi" ,openmpi) - ("qd" ,qd))) - (arguments - `(#:build-type "Release" ;default RelWithDebInfo not supported - #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" - "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" - "-DEL_CACHE_WARNINGS:BOOL=YES" - "-DEL_TESTS:BOOL=YES" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DGFORTRAN_LIB=gfortran") - #:phases (modify-phases %standard-phases - (add-before 'check 'mpi-setup - ,%openmpi-setup) - (add-before 'check 'setup-tests - (lambda _ - ;; Parallelism is done at the MPI layer. - (setenv "OMP_NUM_THREADS" "1") - #t)) - (add-after 'install 'remove-tests - (lambda* (#:key outputs #:allow-other-keys) - ;; Tests are installed, with no easy configuration - ;; switch to prevent this, so delete them. - (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) - (synopsis "Dense and sparse-direct linear algebra and optimization") - (description "Elemental is a modern C++ library for distributed-memory + ;; The build of 0.87.7 is failed for a long time due to new version of GCC. The + ;; latest commit has fixes. + ;; See https://github.com/elemental/Elemental/issues/254 + (let ((commit "6eb15a0da2a4998bf1cf971ae231b78e06d989d9") + (revision "0")) + (package + (name "elemental") + (version (git-version "0.87.7" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elemental/Elemental") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06xcs4ic60ndcf2hq19gr8yjwdsnphpcyhapab41rkw726z4lm7p")))) + (build-system cmake-build-system) + (home-page "https://github.com/elemental/Elemental") + (native-inputs + (list gfortran)) + (inputs + `(("blas" ,openblas) + ("gfortran:lib" ,gfortran "lib") + ("gmp" ,gmp) + ("lapack" ,lapack) + ("metis" ,metis) + ("mpc" ,mpc) + ("mpfr" ,mpfr) + ("mpi" ,openmpi) + ("qd" ,qd))) + (arguments + `(#:build-type "Release" ;default RelWithDebInfo not supported + #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" + "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" + "-DEL_CACHE_WARNINGS:BOOL=YES" + "-DEL_TESTS:BOOL=YES" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DGFORTRAN_LIB=gfortran") + #:phases (modify-phases %standard-phases + (add-before 'check 'mpi-setup + ,%openmpi-setup) + (add-before 'check 'setup-tests + (lambda _ + ;; Parallelism is done at the MPI layer. + (setenv "OMP_NUM_THREADS" "1") + #t)) + (add-after 'install 'remove-tests + (lambda* (#:key outputs #:allow-other-keys) + ;; Tests are installed, with no easy configuration + ;; switch to prevent this, so delete them. + (delete-file-recursively + (string-append (assoc-ref outputs "out") "/bin")) + #t))))) + (synopsis "Dense and sparse-direct linear algebra and optimization") + (description "Elemental is a modern C++ library for distributed-memory dense and sparse-direct linear algebra, conic optimization, and lattice reduction.") - (license license:bsd-2))) + (license license:bsd-2)))) (define-public mcrl2 (package -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v3 4/5] gnu: elemental: Remove input labels. 2023-11-05 14:56 ` [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher @ 2023-11-05 14:56 ` Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 5/5] gnu: elemental: Update package style Sharlatan Hellseher 3 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-05 14:56 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier * gnu/packages/maths.scm (elemental)[inputs]: Remove labels. Change-Id: I239b56cb5871d5cb2dbd587502c647a37beb30b7 --- gnu/packages/maths.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 6b9725bdcc..0ed25834f6 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7615,15 +7615,15 @@ (define-public elemental (native-inputs (list gfortran)) (inputs - `(("blas" ,openblas) - ("gfortran:lib" ,gfortran "lib") - ("gmp" ,gmp) - ("lapack" ,lapack) - ("metis" ,metis) - ("mpc" ,mpc) - ("mpfr" ,mpfr) - ("mpi" ,openmpi) - ("qd" ,qd))) + (list `(,gfortran "lib") + gmp + lapack + metis + mpc + mpfr + openmpi + qd + openblas)) (arguments `(#:build-type "Release" ;default RelWithDebInfo not supported #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66896] [PATCH v3 5/5] gnu: elemental: Update package style. 2023-11-05 14:56 ` [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher ` (2 preceding siblings ...) 2023-11-05 14:56 ` [bug#66896] [PATCH v3 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher @ 2023-11-05 14:56 ` Sharlatan Hellseher 3 siblings, 0 replies; 19+ messages in thread From: Sharlatan Hellseher @ 2023-11-05 14:56 UTC (permalink / raw) To: 66896; +Cc: Sharlatan Hellseher, Andreas Enge, Efraim Flashner, Eric Bavier * gnu/packages/maths.scm (elemental): Update package style, shift order of package fields. [arguments]: Use G-expressions. {phases}: Remove trailing #f from each lambda. Change-Id: Ib961eb99159e1206963041bd7014dca032a21441 --- gnu/packages/maths.scm | 48 +++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0ed25834f6..34710fc65c 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7611,7 +7611,29 @@ (define-public elemental (base32 "06xcs4ic60ndcf2hq19gr8yjwdsnphpcyhapab41rkw726z4lm7p")))) (build-system cmake-build-system) - (home-page "https://github.com/elemental/Elemental") + (arguments + (list + #:build-type "Release" ;default RelWithDebInfo not supported + #:configure-flags + #~(list "-DEL_DISABLE_PARMETIS:BOOL=YES" + "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" + "-DEL_CACHE_WARNINGS:BOOL=YES" + "-DEL_TESTS:BOOL=YES" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DGFORTRAN_LIB=gfortran") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'mpi-setup + #$%openmpi-setup) + (add-before 'check 'setup-tests + (lambda _ ;; Parallelism is done at the MPI layer. + (setenv "OMP_NUM_THREADS" "1"))) + (add-after 'install 'remove-tests + (lambda _ + ;; Tests are installed, with no easy configuration + ;; switch to prevent this, so delete them. + (delete-file-recursively + (string-append #$output "/bin/test"))))))) (native-inputs (list gfortran)) (inputs @@ -7624,29 +7646,7 @@ (define-public elemental openmpi qd openblas)) - (arguments - `(#:build-type "Release" ;default RelWithDebInfo not supported - #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES" - "-DEL_AVOID_COMPLEX_MPI:BOOL=NO" - "-DEL_CACHE_WARNINGS:BOOL=YES" - "-DEL_TESTS:BOOL=YES" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DGFORTRAN_LIB=gfortran") - #:phases (modify-phases %standard-phases - (add-before 'check 'mpi-setup - ,%openmpi-setup) - (add-before 'check 'setup-tests - (lambda _ - ;; Parallelism is done at the MPI layer. - (setenv "OMP_NUM_THREADS" "1") - #t)) - (add-after 'install 'remove-tests - (lambda* (#:key outputs #:allow-other-keys) - ;; Tests are installed, with no easy configuration - ;; switch to prevent this, so delete them. - (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) + (home-page "https://github.com/elemental/Elemental") (synopsis "Dense and sparse-direct linear algebra and optimization") (description "Elemental is a modern C++ library for distributed-memory dense and sparse-direct linear algebra, conic optimization, and lattice -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
end of thread, other threads:[~2023-11-19 2:02 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-02 15:36 [bug#66896] [PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 2/5] gnu: qd: Apply patch to fix accuracy in angle computation Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher 2023-11-02 15:37 ` [bug#66896] [PATCH 5/5] gnu: elemental: Update package style Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher 2023-11-04 1:58 ` [bug#66896] [PATCH v2 5/5] gnu: elemental: Update package style Sharlatan Hellseher 2023-11-05 14:55 ` [bug#66896] Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 1/5] gnu: qd: Use G-expressions Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 2/5] gnu: qd: Update to 2.3.24 Sharlatan Hellseher 2023-11-19 2:01 ` bug#66896: " Eric Bavier 2023-11-05 14:56 ` [bug#66896] [PATCH v3 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0 Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 4/5] gnu: elemental: Remove input labels Sharlatan Hellseher 2023-11-05 14:56 ` [bug#66896] [PATCH v3 5/5] gnu: elemental: Update package style Sharlatan Hellseher
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).