svn commit: r466185 - in head/math: . mppp

Yuri Victorovich yuri at FreeBSD.org
Sun Apr 1 21:54:45 UTC 2018


Author: yuri
Date: Sun Apr  1 21:54:44 2018
New Revision: 466185
URL: https://svnweb.freebsd.org/changeset/ports/466185

Log:
  New port: math/mppp: Multiprecision for modern C++
  
  tests and benchmarks depend on a not yet committed bug#227102 (math/mpfr update)

Added:
  head/math/mppp/
  head/math/mppp/Makefile   (contents, props changed)
  head/math/mppp/distinfo   (contents, props changed)
  head/math/mppp/pkg-descr   (contents, props changed)
  head/math/mppp/pkg-plist   (contents, props changed)
Modified:
  head/math/Makefile

Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile	Sun Apr  1 21:45:08 2018	(r466184)
+++ head/math/Makefile	Sun Apr  1 21:54:44 2018	(r466185)
@@ -323,6 +323,7 @@
     SUBDIR += mpexpr
     SUBDIR += mpfr
     SUBDIR += mpir
+    SUBDIR += mppp
     SUBDIR += mprime
     SUBDIR += msieve
     SUBDIR += mtl

Added: head/math/mppp/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/mppp/Makefile	Sun Apr  1 21:54:44 2018	(r466185)
@@ -0,0 +1,43 @@
+# $FreeBSD$
+
+PORTNAME=	mppp
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.9-33
+DISTVERSIONSUFFIX=	-g9d18861
+CATEGORIES=	math
+
+MAINTAINER=	yuri at FreeBSD.org
+COMMENT=	Multiprecision for modern C++
+
+LICENSE=	MPL20
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+# build only checks that the headers exist, and then they are included in the run time
+BUILD_DEPENDS=	${LOCALBASE}/include/gmp.h:math/gmp \
+		${LOCALBASE}/include/mpfr.h:math/mpfr
+RUN_DEPENDS=	${LOCALBASE}/include/gmp.h:math/gmp \
+		${LOCALBASE}/include/mpfr.h:math/mpfr
+
+USES=		cmake:outsource
+USE_GITHUB=	yes
+GH_ACCOUNT=	bluescarni
+NO_BUILD=	yes
+NO_ARCH=	yes
+
+TEST_USES=	compiler:c++14-lang
+TEST_ARGS=	-DMPPP_BUILD_TESTS=ON -DMPPP_WITH_MPFR=ON #-DMPPP_WITH_QUADMATH=ON (quadmath requires __float128, only available in clang6)
+BENCHMARK_ARGS=	-DMPPP_BUILD_BENCHMARKS=ON -DMPPP_BENCHMARK_BOOST=ON
+
+do-test:
+	@cd ${BUILD_WRKSRC} && \
+		${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${TEST_ARGS} ${CMAKE_SOURCE_PATH} && \
+		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
+		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test
+
+benchmarks: build # additionally depends on boost-libs
+	@cd ${BUILD_WRKSRC} && \
+		${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${BENCHMARK_ARGS} ${CMAKE_SOURCE_PATH} && \
+		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
+		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} benchmark
+
+.include <bsd.port.mk>

Added: head/math/mppp/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/mppp/distinfo	Sun Apr  1 21:54:44 2018	(r466185)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1522615913
+SHA256 (bluescarni-mppp-v0.9-33-g9d18861_GH0.tar.gz) = 837da4d28c8fee3aa9004fd8c801e7ebc8653d75c5b74d6b3b752664b42125de
+SIZE (bluescarni-mppp-v0.9-33-g9d18861_GH0.tar.gz) = 1280347

Added: head/math/mppp/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/mppp/pkg-descr	Sun Apr  1 21:54:44 2018	(r466185)
@@ -0,0 +1,18 @@
+mp++ is a C++11 library for multiprecision arithmetic, currently supporting
+arbitrary-precision integers, rationals and floats, and quadruple-precision
+floats.
+
+Based on well-known libraries such as GMP, MPFR, and others, mp++ was initially
+conceived as a GMP wrapper with a special focus on performance with small
+operands. In particular, a small buffer optimisation and custom implementations
+of basic mathematical primitives are instrumental in achieving a performance
+increase, with respect to GMP and other integer multiprecision libraries, which
+can be substantial (see the benchmarks section of the documentation). The price
+to pay is a small overhead when operating on large integers.
+
+Eventually, a multiprecision rational class and two multiprecision
+floating-point classes were added, and today a secondary objective of mp++ is to
+provide a modern, consistent and unified C++ interface to several lower-level
+multiprecision libraries.
+
+WWW: https://github.com/bluescarni/mppp

Added: head/math/mppp/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/mppp/pkg-plist	Sun Apr  1 21:54:44 2018	(r466185)
@@ -0,0 +1,22 @@
+include/mp++/concepts.hpp
+include/mp++/config.hpp
+include/mp++/detail/demangle.hpp
+include/mp++/detail/fwd_decl.hpp
+include/mp++/detail/gmp.hpp
+include/mp++/detail/mpfr.hpp
+include/mp++/detail/quadmath.hpp
+include/mp++/detail/type_traits.hpp
+include/mp++/detail/utils.hpp
+include/mp++/exceptions.hpp
+include/mp++/extra/pybind11.hpp
+include/mp++/integer.hpp
+include/mp++/mp++.hpp
+include/mp++/rational.hpp
+include/mp++/real.hpp
+include/mp++/real128.hpp
+lib/cmake/mp++/FindGMP.cmake
+lib/cmake/mp++/FindMPFR.cmake
+lib/cmake/mp++/FindQuadmath.cmake
+lib/cmake/mp++/mp++-config-version.cmake
+lib/cmake/mp++/mp++-config.cmake
+lib/cmake/mp++/mp++_export.cmake


More information about the svn-ports-head mailing list