git: 17495d7e105d - main - devel/hvm: New port: Massively parallel, optimal functional runtime in Rust

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 18 May 2024 17:17:06 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=17495d7e105da11d6a8228cd747f51d8b2d25552

commit 17495d7e105da11d6a8228cd747f51d8b2d25552
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-05-18 17:16:36 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-05-18 17:17:03 +0000

    devel/hvm: New port: Massively parallel, optimal functional runtime in Rust
---
 devel/Makefile      |  1 +
 devel/hvm/Makefile  | 53 +++++++++++++++++++++++++++++++++++++++++++++++
 devel/hvm/distinfo  | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 devel/hvm/pkg-descr | 11 ++++++++++
 4 files changed, 124 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 9291d7b87903..95bfd84dff51 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -964,6 +964,7 @@
     SUBDIR += hs-threadscope
     SUBDIR += htable
     SUBDIR += hub
+    SUBDIR += hvm
     SUBDIR += hwloc
     SUBDIR += hwloc2
     SUBDIR += hyperscan
diff --git a/devel/hvm/Makefile b/devel/hvm/Makefile
new file mode 100644
index 000000000000..96984cf6a4bb
--- /dev/null
+++ b/devel/hvm/Makefile
@@ -0,0 +1,53 @@
+PORTNAME=	hvm
+DISTVERSION=	g20240518
+CATEGORIES=	devel
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Massively parallel, optimal functional runtime in Rust
+WWW=		https://higherorderco.com
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	HigherOrderCO
+GH_PROJECT=	${PORTNAME:tu}
+GH_TAGNAME=	c98deff
+
+CARGO_CRATES=	TSPL-0.0.12 \
+		anstream-0.6.14 \
+		anstyle-1.0.7 \
+		anstyle-parse-0.2.4 \
+		anstyle-query-1.0.3 \
+		anstyle-wincon-3.0.3 \
+		cc-1.0.97 \
+		clap-4.5.4 \
+		clap_builder-4.5.2 \
+		clap_lex-0.7.0 \
+		colorchoice-1.0.1 \
+		hermit-abi-0.3.9 \
+		highlight_error-0.1.1 \
+		is_terminal_polyfill-1.70.0 \
+		libc-0.2.155 \
+		num_cpus-1.16.0 \
+		strsim-0.11.1 \
+		utf8parse-0.2.1 \
+		windows-sys-0.52.0 \
+		windows-targets-0.52.5 \
+		windows_aarch64_gnullvm-0.52.5 \
+		windows_aarch64_msvc-0.52.5 \
+		windows_i686_gnu-0.52.5 \
+		windows_i686_gnullvm-0.52.5 \
+		windows_i686_msvc-0.52.5 \
+		windows_x86_64_gnu-0.52.5 \
+		windows_x86_64_gnullvm-0.52.5 \
+		windows_x86_64_msvc-0.52.5
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/devel/hvm/distinfo b/devel/hvm/distinfo
new file mode 100644
index 000000000000..3ef408d7d1df
--- /dev/null
+++ b/devel/hvm/distinfo
@@ -0,0 +1,59 @@
+TIMESTAMP = 1716051747
+SHA256 (rust/crates/TSPL-0.0.12.crate) = 52dfd6238b1461b99635b26585a85b4e7b9c786cc0481b3c540ae5f590b6dfb6
+SIZE (rust/crates/TSPL-0.0.12.crate) = 4102
+SHA256 (rust/crates/anstream-0.6.14.crate) = 418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b
+SIZE (rust/crates/anstream-0.6.14.crate) = 29160
+SHA256 (rust/crates/anstyle-1.0.7.crate) = 038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b
+SIZE (rust/crates/anstyle-1.0.7.crate) = 15709
+SHA256 (rust/crates/anstyle-parse-0.2.4.crate) = c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4
+SIZE (rust/crates/anstyle-parse-0.2.4.crate) = 23069
+SHA256 (rust/crates/anstyle-query-1.0.3.crate) = a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5
+SIZE (rust/crates/anstyle-query-1.0.3.crate) = 9742
+SHA256 (rust/crates/anstyle-wincon-3.0.3.crate) = 61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19
+SIZE (rust/crates/anstyle-wincon-3.0.3.crate) = 12179
+SHA256 (rust/crates/cc-1.0.97.crate) = 099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4
+SIZE (rust/crates/cc-1.0.97.crate) = 76951
+SHA256 (rust/crates/clap-4.5.4.crate) = 90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0
+SIZE (rust/crates/clap-4.5.4.crate) = 55401
+SHA256 (rust/crates/clap_builder-4.5.2.crate) = ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4
+SIZE (rust/crates/clap_builder-4.5.2.crate) = 163566
+SHA256 (rust/crates/clap_lex-0.7.0.crate) = 98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce
+SIZE (rust/crates/clap_lex-0.7.0.crate) = 11915
+SHA256 (rust/crates/colorchoice-1.0.1.crate) = 0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422
+SIZE (rust/crates/colorchoice-1.0.1.crate) = 7895
+SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
+SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165
+SHA256 (rust/crates/highlight_error-0.1.1.crate) = 809e18805660d7b6b2e2b9f316a5099521b5998d5cba4dda11b5157a21aaef03
+SIZE (rust/crates/highlight_error-0.1.1.crate) = 15931
+SHA256 (rust/crates/is_terminal_polyfill-1.70.0.crate) = f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800
+SIZE (rust/crates/is_terminal_polyfill-1.70.0.crate) = 7451
+SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c
+SIZE (rust/crates/libc-0.2.155.crate) = 743539
+SHA256 (rust/crates/num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43
+SIZE (rust/crates/num_cpus-1.16.0.crate) = 15713
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a
+SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-targets-0.52.5.crate) = 6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb
+SIZE (rust/crates/windows-targets-0.52.5.crate) = 6376
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 433266
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6
+SIZE (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 827944
+SHA256 (rust/crates/windows_i686_gnu-0.52.5.crate) = 88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670
+SIZE (rust/crates/windows_i686_gnu-0.52.5.crate) = 875699
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9
+SIZE (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 473064
+SHA256 (rust/crates/windows_i686_msvc-0.52.5.crate) = db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf
+SIZE (rust/crates/windows_i686_msvc-0.52.5.crate) = 895404
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.5.crate) = 4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9
+SIZE (rust/crates/windows_x86_64_gnu-0.52.5.crate) = 831539
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 433246
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0
+SIZE (rust/crates/windows_x86_64_msvc-0.52.5.crate) = 827905
+SHA256 (HigherOrderCO-HVM-g20240518-c98deff_GH0.tar.gz) = ffa01591f21a538415f8118a981438b19a73267af3ef349e84a90978aae4af69
+SIZE (HigherOrderCO-HVM-g20240518-c98deff_GH0.tar.gz) = 581122
diff --git a/devel/hvm/pkg-descr b/devel/hvm/pkg-descr
new file mode 100644
index 000000000000..acffdae90731
--- /dev/null
+++ b/devel/hvm/pkg-descr
@@ -0,0 +1,11 @@
+HVM2 is a h=Higher-order Virtual Machine 2.
+
+HVM2 is a massively parallel interaction combinator evaluator.
+
+By compiling programs from high-level languages (such as Python and Haskell) to
+HVM, one can run these languages directly on massively parallel hardware, like
+GPUs, with near-ideal speedup.
+
+HVM2 is the successor to HVM1, a 2022 prototype of this concept. Compared to its
+predecessor, HVM2 is simpler, faster and, most importantly, more correct. HOC
+provides long-term support for all features listed on its paper.