git: 998f34001dae - main - devel/hare: add new port for the Hare build system and std library

From: Stefan Eßer <se_at_FreeBSD.org>
Date: Sat, 30 Apr 2022 10:30:21 UTC
The branch main has been updated by se:

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

commit 998f34001daeb28c5c5d246564b5efb7bc9731ca
Author:     Stefan Eßer <se@FreeBSD.org>
AuthorDate: 2022-04-30 10:27:46 +0000
Commit:     Stefan Eßer <se@FreeBSD.org>
CommitDate: 2022-04-30 10:27:46 +0000

    devel/hare: add new port for the Hare build system and std library
    
    This is the build system for Hare language projects.
    
    The compiler currently supports amd64, aarch64, and riscv64, but the
    port is currently only provided for amd64 for lack of testing on other
    FreeBSD architectures.
---
 devel/Makefile             |   1 +
 devel/hare/Makefile        |  47 ++++
 devel/hare/distinfo        |   3 +
 devel/hare/files/config.mk |  32 +++
 devel/hare/pkg-descr       |   9 +
 devel/hare/pkg-plist       | 554 +++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 646 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 690d6bbbed59..982f5e5b1136 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -949,6 +949,7 @@
     SUBDIR += gwenhywfar-qt5
     SUBDIR += gzstream
     SUBDIR += hapy
+    SUBDIR += hare
     SUBDIR += hcs12mem
     SUBDIR += heaptrack
     SUBDIR += heimdall
diff --git a/devel/hare/Makefile b/devel/hare/Makefile
new file mode 100644
index 000000000000..b004173e1507
--- /dev/null
+++ b/devel/hare/Makefile
@@ -0,0 +1,47 @@
+PORTNAME=	hare
+PORTVERSION=	g20220428
+CATEGORIES=	devel
+MASTER_SITES=	https://git.sr.ht/~sircmpwn/${PORTNAME}/archive/
+DISTNAME=	1bfb2e6d
+DIST_SUBDIR=	hare
+
+MAINTAINER=	se@FreeBSD.org
+COMMENT=	Hare language build system and standard library
+
+LICENSE=	MPL20 GPLv3
+LICENSE_COMB=	multi
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS=	amd64 # aarch64 riscv64
+
+BUILD_DEPENDS=	harec:lang/harec \
+		qbe:devel/qbe \
+		scdoc:textproc/scdoc
+RUN_DEPENDS=	harec:lang/harec \
+		qbe:devel/qbe
+
+USES=		gmake
+
+MAKE_ARGS=	DESTDIR=${STAGEDIR}
+
+WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTNAME}
+
+OPTIONS_DEFINE=	DOCS
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == amd64
+MAKE_ARGS+=	ARCH=x86_64
+.endif
+
+pre-build:
+		${CP} ${FILESDIR}/config.mk ${WRKSRC}
+
+post-stage:
+		${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
+		${MV} ${STAGEDIR}${DATADIR}/src/hare/* ${STAGEDIR}${DATADIR}/
+		${MKDIR} ${STAGEDIR}${DOCSDIR}
+		${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}/
+		${INSTALL_DATA} ${WRKSRC}/docs/*.md ${STAGEDIR}${DOCSDIR}/
+
+.include <bsd.port.post.mk>
diff --git a/devel/hare/distinfo b/devel/hare/distinfo
new file mode 100644
index 000000000000..b59566887e33
--- /dev/null
+++ b/devel/hare/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1651149951
+SHA256 (hare/1bfb2e6d.tar.gz) = b45ebc2bf887323010ea80c18c8f77b49eb1e6e264b192b59e4082aa80e65178
+SIZE (hare/1bfb2e6d.tar.gz) = 616367
diff --git a/devel/hare/files/config.mk b/devel/hare/files/config.mk
new file mode 100644
index 000000000000..c2dbbee23fb8
--- /dev/null
+++ b/devel/hare/files/config.mk
@@ -0,0 +1,32 @@
+## Install configuration
+
+#PREFIX = /usr
+BINDIR = $(PREFIX)/bin
+MANDIR = $(PREFIX)/man
+DATADIR= $(PREFIX)/share/hare/
+SRCDIR = $(DATADIR)/src
+
+# Where to install the stdlib tree
+STDLIB = $(SRCDIR}/stdlib
+
+# Default HAREPATH
+LOCALSRCDIR = ${SRCDIR}/local-src
+HAREPATH = $(LOCALSRCDIR)/stdlib:$(LOCALSRCDIR)/third-party:$(DATADIR)/stdlib:$(DATADIR)/third-party
+
+## Build configuration
+
+# Platform to build for
+PLATFORM = freebsd
+#ARCH = x86_64
+
+# External tools and flags
+HAREC = harec
+HAREFLAGS =
+QBE = qbe
+AS = as
+LD = ld
+AR = ar
+SCDOC = scdoc
+
+# Where to store build artifacts
+HARECACHE = .cache
diff --git a/devel/hare/pkg-descr b/devel/hare/pkg-descr
new file mode 100644
index 000000000000..65deaab4ab16
--- /dev/null
+++ b/devel/hare/pkg-descr
@@ -0,0 +1,9 @@
+This is the Hare build driver and standard library.
+
+Hare is a systems programming language designed to be simple, stable,
+and robust. Hare uses a static type system, manual memory management,
+and a minimal runtime. It is well-suited to writing operating systems,
+system tools, compilers, networking software, and other low-level,
+high performance tasks.
+
+WWW: https://harelang.org/
diff --git a/devel/hare/pkg-plist b/devel/hare/pkg-plist
new file mode 100644
index 000000000000..65b6d4be1cd2
--- /dev/null
+++ b/devel/hare/pkg-plist
@@ -0,0 +1,554 @@
+bin/hare
+bin/haredoc
+man/man1/hare.1.gz
+man/man1/haredoc.1.gz
+%%PORTDOCS%%%%DOCSDIR%%/README.md
+%%PORTDOCS%%%%DOCSDIR%%/modules.md
+%%PORTDOCS%%%%DOCSDIR%%/stdlib.md
+%%DATADIR%%/stdlib/ascii/README
+%%DATADIR%%/stdlib/ascii/ctype.ha
+%%DATADIR%%/stdlib/ascii/strcmp.ha
+%%DATADIR%%/stdlib/ascii/valid.ha
+%%DATADIR%%/stdlib/bufio/README
+%%DATADIR%%/stdlib/bufio/buffered.ha
+%%DATADIR%%/stdlib/bufio/memstream.ha
+%%DATADIR%%/stdlib/bufio/scanner.ha
+%%DATADIR%%/stdlib/bytes/README
+%%DATADIR%%/stdlib/bytes/contains.ha
+%%DATADIR%%/stdlib/bytes/equal.ha
+%%DATADIR%%/stdlib/bytes/index.ha
+%%DATADIR%%/stdlib/bytes/reverse.ha
+%%DATADIR%%/stdlib/bytes/tokenize.ha
+%%DATADIR%%/stdlib/bytes/trim.ha
+%%DATADIR%%/stdlib/bytes/two_way.ha
+%%DATADIR%%/stdlib/bytes/zero.ha
+%%DATADIR%%/stdlib/crypto/+test/authenc.ha
+%%DATADIR%%/stdlib/crypto/README
+%%DATADIR%%/stdlib/crypto/aes/+test/ni+x86_64.ha
+%%DATADIR%%/stdlib/crypto/aes/+x86_64/ni.ha
+%%DATADIR%%/stdlib/crypto/aes/+x86_64/ni_native.s
+%%DATADIR%%/stdlib/crypto/aes/README
+%%DATADIR%%/stdlib/crypto/aes/aes_ct64.ha
+%%DATADIR%%/stdlib/crypto/aes/cbc+test.ha
+%%DATADIR%%/stdlib/crypto/aes/ct64+test.ha
+%%DATADIR%%/stdlib/crypto/aes/ctr+test.ha
+%%DATADIR%%/stdlib/crypto/aes/xts/+test.ha
+%%DATADIR%%/stdlib/crypto/aes/xts/README
+%%DATADIR%%/stdlib/crypto/aes/xts/xts.ha
+%%DATADIR%%/stdlib/crypto/argon2/+test.ha
+%%DATADIR%%/stdlib/crypto/argon2/README
+%%DATADIR%%/stdlib/crypto/argon2/argon2.ha
+%%DATADIR%%/stdlib/crypto/authenc.ha
+%%DATADIR%%/stdlib/crypto/bcrypt/+test.ha
+%%DATADIR%%/stdlib/crypto/bcrypt/README
+%%DATADIR%%/stdlib/crypto/bcrypt/base64.ha
+%%DATADIR%%/stdlib/crypto/bcrypt/bcrypt.ha
+%%DATADIR%%/stdlib/crypto/blake2b/+test.ha
+%%DATADIR%%/stdlib/crypto/blake2b/blake2b.ha
+%%DATADIR%%/stdlib/crypto/blake2b/vectors+test.ha
+%%DATADIR%%/stdlib/crypto/blowfish/+test.ha
+%%DATADIR%%/stdlib/crypto/blowfish/README
+%%DATADIR%%/stdlib/crypto/blowfish/blowfish.ha
+%%DATADIR%%/stdlib/crypto/blowfish/const.ha
+%%DATADIR%%/stdlib/crypto/chacha/+test.ha
+%%DATADIR%%/stdlib/crypto/chacha/README
+%%DATADIR%%/stdlib/crypto/chacha/chacha20.ha
+%%DATADIR%%/stdlib/crypto/cipher/README
+%%DATADIR%%/stdlib/crypto/cipher/block.ha
+%%DATADIR%%/stdlib/crypto/cipher/cbc.ha
+%%DATADIR%%/stdlib/crypto/cipher/cipher.ha
+%%DATADIR%%/stdlib/crypto/cipher/ctr.ha
+%%DATADIR%%/stdlib/crypto/cipher/stream.ha
+%%DATADIR%%/stdlib/crypto/conventions.txt
+%%DATADIR%%/stdlib/crypto/curve25519/+test.ha
+%%DATADIR%%/stdlib/crypto/curve25519/README
+%%DATADIR%%/stdlib/crypto/curve25519/curve25519.ha
+%%DATADIR%%/stdlib/crypto/ed25519/+test.ha
+%%DATADIR%%/stdlib/crypto/ed25519/ed25519.ha
+%%DATADIR%%/stdlib/crypto/ed25519/edwards25519.ha
+%%DATADIR%%/stdlib/crypto/hmac/+test.ha
+%%DATADIR%%/stdlib/crypto/hmac/README
+%%DATADIR%%/stdlib/crypto/hmac/hmac.ha
+%%DATADIR%%/stdlib/crypto/hmac/sha1.ha
+%%DATADIR%%/stdlib/crypto/hmac/sha256.ha
+%%DATADIR%%/stdlib/crypto/keyderiv.ha
+%%DATADIR%%/stdlib/crypto/keystore/README
+%%DATADIR%%/stdlib/crypto/keystore/impl+linux.ha
+%%DATADIR%%/stdlib/crypto/keystore/impl.ha
+%%DATADIR%%/stdlib/crypto/mac/README
+%%DATADIR%%/stdlib/crypto/mac/mac.ha
+%%DATADIR%%/stdlib/crypto/math/README
+%%DATADIR%%/stdlib/crypto/math/bits.ha
+%%DATADIR%%/stdlib/crypto/poly1305/+test.ha
+%%DATADIR%%/stdlib/crypto/poly1305/README
+%%DATADIR%%/stdlib/crypto/poly1305/poly1305.ha
+%%DATADIR%%/stdlib/crypto/random/+freebsd.ha
+%%DATADIR%%/stdlib/crypto/random/+linux.ha
+%%DATADIR%%/stdlib/crypto/random/README
+%%DATADIR%%/stdlib/crypto/random/random.ha
+%%DATADIR%%/stdlib/crypto/salsa/+test.ha
+%%DATADIR%%/stdlib/crypto/salsa/README
+%%DATADIR%%/stdlib/crypto/salsa/salsa20.ha
+%%DATADIR%%/stdlib/crypto/sha1/+test.ha
+%%DATADIR%%/stdlib/crypto/sha1/sha1.ha
+%%DATADIR%%/stdlib/crypto/sha256/+test.ha
+%%DATADIR%%/stdlib/crypto/sha256/sha256.ha
+%%DATADIR%%/stdlib/crypto/sha512/+test.ha
+%%DATADIR%%/stdlib/crypto/sha512/README
+%%DATADIR%%/stdlib/crypto/sha512/sha512.ha
+%%DATADIR%%/stdlib/datetime/README
+%%DATADIR%%/stdlib/datetime/arithmetic.ha
+%%DATADIR%%/stdlib/datetime/chronology.ha
+%%DATADIR%%/stdlib/datetime/date.ha
+%%DATADIR%%/stdlib/datetime/datetime.ha
+%%DATADIR%%/stdlib/datetime/format.ha
+%%DATADIR%%/stdlib/datetime/parse.ha
+%%DATADIR%%/stdlib/datetime/time.ha
+%%DATADIR%%/stdlib/datetime/timezone.ha
+%%DATADIR%%/stdlib/dirs/README
+%%DATADIR%%/stdlib/dirs/xdg.ha
+%%DATADIR%%/stdlib/encoding/README
+%%DATADIR%%/stdlib/encoding/base32/README
+%%DATADIR%%/stdlib/encoding/base32/base32.ha
+%%DATADIR%%/stdlib/encoding/base64/README
+%%DATADIR%%/stdlib/encoding/base64/base64.ha
+%%DATADIR%%/stdlib/encoding/hex/hex.ha
+%%DATADIR%%/stdlib/encoding/utf8/README
+%%DATADIR%%/stdlib/encoding/utf8/decode.ha
+%%DATADIR%%/stdlib/encoding/utf8/encode.ha
+%%DATADIR%%/stdlib/encoding/utf8/rune.ha
+%%DATADIR%%/stdlib/endian/README
+%%DATADIR%%/stdlib/endian/big.ha
+%%DATADIR%%/stdlib/endian/endian.ha
+%%DATADIR%%/stdlib/endian/host+aarch64.ha
+%%DATADIR%%/stdlib/endian/host+riscv64.ha
+%%DATADIR%%/stdlib/endian/host+x86_64.ha
+%%DATADIR%%/stdlib/endian/little.ha
+%%DATADIR%%/stdlib/endian/network.ha
+%%DATADIR%%/stdlib/errors/README
+%%DATADIR%%/stdlib/errors/common.ha
+%%DATADIR%%/stdlib/errors/opaque.ha
+%%DATADIR%%/stdlib/errors/rt.ha
+%%DATADIR%%/stdlib/errors/string.ha
+%%DATADIR%%/stdlib/fmt/README
+%%DATADIR%%/stdlib/fmt/fmt.ha
+%%DATADIR%%/stdlib/fnmatch/+test.ha
+%%DATADIR%%/stdlib/fnmatch/README
+%%DATADIR%%/stdlib/fnmatch/fnmatch.ha
+%%DATADIR%%/stdlib/format/README
+%%DATADIR%%/stdlib/format/elf/+aarch64.ha
+%%DATADIR%%/stdlib/format/elf/+freebsd.ha
+%%DATADIR%%/stdlib/format/elf/+linux.ha
+%%DATADIR%%/stdlib/format/elf/+riscv64.ha
+%%DATADIR%%/stdlib/format/elf/+x86_64.ha
+%%DATADIR%%/stdlib/format/elf/README
+%%DATADIR%%/stdlib/format/elf/types.ha
+%%DATADIR%%/stdlib/format/ini/+test.ha
+%%DATADIR%%/stdlib/format/ini/README
+%%DATADIR%%/stdlib/format/ini/scan.ha
+%%DATADIR%%/stdlib/format/ini/types.ha
+%%DATADIR%%/stdlib/fs/README
+%%DATADIR%%/stdlib/fs/fs.ha
+%%DATADIR%%/stdlib/fs/types.ha
+%%DATADIR%%/stdlib/fs/util.ha
+%%DATADIR%%/stdlib/getopt/README
+%%DATADIR%%/stdlib/getopt/getopts.ha
+%%DATADIR%%/stdlib/glob/+test.ha
+%%DATADIR%%/stdlib/glob/README
+%%DATADIR%%/stdlib/glob/glob.ha
+%%DATADIR%%/stdlib/hare/README
+%%DATADIR%%/stdlib/hare/ast/decl.ha
+%%DATADIR%%/stdlib/hare/ast/expr.ha
+%%DATADIR%%/stdlib/hare/ast/ident.ha
+%%DATADIR%%/stdlib/hare/ast/import.ha
+%%DATADIR%%/stdlib/hare/ast/type.ha
+%%DATADIR%%/stdlib/hare/ast/unit.ha
+%%DATADIR%%/stdlib/hare/lex/+test.ha
+%%DATADIR%%/stdlib/hare/lex/README
+%%DATADIR%%/stdlib/hare/lex/lex.ha
+%%DATADIR%%/stdlib/hare/lex/token.ha
+%%DATADIR%%/stdlib/hare/module/README
+%%DATADIR%%/stdlib/hare/module/context.ha
+%%DATADIR%%/stdlib/hare/module/manifest.ha
+%%DATADIR%%/stdlib/hare/module/scan.ha
+%%DATADIR%%/stdlib/hare/module/types.ha
+%%DATADIR%%/stdlib/hare/module/walk.ha
+%%DATADIR%%/stdlib/hare/parse/+test/expr.ha
+%%DATADIR%%/stdlib/hare/parse/+test/ident.ha
+%%DATADIR%%/stdlib/hare/parse/+test/loc.ha
+%%DATADIR%%/stdlib/hare/parse/+test/roundtrip.ha
+%%DATADIR%%/stdlib/hare/parse/+test/types.ha
+%%DATADIR%%/stdlib/hare/parse/+test/unit.ha
+%%DATADIR%%/stdlib/hare/parse/README
+%%DATADIR%%/stdlib/hare/parse/decl.ha
+%%DATADIR%%/stdlib/hare/parse/expr.ha
+%%DATADIR%%/stdlib/hare/parse/ident.ha
+%%DATADIR%%/stdlib/hare/parse/import.ha
+%%DATADIR%%/stdlib/hare/parse/parse.ha
+%%DATADIR%%/stdlib/hare/parse/type.ha
+%%DATADIR%%/stdlib/hare/parse/unit.ha
+%%DATADIR%%/stdlib/hare/types/+test.ha
+%%DATADIR%%/stdlib/hare/types/README
+%%DATADIR%%/stdlib/hare/types/arch.ha
+%%DATADIR%%/stdlib/hare/types/builtins.ha
+%%DATADIR%%/stdlib/hare/types/class.ha
+%%DATADIR%%/stdlib/hare/types/hash.ha
+%%DATADIR%%/stdlib/hare/types/lookup.ha
+%%DATADIR%%/stdlib/hare/types/store.ha
+%%DATADIR%%/stdlib/hare/types/types.ha
+%%DATADIR%%/stdlib/hare/unit/+test.ha
+%%DATADIR%%/stdlib/hare/unit/check.ha
+%%DATADIR%%/stdlib/hare/unit/context.ha
+%%DATADIR%%/stdlib/hare/unit/errors.ha
+%%DATADIR%%/stdlib/hare/unit/expr.ha
+%%DATADIR%%/stdlib/hare/unit/process.ha
+%%DATADIR%%/stdlib/hare/unit/scan.ha
+%%DATADIR%%/stdlib/hare/unit/scope.ha
+%%DATADIR%%/stdlib/hare/unit/unit.ha
+%%DATADIR%%/stdlib/hare/unparse/decl.ha
+%%DATADIR%%/stdlib/hare/unparse/expr.ha
+%%DATADIR%%/stdlib/hare/unparse/ident.ha
+%%DATADIR%%/stdlib/hare/unparse/import.ha
+%%DATADIR%%/stdlib/hare/unparse/type.ha
+%%DATADIR%%/stdlib/hare/unparse/unit.ha
+%%DATADIR%%/stdlib/hare/unparse/util.ha
+%%DATADIR%%/stdlib/hash/README
+%%DATADIR%%/stdlib/hash/adler32/README
+%%DATADIR%%/stdlib/hash/adler32/adler32.ha
+%%DATADIR%%/stdlib/hash/crc16/README
+%%DATADIR%%/stdlib/hash/crc16/crc16.ha
+%%DATADIR%%/stdlib/hash/crc32/README
+%%DATADIR%%/stdlib/hash/crc32/crc32.ha
+%%DATADIR%%/stdlib/hash/crc64/README
+%%DATADIR%%/stdlib/hash/crc64/crc64.ha
+%%DATADIR%%/stdlib/hash/fnv/README
+%%DATADIR%%/stdlib/hash/fnv/fnv.ha
+%%DATADIR%%/stdlib/hash/hash.ha
+%%DATADIR%%/stdlib/io/+freebsd/file.ha
+%%DATADIR%%/stdlib/io/+freebsd/mmap.ha
+%%DATADIR%%/stdlib/io/+freebsd/vector.ha
+%%DATADIR%%/stdlib/io/+linux/file.ha
+%%DATADIR%%/stdlib/io/+linux/mmap.ha
+%%DATADIR%%/stdlib/io/+linux/vector.ha
+%%DATADIR%%/stdlib/io/+test/limit.ha
+%%DATADIR%%/stdlib/io/+test/stream.ha
+%%DATADIR%%/stdlib/io/README
+%%DATADIR%%/stdlib/io/arch+aarch64.ha
+%%DATADIR%%/stdlib/io/arch+riscv64.ha
+%%DATADIR%%/stdlib/io/arch+x86_64.ha
+%%DATADIR%%/stdlib/io/copy.ha
+%%DATADIR%%/stdlib/io/drain.ha
+%%DATADIR%%/stdlib/io/empty.ha
+%%DATADIR%%/stdlib/io/handle.ha
+%%DATADIR%%/stdlib/io/limit.ha
+%%DATADIR%%/stdlib/io/stream.ha
+%%DATADIR%%/stdlib/io/tee.ha
+%%DATADIR%%/stdlib/io/types.ha
+%%DATADIR%%/stdlib/io/util.ha
+%%DATADIR%%/stdlib/linux/README
+%%DATADIR%%/stdlib/linux/env.ha
+%%DATADIR%%/stdlib/linux/keyctl/README
+%%DATADIR%%/stdlib/linux/keyctl/keyctl.ha
+%%DATADIR%%/stdlib/linux/keyctl/types.ha
+%%DATADIR%%/stdlib/linux/start+libc.ha
+%%DATADIR%%/stdlib/linux/start.ha
+%%DATADIR%%/stdlib/linux/timerfd/README
+%%DATADIR%%/stdlib/linux/timerfd/timerfd.ha
+%%DATADIR%%/stdlib/linux/vdso/vdso.ha
+%%DATADIR%%/stdlib/log/README
+%%DATADIR%%/stdlib/log/funcs.ha
+%%DATADIR%%/stdlib/log/global.ha
+%%DATADIR%%/stdlib/log/logger.ha
+%%DATADIR%%/stdlib/math/README
+%%DATADIR%%/stdlib/math/data+test.ha
+%%DATADIR%%/stdlib/math/fenv+aarch64.ha
+%%DATADIR%%/stdlib/math/fenv+riscv64.ha
+%%DATADIR%%/stdlib/math/fenv+x86_64.ha
+%%DATADIR%%/stdlib/math/fenv_func.ha
+%%DATADIR%%/stdlib/math/floats.ha
+%%DATADIR%%/stdlib/math/ints.ha
+%%DATADIR%%/stdlib/math/math.ha
+%%DATADIR%%/stdlib/math/random/README
+%%DATADIR%%/stdlib/math/random/random.ha
+%%DATADIR%%/stdlib/math/trig.ha
+%%DATADIR%%/stdlib/math/uints.ha
+%%DATADIR%%/stdlib/mime/README
+%%DATADIR%%/stdlib/mime/database.ha
+%%DATADIR%%/stdlib/mime/lookup.ha
+%%DATADIR%%/stdlib/mime/parse.ha
+%%DATADIR%%/stdlib/mime/system.ha
+%%DATADIR%%/stdlib/net/+freebsd.ha
+%%DATADIR%%/stdlib/net/+linux.ha
+%%DATADIR%%/stdlib/net/README
+%%DATADIR%%/stdlib/net/dial/README
+%%DATADIR%%/stdlib/net/dial/dial.ha
+%%DATADIR%%/stdlib/net/dial/ip.ha
+%%DATADIR%%/stdlib/net/dial/registry.ha
+%%DATADIR%%/stdlib/net/dial/resolve.ha
+%%DATADIR%%/stdlib/net/dns/README
+%%DATADIR%%/stdlib/net/dns/decode.ha
+%%DATADIR%%/stdlib/net/dns/encode.ha
+%%DATADIR%%/stdlib/net/dns/error.ha
+%%DATADIR%%/stdlib/net/dns/query.ha
+%%DATADIR%%/stdlib/net/dns/types.ha
+%%DATADIR%%/stdlib/net/errors.ha
+%%DATADIR%%/stdlib/net/ip/+freebsd.ha
+%%DATADIR%%/stdlib/net/ip/+linux.ha
+%%DATADIR%%/stdlib/net/ip/+test.ha
+%%DATADIR%%/stdlib/net/ip/ip.ha
+%%DATADIR%%/stdlib/net/msg.ha
+%%DATADIR%%/stdlib/net/tcp/+freebsd.ha
+%%DATADIR%%/stdlib/net/tcp/+linux.ha
+%%DATADIR%%/stdlib/net/tcp/listener.ha
+%%DATADIR%%/stdlib/net/tcp/options.ha
+%%DATADIR%%/stdlib/net/udp/+freebsd.ha
+%%DATADIR%%/stdlib/net/udp/+linux.ha
+%%DATADIR%%/stdlib/net/udp/options.ha
+%%DATADIR%%/stdlib/net/unix/+freebsd.ha
+%%DATADIR%%/stdlib/net/unix/+linux.ha
+%%DATADIR%%/stdlib/net/unix/README
+%%DATADIR%%/stdlib/net/unix/addr.ha
+%%DATADIR%%/stdlib/net/unix/cmsg.ha
+%%DATADIR%%/stdlib/net/unix/dial.ha
+%%DATADIR%%/stdlib/net/unix/listener.ha
+%%DATADIR%%/stdlib/net/unix/options.ha
+%%DATADIR%%/stdlib/net/unix/socketpair.ha
+%%DATADIR%%/stdlib/net/uri/+test.ha
+%%DATADIR%%/stdlib/net/uri/README
+%%DATADIR%%/stdlib/net/uri/fmt.ha
+%%DATADIR%%/stdlib/net/uri/parse.ha
+%%DATADIR%%/stdlib/net/uri/query.ha
+%%DATADIR%%/stdlib/net/uri/uri.ha
+%%DATADIR%%/stdlib/os/+freebsd/dirfdfs.ha
+%%DATADIR%%/stdlib/os/+freebsd/environ.ha
+%%DATADIR%%/stdlib/os/+freebsd/exit.ha
+%%DATADIR%%/stdlib/os/+freebsd/fs.ha
+%%DATADIR%%/stdlib/os/+freebsd/stdfd.ha
+%%DATADIR%%/stdlib/os/+linux/dirfdfs.ha
+%%DATADIR%%/stdlib/os/+linux/environ+libc.ha
+%%DATADIR%%/stdlib/os/+linux/environ.ha
+%%DATADIR%%/stdlib/os/+linux/exit.ha
+%%DATADIR%%/stdlib/os/+linux/fs.ha
+%%DATADIR%%/stdlib/os/+linux/memory.ha
+%%DATADIR%%/stdlib/os/+linux/stdfd.ha
+%%DATADIR%%/stdlib/os/README
+%%DATADIR%%/stdlib/os/exec/README
+%%DATADIR%%/stdlib/os/exec/cmd.ha
+%%DATADIR%%/stdlib/os/exec/exec+freebsd.ha
+%%DATADIR%%/stdlib/os/exec/exec+linux.ha
+%%DATADIR%%/stdlib/os/exec/process+freebsd.ha
+%%DATADIR%%/stdlib/os/exec/process+linux.ha
+%%DATADIR%%/stdlib/os/exec/types.ha
+%%DATADIR%%/stdlib/os/fs.ha
+%%DATADIR%%/stdlib/path/+freebsd.ha
+%%DATADIR%%/stdlib/path/+linux.ha
+%%DATADIR%%/stdlib/path/README
+%%DATADIR%%/stdlib/path/buffer.ha
+%%DATADIR%%/stdlib/path/iter.ha
+%%DATADIR%%/stdlib/path/join.ha
+%%DATADIR%%/stdlib/path/names.ha
+%%DATADIR%%/stdlib/path/util.ha
+%%DATADIR%%/stdlib/regex/+test.ha
+%%DATADIR%%/stdlib/regex/README
+%%DATADIR%%/stdlib/regex/regex.ha
+%%DATADIR%%/stdlib/rt/+aarch64/backtrace.ha
+%%DATADIR%%/stdlib/rt/+aarch64/cpuid.ha
+%%DATADIR%%/stdlib/rt/+aarch64/cpuid_native.s
+%%DATADIR%%/stdlib/rt/+aarch64/fenv.s
+%%DATADIR%%/stdlib/rt/+aarch64/getfp.s
+%%DATADIR%%/stdlib/rt/+aarch64/jmp.ha
+%%DATADIR%%/stdlib/rt/+aarch64/longjmp.s
+%%DATADIR%%/stdlib/rt/+aarch64/restore.s
+%%DATADIR%%/stdlib/rt/+aarch64/setjmp.s
+%%DATADIR%%/stdlib/rt/+freebsd/abort.ha
+%%DATADIR%%/stdlib/rt/+freebsd/env.ha
+%%DATADIR%%/stdlib/rt/+freebsd/errno.ha
+%%DATADIR%%/stdlib/rt/+freebsd/platformstart.ha
+%%DATADIR%%/stdlib/rt/+freebsd/segmalloc.ha
+%%DATADIR%%/stdlib/rt/+freebsd/signal.ha
+%%DATADIR%%/stdlib/rt/+freebsd/socket.ha
+%%DATADIR%%/stdlib/rt/+freebsd/start+aarch64-libc.s
+%%DATADIR%%/stdlib/rt/+freebsd/start+riscv64-libc.s
+%%DATADIR%%/stdlib/rt/+freebsd/start+x86_64-libc.s
+%%DATADIR%%/stdlib/rt/+freebsd/syscall+aarch64.s
+%%DATADIR%%/stdlib/rt/+freebsd/syscall+riscv64.s
+%%DATADIR%%/stdlib/rt/+freebsd/syscall+x86_64.s
+%%DATADIR%%/stdlib/rt/+freebsd/syscallno.ha
+%%DATADIR%%/stdlib/rt/+freebsd/syscalls.ha
+%%DATADIR%%/stdlib/rt/+freebsd/types.ha
+%%DATADIR%%/stdlib/rt/+linux/+aarch64.ha
+%%DATADIR%%/stdlib/rt/+linux/+riscv64.ha
+%%DATADIR%%/stdlib/rt/+linux/+x86_64.ha
+%%DATADIR%%/stdlib/rt/+linux/abort.ha
+%%DATADIR%%/stdlib/rt/+linux/env.ha
+%%DATADIR%%/stdlib/rt/+linux/errno.ha
+%%DATADIR%%/stdlib/rt/+linux/platformstart+libc.ha
+%%DATADIR%%/stdlib/rt/+linux/platformstart.ha
+%%DATADIR%%/stdlib/rt/+linux/prctl.ha
+%%DATADIR%%/stdlib/rt/+linux/segmalloc.ha
+%%DATADIR%%/stdlib/rt/+linux/signal.ha
+%%DATADIR%%/stdlib/rt/+linux/socket.ha
+%%DATADIR%%/stdlib/rt/+linux/start+aarch64-libc.s
+%%DATADIR%%/stdlib/rt/+linux/start+riscv64-libc.s
+%%DATADIR%%/stdlib/rt/+linux/start+x86_64-libc.s
+%%DATADIR%%/stdlib/rt/+linux/stat.ha
+%%DATADIR%%/stdlib/rt/+linux/syscall+aarch64.s
+%%DATADIR%%/stdlib/rt/+linux/syscall+riscv64.s
+%%DATADIR%%/stdlib/rt/+linux/syscall+x86_64.s
+%%DATADIR%%/stdlib/rt/+linux/syscallno+aarch64.ha
+%%DATADIR%%/stdlib/rt/+linux/syscallno+riscv64.ha
+%%DATADIR%%/stdlib/rt/+linux/syscallno+x86_64.ha
+%%DATADIR%%/stdlib/rt/+linux/syscalls.ha
+%%DATADIR%%/stdlib/rt/+linux/types.ha
+%%DATADIR%%/stdlib/rt/+riscv64/backtrace.ha
+%%DATADIR%%/stdlib/rt/+riscv64/cpuid.ha
+%%DATADIR%%/stdlib/rt/+riscv64/cpuid_native.s
+%%DATADIR%%/stdlib/rt/+riscv64/fenv.s
+%%DATADIR%%/stdlib/rt/+riscv64/getfp.s
+%%DATADIR%%/stdlib/rt/+riscv64/jmp.ha
+%%DATADIR%%/stdlib/rt/+riscv64/longjmp.s
+%%DATADIR%%/stdlib/rt/+riscv64/restore.s
+%%DATADIR%%/stdlib/rt/+riscv64/setjmp.s
+%%DATADIR%%/stdlib/rt/+test/+freebsd.ha
+%%DATADIR%%/stdlib/rt/+test/+linux.ha
+%%DATADIR%%/stdlib/rt/+test/cstring.ha
+%%DATADIR%%/stdlib/rt/+test/run.ha
+%%DATADIR%%/stdlib/rt/+test/ztos.ha
+%%DATADIR%%/stdlib/rt/+x86_64/backtrace.ha
+%%DATADIR%%/stdlib/rt/+x86_64/cpuid.ha
+%%DATADIR%%/stdlib/rt/+x86_64/cpuid_native.s
+%%DATADIR%%/stdlib/rt/+x86_64/fenv.s
+%%DATADIR%%/stdlib/rt/+x86_64/getfp.s
+%%DATADIR%%/stdlib/rt/+x86_64/jmp.ha
+%%DATADIR%%/stdlib/rt/+x86_64/longjmp.s
+%%DATADIR%%/stdlib/rt/+x86_64/restore.s
+%%DATADIR%%/stdlib/rt/+x86_64/setjmp.s
+%%DATADIR%%/stdlib/rt/README
+%%DATADIR%%/stdlib/rt/abort+test.ha
+%%DATADIR%%/stdlib/rt/abort.ha
+%%DATADIR%%/stdlib/rt/ensure.ha
+%%DATADIR%%/stdlib/rt/fenv_defs.ha
+%%DATADIR%%/stdlib/rt/hare+libc.sc
+%%DATADIR%%/stdlib/rt/hare.sc
+%%DATADIR%%/stdlib/rt/jmp.ha
+%%DATADIR%%/stdlib/rt/malloc+debug.ha
+%%DATADIR%%/stdlib/rt/malloc+libc.ha
+%%DATADIR%%/stdlib/rt/malloc.ha
+%%DATADIR%%/stdlib/rt/memcpy.ha
+%%DATADIR%%/stdlib/rt/memmove.ha
+%%DATADIR%%/stdlib/rt/memset.ha
+%%DATADIR%%/stdlib/rt/start+libc.ha
+%%DATADIR%%/stdlib/rt/start+test+libc.ha
+%%DATADIR%%/stdlib/rt/start+test.ha
+%%DATADIR%%/stdlib/rt/start.ha
+%%DATADIR%%/stdlib/rt/strcmp.ha
+%%DATADIR%%/stdlib/shlex/+test.ha
+%%DATADIR%%/stdlib/shlex/README
+%%DATADIR%%/stdlib/shlex/escape.ha
+%%DATADIR%%/stdlib/shlex/split.ha
+%%DATADIR%%/stdlib/slices/README
+%%DATADIR%%/stdlib/slices/cap.ha
+%%DATADIR%%/stdlib/slices/reverse.ha
+%%DATADIR%%/stdlib/slices/trunc.ha
+%%DATADIR%%/stdlib/slices/void.ha
+%%DATADIR%%/stdlib/sort/+test.ha
+%%DATADIR%%/stdlib/sort/README
+%%DATADIR%%/stdlib/sort/bisect.ha
+%%DATADIR%%/stdlib/sort/search.ha
+%%DATADIR%%/stdlib/sort/sort.ha
+%%DATADIR%%/stdlib/sort/types.ha
+%%DATADIR%%/stdlib/strconv/+test/stoi.ha
+%%DATADIR%%/stdlib/strconv/+test/stou.ha
+%%DATADIR%%/stdlib/strconv/README
+%%DATADIR%%/stdlib/strconv/ftos.ha
+%%DATADIR%%/stdlib/strconv/itos.ha
+%%DATADIR%%/stdlib/strconv/numeric.ha
+%%DATADIR%%/stdlib/strconv/stof.ha
+%%DATADIR%%/stdlib/strconv/stof_data.ha
+%%DATADIR%%/stdlib/strconv/stoi.ha
+%%DATADIR%%/stdlib/strconv/stou.ha
+%%DATADIR%%/stdlib/strconv/types.ha
+%%DATADIR%%/stdlib/strconv/utos.ha
+%%DATADIR%%/stdlib/strings/README
+%%DATADIR%%/stdlib/strings/cap.ha
+%%DATADIR%%/stdlib/strings/compare.ha
+%%DATADIR%%/stdlib/strings/concat.ha
+%%DATADIR%%/stdlib/strings/contains.ha
+%%DATADIR%%/stdlib/strings/cstrings.ha
+%%DATADIR%%/stdlib/strings/dup.ha
+%%DATADIR%%/stdlib/strings/index.ha
+%%DATADIR%%/stdlib/strings/iter.ha
+%%DATADIR%%/stdlib/strings/pad.ha
+%%DATADIR%%/stdlib/strings/replace.ha
+%%DATADIR%%/stdlib/strings/sub.ha
+%%DATADIR%%/stdlib/strings/suffix.ha
+%%DATADIR%%/stdlib/strings/tokenize.ha
+%%DATADIR%%/stdlib/strings/trim.ha
+%%DATADIR%%/stdlib/strings/utf8.ha
+%%DATADIR%%/stdlib/strio/README
+%%DATADIR%%/stdlib/strio/ops.ha
+%%DATADIR%%/stdlib/strio/stream.ha
+%%DATADIR%%/stdlib/temp/+freebsd.ha
+%%DATADIR%%/stdlib/temp/+linux.ha
+%%DATADIR%%/stdlib/temp/README
+%%DATADIR%%/stdlib/time/+freebsd/functions.ha
+%%DATADIR%%/stdlib/time/+linux/+aarch64.ha
+%%DATADIR%%/stdlib/time/+linux/+riscv64.ha
+%%DATADIR%%/stdlib/time/+linux/+x86_64.ha
+%%DATADIR%%/stdlib/time/+linux/functions.ha
+%%DATADIR%%/stdlib/time/README
+%%DATADIR%%/stdlib/time/arithm.ha
+%%DATADIR%%/stdlib/time/chrono/+freebsd.ha
+%%DATADIR%%/stdlib/time/chrono/+linux.ha
+%%DATADIR%%/stdlib/time/chrono/README
+%%DATADIR%%/stdlib/time/chrono/chronology.ha
+%%DATADIR%%/stdlib/time/chrono/leapsec.ha
+%%DATADIR%%/stdlib/time/chrono/timescale.ha
+%%DATADIR%%/stdlib/time/chrono/timezone.ha
+%%DATADIR%%/stdlib/time/chrono/tzdb.ha
+%%DATADIR%%/stdlib/time/conv.ha
+%%DATADIR%%/stdlib/time/types.ha
+%%DATADIR%%/stdlib/types/README
+%%DATADIR%%/stdlib/types/arch+aarch64.ha
+%%DATADIR%%/stdlib/types/arch+riscv64.ha
+%%DATADIR%%/stdlib/types/arch+x86_64.ha
+%%DATADIR%%/stdlib/types/classes.ha
+%%DATADIR%%/stdlib/types/limits.ha
+%%DATADIR%%/stdlib/unix/+freebsd/nice.ha
+%%DATADIR%%/stdlib/unix/+freebsd/pipe.ha
+%%DATADIR%%/stdlib/unix/+freebsd/umask.ha
+%%DATADIR%%/stdlib/unix/+linux/nice.ha
+%%DATADIR%%/stdlib/unix/+linux/pipe.ha
+%%DATADIR%%/stdlib/unix/+linux/umask.ha
+%%DATADIR%%/stdlib/unix/README
+%%DATADIR%%/stdlib/unix/getuid.ha
+%%DATADIR%%/stdlib/unix/hosts/+freebsd.ha
+%%DATADIR%%/stdlib/unix/hosts/+linux.ha
+%%DATADIR%%/stdlib/unix/hosts/lookup.ha
+%%DATADIR%%/stdlib/unix/passwd/group.ha
+%%DATADIR%%/stdlib/unix/passwd/passwd.ha
+%%DATADIR%%/stdlib/unix/passwd/types.ha
+%%DATADIR%%/stdlib/unix/poll/+freebsd.ha
+%%DATADIR%%/stdlib/unix/poll/+linux.ha
+%%DATADIR%%/stdlib/unix/poll/README
+%%DATADIR%%/stdlib/unix/resolvconf/+freebsd.ha
+%%DATADIR%%/stdlib/unix/resolvconf/+linux.ha
+%%DATADIR%%/stdlib/unix/resolvconf/README
+%%DATADIR%%/stdlib/unix/resolvconf/load.ha
+%%DATADIR%%/stdlib/unix/setuid.ha
+%%DATADIR%%/stdlib/unix/signal/+linux.ha
+%%DATADIR%%/stdlib/unix/signal/README
+%%DATADIR%%/stdlib/unix/signal/types.ha
+%%DATADIR%%/stdlib/unix/tty/+freebsd/isatty.ha
+%%DATADIR%%/stdlib/unix/tty/+freebsd/open.ha
+%%DATADIR%%/stdlib/unix/tty/+freebsd/termios.ha
+%%DATADIR%%/stdlib/unix/tty/+freebsd/winsize.ha
+%%DATADIR%%/stdlib/unix/tty/+linux/isatty.ha
+%%DATADIR%%/stdlib/unix/tty/+linux/open.ha
+%%DATADIR%%/stdlib/unix/tty/+linux/termios.ha
+%%DATADIR%%/stdlib/unix/tty/+linux/winsize.ha
+%%DATADIR%%/stdlib/unix/tty/types.ha
+%%DATADIR%%/stdlib/uuid/README
+%%DATADIR%%/stdlib/uuid/uuid.ha
+@dir %%DATADIR%%/src/hare
+@dir %%DATADIR%%/src/local-src