<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5082a0e0a3baf2928f351e9f5c94a4723d24c7b4">https://github.com/macports/macports-ports/commit/5082a0e0a3baf2928f351e9f5c94a4723d24c7b4</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 5082a0e0a3b spral: new port in math
</span>5082a0e0a3b is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 5082a0e0a3baf2928f351e9f5c94a4723d24c7b4
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Sun Oct 29 17:27:04 2023 +0800

<span style='display:block; white-space:pre;color:#404040;'>    spral: new port in math
</span>---
 math/spral/Portfile                   | 72 +++++++++++++++++++++++++++++++++++
 math/spral/files/patch-fix-cxx11.diff | 24 ++++++++++++
 2 files changed, 96 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/spral/Portfile b/math/spral/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bab6f53ca83
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/spral/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,72 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           compilers 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        ralna spral 2023.09.07 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          math science
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Sparse Parallel Robust Algorithms Library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    An open-source (BSD) library for sparse linear algebra and associated algorithms. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    It is primarily developed by the Numerical Analysis group at STFC Rutherford Appleton Laboratory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://www.numerical.rl.ac.uk/spral
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  253f0ca44f05d191e50e565d1ea59f9efcbc2438 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  dbf74191e95c284fb0036886ec9d5047e96f111daaa4c80945c840565b84ef9e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    664712
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_autoreconf      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.args     -fvi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.setup     require_fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.c_standard 2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/ralna/spral/issues/166
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-fix-cxx11.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/ralna/spral/issues/165
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|-lstdc++|-lc++|g" ${worksrcpath}/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append  port:hwloc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/pkgconfig/icu-uc.pc:icu \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libiconv \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libxml2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:lzma \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:metis \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/libopenblas.dylib:OpenBLAS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# This is required to avoid failures:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fatal Error: Cannot open module file 'spral_ssids_contrib.mod' for reading at (1): No such file or directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build  no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-gpu \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-openmp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-silent-rules
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant openmp description "Enable OpenMP support" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compiler.openmp_version 2.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-openmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.ldflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -L${prefix}/lib/libomp -lomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants    +openmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Some tests may fail: https://github.com/ralna/spral/issues/167
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target         check
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/spral/files/patch-fix-cxx11.diff b/math/spral/files/patch-fix-cxx11.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9de46c41007
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/spral/files/patch-fix-cxx11.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/ralna/spral/pull/168/commits/ebbce3e2dd2e5a7048f912d34d5d185b1fbd3214
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/ssids/cpu/kernels/ldlt_app.cxx.orig        2023-09-07 21:34:22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/ssids/cpu/kernels/ldlt_app.cxx     2023-10-29 17:18:09
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2382,7 +2382,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef PROFILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          Profile::Task task_post("TA_LDLT_POST");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         std::vector<int, IntAlloc> failed_perm(n-num_elim, alloc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         std::vector<int, IntAlloc> failed_perm(n-num_elim, 0, alloc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          for(int jblk=0, insert=0, fail_insert=0; jblk<nblk; jblk++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             cdata[jblk].move_back(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   get_ncol(jblk, n, block_size), &perm[jblk*block_size],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2396,8 +2396,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          // Extract failed entries of a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          int nfail = n-num_elim;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         std::vector<T, TAlloc> failed_diag(nfail*n, alloc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         std::vector<T, TAlloc> failed_rect(nfail*(m-n), alloc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         std::vector<T, TAlloc> failed_diag(nfail*n, 0, alloc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         std::vector<T, TAlloc> failed_rect(nfail*(m-n), 0, alloc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          for(int jblk=0, jfail=0, jinsert=0; jblk<nblk; ++jblk) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // Diagonal part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             for(int iblk=jblk, ifail=jfail, iinsert=jinsert; iblk<nblk; ++iblk) {
</span></pre><pre style='margin:0'>

</pre>