git: 9f1881394ed9 - main - math/py-heyoka: New port: Python library for ODE integration via Taylor's method and LLVM

Yuri Victorovich yuri at FreeBSD.org
Tue Aug 31 04:47:20 UTC 2021


The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9f1881394ed9b1e5bd38f1e02c329674ad537c51

commit 9f1881394ed9b1e5bd38f1e02c329674ad537c51
Author:     Yuri Victorovich <yuri at FreeBSD.org>
AuthorDate: 2021-08-31 03:27:46 +0000
Commit:     Yuri Victorovich <yuri at FreeBSD.org>
CommitDate: 2021-08-31 04:47:14 +0000

    math/py-heyoka: New port: Python library for ODE integration via Taylor's method and LLVM
---
 math/Makefile                             |  1 +
 math/py-heyoka/Makefile                   | 34 +++++++++++++++++++++++++++++++
 math/py-heyoka/distinfo                   |  3 +++
 math/py-heyoka/files/patch-CMakeLists.txt | 11 ++++++++++
 math/py-heyoka/pkg-descr                  | 14 +++++++++++++
 math/py-heyoka/pkg-plist                  |  5 +++++
 6 files changed, 68 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index da4469d661d6..b826e53d0c24 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -822,6 +822,7 @@
     SUBDIR += py-gym
     SUBDIR += py-hdbscan
     SUBDIR += py-hdmedians
+    SUBDIR += py-heyoka
     SUBDIR += py-iminuit
     SUBDIR += py-intspan
     SUBDIR += py-iohexperimenter
diff --git a/math/py-heyoka/Makefile b/math/py-heyoka/Makefile
new file mode 100644
index 000000000000..8e356ae2261f
--- /dev/null
+++ b/math/py-heyoka/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	heyoka
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.14.0
+CATEGORIES=	math
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri at FreeBSD.org
+COMMENT=	Python library for ODE integration via Taylor's method and LLVM
+
+LICENSE=	MPL20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	pybind11>0:devel/pybind11
+LIB_DEPENDS=	libboost_serialization.so:devel/boost-libs \
+		libfmt.so:devel/libfmt \
+		libheyoka.so:math/heyoka \
+		libmp++.so:math/mppp \
+		libspdlog.so:devel/spdlog
+RUN_DEPENDS=	${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}cloudpickle>0:devel/py-cloudpickle@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}mpmath>0:math/py-mpmath@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sympy>0:math/py-sympy@${PY_FLAVOR}
+
+USES=		cmake compiler:c++17-lang python:3.7+
+USE_PYTHON=	flavors
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	bluescarni
+GH_PROJECT=	${PORTNAME}.py
+
+CMAKE_ON=	HEYOKA_PY_ENABLE_IPO
+CMAKE_ARGS=	-DFREEBSD_PYTHON_DISTVERSION=${PYTHON_DISTVERSION}
+
+.include <bsd.port.mk>
diff --git a/math/py-heyoka/distinfo b/math/py-heyoka/distinfo
new file mode 100644
index 000000000000..f0bcf70423e6
--- /dev/null
+++ b/math/py-heyoka/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1630378504
+SHA256 (bluescarni-heyoka.py-v0.14.0_GH0.tar.gz) = 20fa3498be323ea2b51ec2ab5057c1193af3189df69ddffff42f62741b05994e
+SIZE (bluescarni-heyoka.py-v0.14.0_GH0.tar.gz) = 60372207
diff --git a/math/py-heyoka/files/patch-CMakeLists.txt b/math/py-heyoka/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..50838865725d
--- /dev/null
+++ b/math/py-heyoka/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig	2021-08-03 13:38:33 UTC
++++ CMakeLists.txt
+@@ -123,7 +123,7 @@ if(${heyoka_VERSION} VERSION_LESS ${_HEYOKA_PY_MIN_HEY
+ endif()
+ 
+ # Python.
+-find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
++find_package(Python3 ${FREEBSD_PYTHON_DISTVERSION} REQUIRED EXACT COMPONENTS Interpreter Development)
+ message(STATUS "Python3 interpreter: ${Python3_EXECUTABLE}")
+ message(STATUS "Python3 installation directory: ${Python3_SITEARCH}")
+ set(HEYOKA_PY_INSTALL_PATH "" CACHE STRING "heyoka module installation path")
diff --git a/math/py-heyoka/pkg-descr b/math/py-heyoka/pkg-descr
new file mode 100644
index 000000000000..ad94a136fd24
--- /dev/null
+++ b/math/py-heyoka/pkg-descr
@@ -0,0 +1,14 @@
+heyoka.py is a Python library for the integration of ordinary differential
+equations (ODEs) via Taylor's method. Notable features include:
+* support for both double-precision and extended-precision floating-point
+  types (80-bit and 128-bit),
+* the ability to maintain machine precision accuracy over tens of billions of
+  timesteps,
+* high-precision zero-cost dense output,
+* accurate and reliable event detection,
+* batch mode integration to harness the power of modern SIMD instruction sets,
+* interoperability with SymPy,
+* a high-performance implementation of Taylor's method based on automatic
+  differentiation techniques and aggressive just-in-time compilation via LLVM.
+
+WWW: https://bluescarni.github.io/heyoka.py/
diff --git a/math/py-heyoka/pkg-plist b/math/py-heyoka/pkg-plist
new file mode 100644
index 000000000000..d086b1360d2e
--- /dev/null
+++ b/math/py-heyoka/pkg-plist
@@ -0,0 +1,5 @@
+%%PYTHON_SITELIBDIR%%/heyoka/__init__.py
+%%PYTHON_SITELIBDIR%%/heyoka/_sympy_utils.py
+%%PYTHON_SITELIBDIR%%/heyoka/_version.py
+%%PYTHON_SITELIBDIR%%/heyoka/core%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/heyoka/test.py


More information about the dev-commits-ports-all mailing list