Date: Tue, 17 Feb 2026 16:55:18 +0000 From: Po-Chuan Hsieh <sunpoet@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: ec1346dd5701 - main - devel/frozen: Add frozen 1.2.0 Message-ID: <69949d76.25cde.882f7d@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=ec1346dd57011f2c6c65204deae7a1a6b9083062 commit ec1346dd57011f2c6c65204deae7a1a6b9083062 Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org> AuthorDate: 2026-02-17 16:50:13 +0000 Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org> CommitDate: 2026-02-17 16:50:13 +0000 devel/frozen: Add frozen 1.2.0 Frozen is a header-only library that provides 0 cost initialization for immutable containers, fixed-size containers, and various algorithms. Frozen provides: - immutable (a.k.a. frozen), constexpr-compatible versions of std::set, std::unordered_set, std::map and std::unordered_map. - fixed-capacity, constinit-compatible versions of std::map and std::unordered_map with immutable, compile-time selected keys mapped to mutable values. - 0-cost initialization version of std::search for frozen needles using Boyer-Moore or Knuth-Morris-Pratt algorithms. The unordered_* containers are guaranteed perfect (a.k.a. no hash collision) and the extra storage is linear with respect to the number of keys. Once initialized, the container keys cannot be updated, and in exchange, lookups are faster. And initialization is free when constexpr or constinit is used :-). --- devel/Makefile | 1 + devel/frozen/Makefile | 24 ++++++++++++++++++++++++ devel/frozen/distinfo | 3 +++ devel/frozen/pkg-descr | 17 +++++++++++++++++ devel/frozen/pkg-plist | 20 ++++++++++++++++++++ 5 files changed, 65 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index b9b11aca0b45..8cd6220042a7 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -739,6 +739,7 @@ SUBDIR += freebsd-nvme-shim SUBDIR += freebsd-sysroot SUBDIR += frink + SUBDIR += frozen SUBDIR += fruit SUBDIR += fsmtrie SUBDIR += fstrcmp diff --git a/devel/frozen/Makefile b/devel/frozen/Makefile new file mode 100644 index 000000000000..8900c52232db --- /dev/null +++ b/devel/frozen/Makefile @@ -0,0 +1,24 @@ +PORTNAME= frozen +PORTVERSION= 1.2.0 +CATEGORIES= devel + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Header-only, constexpr alternative to gperf for C++14 users +WWW= https://github.com/serge-sans-paille/frozen + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= cmake:testing compiler:c++14-lang + +CMAKE_OFF= frozen.benchmark \ + frozen.coverage \ + frozen.tests +CMAKE_ON= frozen.installation +CMAKE_TESTING_ON= frozen.tests +NO_ARCH= yes + +USE_GITHUB= yes +GH_ACCOUNT= serge-sans-paille + +.include <bsd.port.mk> diff --git a/devel/frozen/distinfo b/devel/frozen/distinfo new file mode 100644 index 000000000000..321c0e8e3f15 --- /dev/null +++ b/devel/frozen/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1771105000 +SHA256 (serge-sans-paille-frozen-1.2.0_GH0.tar.gz) = ed8339c017d7c5fe019ac2c642477f435278f0dc643c1d69d3f3b1e95915e823 +SIZE (serge-sans-paille-frozen-1.2.0_GH0.tar.gz) = 187169 diff --git a/devel/frozen/pkg-descr b/devel/frozen/pkg-descr new file mode 100644 index 000000000000..09d0897c66bc --- /dev/null +++ b/devel/frozen/pkg-descr @@ -0,0 +1,17 @@ +Frozen is a header-only library that provides 0 cost initialization for +immutable containers, fixed-size containers, and various algorithms. + +Frozen provides: +- immutable (a.k.a. frozen), constexpr-compatible versions of std::set, + std::unordered_set, std::map and std::unordered_map. +- fixed-capacity, constinit-compatible versions of std::map and + std::unordered_map with immutable, compile-time selected keys mapped to + mutable values. +- 0-cost initialization version of std::search for frozen needles using + Boyer-Moore or Knuth-Morris-Pratt algorithms. + +The unordered_* containers are guaranteed perfect (a.k.a. no hash collision) and +the extra storage is linear with respect to the number of keys. + +Once initialized, the container keys cannot be updated, and in exchange, lookups +are faster. And initialization is free when constexpr or constinit is used :-). diff --git a/devel/frozen/pkg-plist b/devel/frozen/pkg-plist new file mode 100644 index 000000000000..b741e73478a7 --- /dev/null +++ b/devel/frozen/pkg-plist @@ -0,0 +1,20 @@ +include/frozen/algorithm.h +include/frozen/bits/algorithms.h +include/frozen/bits/basic_types.h +include/frozen/bits/constexpr_assert.h +include/frozen/bits/defines.h +include/frozen/bits/elsa.h +include/frozen/bits/elsa_std.h +include/frozen/bits/exceptions.h +include/frozen/bits/hash_string.h +include/frozen/bits/mpl.h +include/frozen/bits/pmh.h +include/frozen/bits/version.h +include/frozen/map.h +include/frozen/random.h +include/frozen/set.h +include/frozen/string.h +include/frozen/unordered_map.h +include/frozen/unordered_set.h +share/cmake/frozen/frozenConfig.cmake +share/cmake/frozen/frozenConfigVersion.cmakehome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69949d76.25cde.882f7d>
