[PATCH 0/5] elemental: Update to 0.87.7-0.6eb15a0, fix build.

  • Done
  • quality assurance status badge
Details
2 participants
  • Eric Bavier
  • Sharlatan Hellseher
Owner
unassigned
Submitted by
Sharlatan Hellseher
Severity
normal
S
S
Sharlatan Hellseher wrote on 2 Nov 2023 16:36
(address . guix-patches@gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
cover.1698938938.git.sharlatanus@gmail.com
Hi Guix!

During update process of python-spherical-geometry I faced with failing build
due to issue with qd package, see
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
S
S
Sharlatan Hellseher wrote on 2 Nov 2023 16:37
[PATCH 1/5] gnu: qd: Use G-expressions.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
1c3e20f81479ed702270fc6640939db165bd33bc.1698938938.git.sharlatanus@gmail.com
* 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(-)

Toggle diff (45 lines)
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
S
S
Sharlatan Hellseher wrote on 2 Nov 2023 16:37
[PATCH 2/5] gnu: qd: Apply patch to fix accuracy in angle computation.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
8467e1ff586aa25e5659801006dcb7a0784dc576.1698938938.git.sharlatanus@gmail.com
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:

* 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

Toggle diff (292 lines)
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
S
S
Sharlatan Hellseher wrote on 2 Nov 2023 16:37
[PATCH 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
96c3ec9b8fa156645d956d8ce893e0501175d42a.1698938938.git.sharlatanus@gmail.com
The build of elemental is failed on GCC 7+:

Fixed but not released yet in merge request:

* 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(-)

Toggle diff (124 lines)
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
S
S
Sharlatan Hellseher wrote on 2 Nov 2023 16:37
[PATCH 4/5] gnu: elemental: Remove input labels.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
9dcef93fd2923b37e4634b6ead2ec473ba97fdb8.1698938938.git.sharlatanus@gmail.com
* gnu/packages/maths.scm (elemental)[inputs]: Remove labels.

Change-Id: I239b56cb5871d5cb2dbd587502c647a37beb30b7
---
gnu/packages/maths.scm | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

Toggle diff (31 lines)
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
S
S
Sharlatan Hellseher wrote on 2 Nov 2023 16:37
[PATCH 5/5] gnu: elemental: Update package style.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
25abffb2d0991e8a087f4b4f818cf3915431d22f.1698938938.git.sharlatanus@gmail.com
* 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(-)

Toggle diff (68 lines)
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
S
S
Sharlatan Hellseher wrote on 4 Nov 2023 02:58
(address . 66896@debbugs.gnu.org)
CAO+9K5q-5bD_grKeg6DSZBQTe_Q0p936eLomLs8VwWwKv84OZQ@mail.gmail.com
Hi Guix!
Mean while author of QD accepted patch and release new version! I'm
sending v2 of
patch series.
QA is green!
--
… ??? ????? - ???????????? ?????????????? ?????? ??????? ????????
????? ????? ????? ? ??? ??????, ??????????? ????? ???????, ??
?????????? ?? ? ????????? ??????? ????? ? ?????????????????.
S
S
Sharlatan Hellseher wrote on 4 Nov 2023 02:58
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
e5ab60414cba46a0e1970bbcc3dad67e0ea191d1.1699062920.git.sharlatanus@gmail.com
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:

* 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(-)

Toggle diff (27 lines)
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
S
S
Sharlatan Hellseher wrote on 4 Nov 2023 02:58
[PATCH v2 4/5] gnu: elemental: Remove input labels.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
113f0b861b2d4aea8cfab2050ab8123a04f7f18e.1699062920.git.sharlatanus@gmail.com
* gnu/packages/maths.scm (elemental)[inputs]: Remove labels.

Change-Id: I239b56cb5871d5cb2dbd587502c647a37beb30b7
---
gnu/packages/maths.scm | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

Toggle diff (31 lines)
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
S
S
Sharlatan Hellseher wrote on 4 Nov 2023 02:58
[PATCH v2 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
b147c989d7b10ea2dfcc058b503091558b945763.1699062920.git.sharlatanus@gmail.com
The build of elemental is failed on GCC 7+:

Fixed but not released yet in merge request:

* 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(-)

Toggle diff (124 lines)
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
S
S
Sharlatan Hellseher wrote on 4 Nov 2023 02:58
[PATCH v2 1/5] gnu: qd: Use G-expressions.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
1c3e20f81479ed702270fc6640939db165bd33bc.1699062920.git.sharlatanus@gmail.com
* 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(-)

Toggle diff (47 lines)
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
S
S
Sharlatan Hellseher wrote on 4 Nov 2023 02:58
[PATCH v2 5/5] gnu: elemental: Update package style.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
e8f32048f48f792d3f6e4e310b97b99fd0be8997.1699062920.git.sharlatanus@gmail.com
* 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(-)

Toggle diff (68 lines)
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
S
S
Sharlatan Hellseher wrote on 5 Nov 2023 15:55
(address . 66896@debbugs.gnu.org)
CAO+9K5pcszjE=feLXZ0vQT+BOp=ugxsexZ-cSZj7ro1SjRrL4A@mail.gmail.com
The source of the package was updated with refreshed version and re-generated
build scripts.
Sending V3 patch series.
--
… ??? ????? - ???????????? ?????????????? ?????? ??????? ????????
????? ????? ????? ? ??? ??????, ??????????? ????? ???????, ??
?????????? ?? ? ????????? ??????? ????? ? ?????????????????.
S
S
Sharlatan Hellseher wrote on 5 Nov 2023 15:56
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
cd1579f0ed8f1c2fbfd7500fcd4f548cfe06e1f8.1699195588.git.sharlatanus@gmail.com
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:

* 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(-)

Toggle diff (27 lines)
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
S
S
Sharlatan Hellseher wrote on 5 Nov 2023 15:56
[PATCH v3 1/5] gnu: qd: Use G-expressions.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
1c3e20f81479ed702270fc6640939db165bd33bc.1699195588.git.sharlatanus@gmail.com
* 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(-)

Toggle diff (47 lines)
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
S
S
Sharlatan Hellseher wrote on 5 Nov 2023 15:56
[PATCH v3 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
1c4b52c524596062c3888d5a807533e264032370.1699195588.git.sharlatanus@gmail.com
The build of elemental is failed on GCC 7+:

Fixed but not released yet in merge request:

* 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(-)

Toggle diff (124 lines)
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
S
S
Sharlatan Hellseher wrote on 5 Nov 2023 15:56
[PATCH v3 4/5] gnu: elemental: Remove input labels.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
cc8bcf2b6ff898ef73eca6f93afa16dd87d1bf06.1699195588.git.sharlatanus@gmail.com
* gnu/packages/maths.scm (elemental)[inputs]: Remove labels.

Change-Id: I239b56cb5871d5cb2dbd587502c647a37beb30b7
---
gnu/packages/maths.scm | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

Toggle diff (31 lines)
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
S
S
Sharlatan Hellseher wrote on 5 Nov 2023 15:56
[PATCH v3 5/5] gnu: elemental: Update package style.
(address . 66896@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
3edfc9b9d9377180e8c7a1a9cab3e6407c5feb10.1699195588.git.sharlatanus@gmail.com
* 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(-)

Toggle diff (68 lines)
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
E
E
Eric Bavier wrote on 19 Nov 2023 03:01
Re: [PATCH v3 2/5] gnu: qd: Update to 2.3.24.
ffc972ba509f82b151a44d1d0677db1aa7afff15.camel@posteo.net
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:
Toggle quote (6 lines)
> 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
>
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 66896@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 66896
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch