From 4d41895019a8d45fd2689efbbe92540667c34ac9 Mon Sep 17 00:00:00 2001 From: prlw1 Date: Wed, 17 Mar 2021 17:20:00 +0000 Subject: [PATCH] Update eigen3 to 3.3.9 Many fixes including a gcc10 compilation issue. Full list at https://eigen.tuxfamily.org/index.php?title=ChangeLog#Eigen_3.3.9 --- math/eigen3/DESCR | 19 ++++++------------- math/eigen3/Makefile | 19 ++++++++----------- math/eigen3/distinfo | 11 +++++------ .../patch-Eigen_src_Core_arch_CUDA_Half.h | 12 ------------ 4 files changed, 19 insertions(+), 42 deletions(-) delete mode 100644 math/eigen3/patches/patch-Eigen_src_Core_arch_CUDA_Half.h diff --git a/math/eigen3/DESCR b/math/eigen3/DESCR index 60e78c89451f..d45093cd182f 100644 --- a/math/eigen3/DESCR +++ b/math/eigen3/DESCR @@ -1,10 +1,7 @@ -Eigen 3 is a C++ template library for linear algebra: vectors, matrices, and -related algorithms. It is: -* Versatile. Eigen handles, without code duplication, and in a completely - integrated way: +Eigen 3 is a C++ template library for linear algebra: It is: +* Versatile. Eigen handles and in a completely integrated way: o both fixed-size and dynamic-size matrices and vectors. - o both dense and sparse (the latter is still experimental) matrices and - vectors. + o both dense and sparse matrices and vectors. o both plain matrices/vectors and abstract expressions. o both column-major (the default) and row-major matrix storage. o both basic matrix/vector manipulation and many more advanced, specialized @@ -12,12 +9,9 @@ related algorithms. It is: or advanced array manipulation. * Fast. o Expression templates allow to intelligently remove temporaries and enable - lazy evaluation, when that is appropriate -- Eigen takes care of this - automatically and handles aliasing too in most cases. + lazy evaluation, when that is appropriate. o Explicit vectorization is performed for the SSE (2 and later) and AltiVec instruction sets, with graceful fallback to non-vectorized code. - Expression templates allow to perform these optimizations globally for - whole expressions. o With fixed-size objects, dynamic memory allocation is avoided, and the loops are unrolled when that makes sense. o For large matrices, special attention is paid to cache-friendliness. @@ -26,6 +20,5 @@ related algorithms. It is: pseudocode. You can use complex expressions and still rely on Eigen to produce optimized code: there is no need for you to manually decompose expressions into small steps. -* Compiler-friendy. Eigen has very reasonable compilation times at least with - GCC, compared to other C++ libraries based on expression templates and heavy - metaprogramming. Eigen is also standard C++ and supports various compilers. +* Compiler-friendy. Eigen has good compiler support, is standard C++98 and + maintains very reasonable compilation times. diff --git a/math/eigen3/Makefile b/math/eigen3/Makefile index 7be42e95b82e..2f2f6256db4e 100644 --- a/math/eigen3/Makefile +++ b/math/eigen3/Makefile @@ -1,26 +1,23 @@ -# $NetBSD: Makefile,v 1.13 2020/04/18 22:01:56 joerg Exp $ +# $NetBSD: Makefile,v 1.14 2021/03/17 17:20:00 prlw1 Exp $ -DISTNAME= 3.3.7 -PKGNAME= eigen3-${DISTNAME} -PKGREVISION= 2 +DISTNAME= eigen-3.3.9 +PKGNAME= ${DISTNAME:S/eigen/eigen3/} CATEGORIES= math -MASTER_SITES= http://bitbucket.org/eigen/eigen/get/ -DIST_SUBDIR= eigen3 +MASTER_SITES= https://gitlab.com/libeigen/eigen/-/archive/3.3.9/ EXTRACT_SUFX= .tar.bz2 MAINTAINER= pkgsrc-users@NetBSD.org -HOMEPAGE= http://eigen.tuxfamily.org/ +HOMEPAGE= https://eigen.tuxfamily.org/ COMMENT= C++ template library for linear algebra LICENSE= mpl-2.0 -USE_LANGUAGES+= c c++ +USE_LANGUAGES= c c++ USE_CMAKE= yes CMAKE_ARG_PATH= .. CONFIGURE_DIRS= _build -WRKSRC= ${WRKDIR}/eigen-eigen-323c052e1731 -CMAKE_ARGS+= -DCMAKEPACKAGE_INSTALL_DIR=${PREFIX}/lib/cmake/eigen3 -CMAKE_ARGS+= -DPKGCONFIG_INSTALL_DIR=${PREFIX}/lib/pkgconfig +CMAKE_ARGS+= -DCMAKEPACKAGE_INSTALL_DIR=lib/cmake/eigen3 +CMAKE_ARGS+= -DPKGCONFIG_INSTALL_DIR=lib/pkgconfig PKGCONFIG_OVERRIDE+= eigen3.pc.in diff --git a/math/eigen3/distinfo b/math/eigen3/distinfo index 20c569931d16..f6c15d5c976a 100644 --- a/math/eigen3/distinfo +++ b/math/eigen3/distinfo @@ -1,8 +1,7 @@ -$NetBSD: distinfo,v 1.12 2020/04/18 22:01:56 joerg Exp $ +$NetBSD: distinfo,v 1.13 2021/03/17 17:20:00 prlw1 Exp $ -SHA1 (eigen3/3.3.7.tar.bz2) = a06faa6f358d5d1ca0da7cddb95da39e436dc9e8 -RMD160 (eigen3/3.3.7.tar.bz2) = 3330627708f54055a282ccfbae395f2b2f0885e9 -SHA512 (eigen3/3.3.7.tar.bz2) = c12bfd034d0a1112bf2df3f773ad98f36b2b53fbbfceac5f143ee1793322746fb8a6546d7db7da2a1000da6a535bd8cea0c4125b549afc90a6570743b02dcf3d -Size (eigen3/3.3.7.tar.bz2) = 1665168 bytes +SHA1 (eigen-3.3.9.tar.bz2) = 516322dc3d98f7f6d20f11050da43084f68e6c71 +RMD160 (eigen-3.3.9.tar.bz2) = f100af009a9b72532653d0e90eb81f12379f97a1 +SHA512 (eigen-3.3.9.tar.bz2) = 6f222e27480d02d90f258c94a4a4787771491fc30c73d5fb025a8089484fdeb2c65d464172f5c29d0c3096b69ff98027a18a40c04b006da670733a2c75f55b65 +Size (eigen-3.3.9.tar.bz2) = 1667231 bytes SHA1 (patch-Eigen_src_Core_IO.h) = 5798b47107799e4b8976af88630e8f79e5d2f18e -SHA1 (patch-Eigen_src_Core_arch_CUDA_Half.h) = d346f21aeff79937ecc40ce621ef1c5f3cf93023 diff --git a/math/eigen3/patches/patch-Eigen_src_Core_arch_CUDA_Half.h b/math/eigen3/patches/patch-Eigen_src_Core_arch_CUDA_Half.h deleted file mode 100644 index 1aaf5f9cd156..000000000000 --- a/math/eigen3/patches/patch-Eigen_src_Core_arch_CUDA_Half.h +++ /dev/null @@ -1,12 +0,0 @@ -$NetBSD: patch-Eigen_src_Core_arch_CUDA_Half.h,v 1.1 2020/04/18 22:01:57 joerg Exp $ - ---- Eigen/src/Core/arch/CUDA/Half.h.orig 2020-04-18 02:57:48.859229525 +0000 -+++ Eigen/src/Core/arch/CUDA/Half.h -@@ -42,6 +42,7 @@ - #define EIGEN_EXPLICIT_CAST(tgt_type) operator tgt_type() - #endif - -+#include - - namespace Eigen { -