Skip site navigation (1)Skip section navigation (2)
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.cmake


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69949d76.25cde.882f7d>