git: cdb51da60957 - main - lang/bend: New port: Massively parallel, high-level programming language

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 19 May 2024 05:27:19 UTC
The branch main has been updated by yuri:

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

commit cdb51da609577dc821aa8f75a8e21c94065ebbd5
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-05-19 05:23:28 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-05-19 05:27:16 +0000

    lang/bend: New port: Massively parallel, high-level programming language
---
 lang/Makefile       |   1 +
 lang/bend/Makefile  |  98 ++++++++++++++++++++++++++++++++++++
 lang/bend/distinfo  | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 lang/bend/pkg-descr |   9 ++++
 4 files changed, 249 insertions(+)

diff --git a/lang/Makefile b/lang/Makefile
index b9ca462ed82d..38c59d7c628b 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -12,6 +12,7 @@
     SUBDIR += awka
     SUBDIR += bas2tap
     SUBDIR += basic256
+    SUBDIR += bend
     SUBDIR += bsh
     SUBDIR += bwbasic
     SUBDIR += c
diff --git a/lang/bend/Makefile b/lang/bend/Makefile
new file mode 100644
index 000000000000..7f66b2e0820f
--- /dev/null
+++ b/lang/bend/Makefile
@@ -0,0 +1,98 @@
+PORTNAME=	bend
+DISTVERSION=	0.2.7
+CATEGORIES=	lang
+PKGNAMESUFFIX=	-language
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Massively parallel, high-level programming language
+WWW=		https://higherorderco.com
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE-APACHE
+
+BUILD_DEPENDS=	rust-nightly>0:lang/rust-nightly
+RUN_DEPENDS=	hvm:devel/hvm
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	HigherOrderCO
+GH_PROJECT=	Bend
+
+CARGO_BUILDDEP=	no
+CARGO_CRATES=	TSPL-0.0.9 \
+		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 \
+		arrayvec-0.7.4 \
+		autocfg-1.3.0 \
+		bitflags-2.5.0 \
+		cc-1.0.97 \
+		cfg-if-1.0.0 \
+		clap-4.5.4 \
+		clap_builder-4.5.2 \
+		clap_derive-4.5.4 \
+		clap_lex-0.7.0 \
+		colorchoice-1.0.1 \
+		console-0.15.8 \
+		either-1.12.0 \
+		encode_unicode-0.3.6 \
+		equivalent-1.0.1 \
+		hashbrown-0.14.5 \
+		heck-0.5.0 \
+		highlight_error-0.1.1 \
+		hvm-core-0.3.0-hvm32.compat.2 \
+		indexmap-2.2.6 \
+		insta-1.39.0 \
+		interner-0.2.1 \
+		is_terminal_polyfill-1.70.0 \
+		itertools-0.11.0 \
+		lazy_static-1.4.0 \
+		libc-0.2.153 \
+		linked-hash-map-0.5.6 \
+		loaned-0.1.1 \
+		lock_api-0.4.12 \
+		nohash-hasher-0.2.0 \
+		parking_lot-0.12.2 \
+		parking_lot_core-0.9.10 \
+		proc-macro2-1.0.82 \
+		psm-0.1.21 \
+		quote-1.0.36 \
+		redox_syscall-0.5.1 \
+		same-file-1.0.6 \
+		scopeguard-1.2.0 \
+		similar-2.5.0 \
+		smallvec-1.13.2 \
+		stacker-0.1.15 \
+		stdext-0.3.3 \
+		strsim-0.11.1 \
+		syn-2.0.64 \
+		thiserror-1.0.60 \
+		thiserror-impl-1.0.60 \
+		unicode-ident-1.0.12 \
+		utf8parse-0.2.1 \
+		walkdir-2.5.0 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.8 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		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/lang/bend/distinfo b/lang/bend/distinfo
new file mode 100644
index 000000000000..d5acd6bf83c0
--- /dev/null
+++ b/lang/bend/distinfo
@@ -0,0 +1,141 @@
+TIMESTAMP = 1716050543
+SHA256 (rust/crates/TSPL-0.0.9.crate) = 5a9423b1e6e2d6c0bbc03660f58f9c30f55359e13afea29432e6e767c0f7dc25
+SIZE (rust/crates/TSPL-0.0.9.crate) = 4054
+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/arrayvec-0.7.4.crate) = 96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711
+SIZE (rust/crates/arrayvec-0.7.4.crate) = 29856
+SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
+SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
+SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
+SIZE (rust/crates/bitflags-2.5.0.crate) = 43821
+SHA256 (rust/crates/cc-1.0.97.crate) = 099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4
+SIZE (rust/crates/cc-1.0.97.crate) = 76951
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+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_derive-4.5.4.crate) = 528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64
+SIZE (rust/crates/clap_derive-4.5.4.crate) = 29159
+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/console-0.15.8.crate) = 0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb
+SIZE (rust/crates/console-0.15.8.crate) = 36364
+SHA256 (rust/crates/either-1.12.0.crate) = 3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b
+SIZE (rust/crates/either-1.12.0.crate) = 18974
+SHA256 (rust/crates/encode_unicode-0.3.6.crate) = a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f
+SIZE (rust/crates/encode_unicode-0.3.6.crate) = 45741
+SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
+SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
+SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
+SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/highlight_error-0.1.1.crate) = 809e18805660d7b6b2e2b9f316a5099521b5998d5cba4dda11b5157a21aaef03
+SIZE (rust/crates/highlight_error-0.1.1.crate) = 15931
+SHA256 (rust/crates/hvm-core-0.3.0-hvm32.compat.2.crate) = 9bd1f250a4a29a9bb2e30fc08a712d7c005df761b84249d7d0ecddf3cc59eb02
+SIZE (rust/crates/hvm-core-0.3.0-hvm32.compat.2.crate) = 1625105
+SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
+SIZE (rust/crates/indexmap-2.2.6.crate) = 82420
+SHA256 (rust/crates/insta-1.39.0.crate) = 810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5
+SIZE (rust/crates/insta-1.39.0.crate) = 87049
+SHA256 (rust/crates/interner-0.2.1.crate) = e8c60687056b35a996f2213287048a7092d801b61df5fee3bd5bd9bf6f17a2d0
+SIZE (rust/crates/interner-0.2.1.crate) = 22056
+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/itertools-0.11.0.crate) = b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57
+SIZE (rust/crates/itertools-0.11.0.crate) = 125074
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
+SIZE (rust/crates/libc-0.2.153.crate) = 740614
+SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
+SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
+SHA256 (rust/crates/loaned-0.1.1.crate) = f16fbe026127b8ff026fcc7419ddf201d47807295690de255bb68fced2ba15af
+SIZE (rust/crates/loaned-0.1.1.crate) = 7664
+SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
+SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
+SHA256 (rust/crates/nohash-hasher-0.2.0.crate) = 2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451
+SIZE (rust/crates/nohash-hasher-0.2.0.crate) = 8051
+SHA256 (rust/crates/parking_lot-0.12.2.crate) = 7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb
+SIZE (rust/crates/parking_lot-0.12.2.crate) = 41723
+SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8
+SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406
+SHA256 (rust/crates/proc-macro2-1.0.82.crate) = 8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b
+SIZE (rust/crates/proc-macro2-1.0.82.crate) = 48452
+SHA256 (rust/crates/psm-0.1.21.crate) = 5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874
+SIZE (rust/crates/psm-0.1.21.crate) = 23126
+SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
+SIZE (rust/crates/quote-1.0.36.crate) = 28507
+SHA256 (rust/crates/redox_syscall-0.5.1.crate) = 469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e
+SIZE (rust/crates/redox_syscall-0.5.1.crate) = 22536
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/similar-2.5.0.crate) = fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640
+SIZE (rust/crates/similar-2.5.0.crate) = 51648
+SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
+SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/stacker-0.1.15.crate) = c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce
+SIZE (rust/crates/stacker-0.1.15.crate) = 14656
+SHA256 (rust/crates/stdext-0.3.3.crate) = 4af28eeb7c18ac2dbdb255d40bee63f203120e1db6b0024b177746ebec7049c1
+SIZE (rust/crates/stdext-0.3.3.crate) = 15655
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-2.0.64.crate) = 7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f
+SIZE (rust/crates/syn-2.0.64.crate) = 264945
+SHA256 (rust/crates/thiserror-1.0.60.crate) = 579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18
+SIZE (rust/crates/thiserror-1.0.60.crate) = 21247
+SHA256 (rust/crates/thiserror-impl-1.0.60.crate) = e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524
+SIZE (rust/crates/thiserror-impl-1.0.60.crate) = 15787
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a
+SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435
+SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
+SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.8.crate) = 4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b
+SIZE (rust/crates/winapi-util-0.1.8.crate) = 12416
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+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-Bend-0.2.7_GH0.tar.gz) = 4d32d4f02f5d6321dc64b3de212786f575c1d451e15a48caaf2a416d5ca389fc
+SIZE (HigherOrderCO-Bend-0.2.7_GH0.tar.gz) = 1030246
diff --git a/lang/bend/pkg-descr b/lang/bend/pkg-descr
new file mode 100644
index 000000000000..d00106a398b0
--- /dev/null
+++ b/lang/bend/pkg-descr
@@ -0,0 +1,9 @@
+Bend is a massively parallel, high-level programming language.
+
+Unlike low-level alternatives like CUDA and Metal, Bend has the feeling and
+features of expressive languages like Python and Haskell, including fast object
+allocations, higher-order functions with full closure support, unrestricted
+recursion, even continuations. Yet, it runs on massively parallel hardware like
+GPUs, with near-linear speedup based on core count, and zero explicit parallel
+annotations: no thread spawning, no locks, mutexes, atomics. Bend is powered by
+the HVM2 runtime.