Date: Sun, 01 Mar 2026 16:24:07 +0000 From: Gleb Popov <arrowd@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Markus Graf <markus.graf@markusgraf.net> Subject: git: 0289e12ec3a7 - main - math/usearch: Search & Clustering engine library (C, C++ and Java JNI) Message-ID: <69a46827.37774.4d59954a@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by arrowd: URL: https://cgit.FreeBSD.org/ports/commit/?id=0289e12ec3a7b736793e435454bbeeda59faedb6 commit 0289e12ec3a7b736793e435454bbeeda59faedb6 Author: Markus Graf <markus.graf@markusgraf.net> AuthorDate: 2026-02-27 20:48:41 +0000 Commit: Gleb Popov <arrowd@FreeBSD.org> CommitDate: 2026-03-01 16:24:01 +0000 math/usearch: Search & Clustering engine library (C, C++ and Java JNI) PR: 293490 Co-authored-by: Gleb Popov <arrowd@FreeBSD.org> --- math/Makefile | 1 + math/usearch/Makefile | 69 ++++++++++++++++++++++++++++++++ math/usearch/distinfo | 9 +++++ math/usearch/files/patch-simsimd_c_lib.c | 47 ++++++++++++++++++++++ math/usearch/pkg-descr | 2 + math/usearch/pkg-plist | 8 ++++ 6 files changed, 136 insertions(+) diff --git a/math/Makefile b/math/Makefile index fb5a95ecaf5e..e225fecb37f7 100644 --- a/math/Makefile +++ b/math/Makefile @@ -1288,6 +1288,7 @@ SUBDIR += units SUBDIR += universal SUBDIR += unuran + SUBDIR += usearch SUBDIR += vampire SUBDIR += vdt SUBDIR += verdict diff --git a/math/usearch/Makefile b/math/usearch/Makefile new file mode 100644 index 000000000000..bff800a1139a --- /dev/null +++ b/math/usearch/Makefile @@ -0,0 +1,69 @@ +PORTNAME= USearch +DISTVERSIONPREFIX= v +DISTVERSION= 2.24.0 +CATEGORIES= math java + +MAINTAINER= markus.graf@markusgraf.net +COMMENT= Search & Clustering engine library (C, C++ and Java JNI) +WWW= https://unum.cloud/usearch + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +NOT_FOR_ARCHS= i386 +NOT_FOR_ARCHS_REASON= Tests crash on i386 + +USES= cmake java + +USE_GITHUB= yes +GH_ACCOUNT= unum-cloud + +CMAKE_ON= USEARCH_USE_FP16LIB \ + USEARCH_USE_SIMSIMD \ + USEARCH_BUILD_TEST_C \ + USEARCH_BUILD_TEST_CPP \ + USEARCH_BUILD_LIB_C \ + USEARCH_USE_OPENMP \ + USEARCH_BUILD_JNI + +CMAKE_OFF= USEARCH_BUILD_BENCH_CPP + +CMAKE_ARGS= -DJAVA_INCLUDE_PATH=${JAVA_HOME}/include \ + -DJAVA_HOME=${JAVA_HOME} + +JAVA_VERSION= 21 + +USE_LDCONFIG= yes + +GH_TUPLE= maratyszcza:FP16:0a92994d729ff76a58f692d3028ca1b64b145d91:fp16/fp16 \ + ashvardanian:StringZilla:v3.12.6:sz/stringzilla \ + ashvardanian:SimSIMD:v6.5.13:sim/simsimd + +.include <bsd.port.pre.mk> + +.if ${ARCH} == amd64 # for simsimd +CXXFLAGS= -march=x86-64 +.endif + +post-build: + cd ${WRKSRC} && ${JAVAC} -classpath java -encoding UTF-8 -h java/cloud/unum/usearch -d bin java/cloud/unum/usearch/Index.java + ${MKDIR} ${WRKSRC}/bin/usearch-native + ${INSTALL_LIB} ${BUILD_WRKSRC}/libusearch_jni.so ${WRKSRC}/bin/usearch-native/ + cd ${WRKSRC} && ${JAR} cvf usearch.jar -C bin . + +do-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/include/usearch + ${INSTALL_DATA} ${WRKSRC}/include/usearch/*.hpp ${STAGEDIR}${PREFIX}/include/usearch/ + ${INSTALL_DATA} ${WRKSRC}/c/usearch.h ${STAGEDIR}${PREFIX}/include/usearch/ + ${INSTALL_LIB} ${BUILD_WRKSRC}/libusearch_c.so ${STAGEDIR}${PREFIX}/lib/ + ${INSTALL_DATA} ${BUILD_WRKSRC}/libusearch_static_c.a ${STAGEDIR}${PREFIX}/lib/ + ${INSTALL_DATA} ${WRKSRC}/usearch.jar ${STAGEDIR}${JAVAJARDIR}/usearch-${DISTVERSION}.jar + ${RLN} usearch-${DISTVERSION}.jar ${STAGEDIR}${JAVAJARDIR}/usearch.jar + +do-test: + cd ${BUILD_WRKSRC} && ./test_c + cd ${BUILD_WRKSRC} && ./test_cpp + cd ${WRKSRC} && ${JAVA} -classpath bin cloud.unum.usearch.Index + cd ${WRKSRC} && ${JAVA} -classpath usearch.jar cloud.unum.usearch.Index + +.include <bsd.port.post.mk> diff --git a/math/usearch/distinfo b/math/usearch/distinfo new file mode 100644 index 000000000000..abf94883adc0 --- /dev/null +++ b/math/usearch/distinfo @@ -0,0 +1,9 @@ +TIMESTAMP = 1771522888 +SHA256 (unum-cloud-USearch-v2.24.0_GH0.tar.gz) = 44606e88f4d49c252daea222ef0b26054e09086e43208c8d5e4914a92c838a44 +SIZE (unum-cloud-USearch-v2.24.0_GH0.tar.gz) = 473715 +SHA256 (maratyszcza-FP16-0a92994d729ff76a58f692d3028ca1b64b145d91_GH0.tar.gz) = a91f4770ff9c39f4d72e339c379f566b3bbb359fa66122d85fc0bae3dde7abc7 +SIZE (maratyszcza-FP16-0a92994d729ff76a58f692d3028ca1b64b145d91_GH0.tar.gz) = 71228 +SHA256 (ashvardanian-StringZilla-v3.12.6_GH0.tar.gz) = 1255cac3aced48b4b73e045829a80e3122c54eca5621274073839c9036f48fe8 +SIZE (ashvardanian-StringZilla-v3.12.6_GH0.tar.gz) = 264360 +SHA256 (ashvardanian-SimSIMD-v6.5.13_GH0.tar.gz) = 64316486fe09f3df9b3f36fef5c7f5cf8741d3c7c9d5413602388322d89def8e +SIZE (ashvardanian-SimSIMD-v6.5.13_GH0.tar.gz) = 227713 diff --git a/math/usearch/files/patch-simsimd_c_lib.c b/math/usearch/files/patch-simsimd_c_lib.c new file mode 100644 index 000000000000..38205b405e74 --- /dev/null +++ b/math/usearch/files/patch-simsimd_c_lib.c @@ -0,0 +1,47 @@ +--- simsimd/c/lib.c.orig 2026-02-27 20:37:49 UTC ++++ simsimd/c/lib.c +@@ -20,34 +20,34 @@ + * - Windows - MSVC: everything except Sapphire Rapids and ARM SVE. + * - macOS - Apple Clang: only Arm NEON and x86 AVX2 Haswell extensions are available. + */ +-#if !defined(SIMSIMD_TARGET_NEON) && (defined(__APPLE__) || defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_NEON) && (defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_NEON 1 + #endif +-#if !defined(SIMSIMD_TARGET_SVE) && (defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_SVE) && (defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_SVE 1 + #endif +-#if !defined(SIMSIMD_TARGET_SVE2) && (defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_SVE2) && (defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_SVE2 1 + #endif +-#if !defined(SIMSIMD_TARGET_HASWELL) && (defined(_MSC_VER) || defined(__APPLE__) || defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_HASWELL) && (defined(_MSC_VER) || defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_HASWELL 1 + #endif +-#if !defined(SIMSIMD_TARGET_SKYLAKE) && (defined(_MSC_VER) || defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_SKYLAKE) && (defined(_MSC_VER) || defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_SKYLAKE 1 + #endif +-#if !defined(SIMSIMD_TARGET_ICE) && (defined(_MSC_VER) || defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_ICE) && (defined(_MSC_VER) || defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_ICE 1 + #endif +-#if !defined(SIMSIMD_TARGET_GENOA) && (defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_GENOA) && (defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_GENOA 1 + #endif +-#if !defined(SIMSIMD_TARGET_SAPPHIRE) && (defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_SAPPHIRE) && (defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_SAPPHIRE 1 + #endif +-#if !defined(SIMSIMD_TARGET_TURIN) && (defined(__linux__)) ++#if !defined(SIMSIMD_TARGET_TURIN) && (defined(__linux__) || defined(__FreeBSD__)) + #define SIMSIMD_TARGET_TURIN 1 + #endif +-#if !defined(SIMSIMD_TARGET_SIERRA) && (defined(__linux__)) && 0 // TODO: Add target spec to GCC & Clang ++#if !defined(SIMSIMD_TARGET_SIERRA) && (defined(__linux__) || defined(__FreeBSD__)) && 0 // TODO: Add target spec to GCC & Clang + #define SIMSIMD_TARGET_SIERRA 1 + #endif + diff --git a/math/usearch/pkg-descr b/math/usearch/pkg-descr new file mode 100644 index 000000000000..1e6fd9f95e06 --- /dev/null +++ b/math/usearch/pkg-descr @@ -0,0 +1,2 @@ +USearch is a fast search and cluster engine, and the industry-standard search +backend replacing Meta's FAISS and Apache Lucene in the modern data stack. diff --git a/math/usearch/pkg-plist b/math/usearch/pkg-plist new file mode 100644 index 000000000000..ae3abd6d8c6a --- /dev/null +++ b/math/usearch/pkg-plist @@ -0,0 +1,8 @@ +include/usearch/index.hpp +include/usearch/index_dense.hpp +include/usearch/index_plugins.hpp +include/usearch/usearch.h +lib/libusearch_c.so +lib/libusearch_static_c.a +%%JAVAJARDIR%%/usearch-2.24.0.jar +%%JAVAJARDIR%%/usearch.jarhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69a46827.37774.4d59954a>
