From 7306bb446be5f0f0c529ec8acdc57361cef8a8a7 Mon Sep 17 00:00:00 2001 From: TinySemVer Date: Tue, 6 Jan 2026 01:30:29 +0000 Subject: [PATCH 1/2] Release: v2.23.0 [skip ci] ### Minor - Add: Python 3.14 support (#693) (43ee8b7) --- CITATION.cff | 2 +- CMakeLists.txt | 2 +- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 2 +- VERSION | 2 +- conanfile.py | 2 +- csharp/nuget/nuget-package.props | 2 +- include/usearch/index.hpp | 2 +- java/README.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- wasmer.toml | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 78814070d..af1944ae3 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -5,7 +5,7 @@ authors: given-names: "Ash" orcid: "https://orcid.org/0000-0002-4882-1815" title: "USearch by Unum Cloud" -version: 2.22.0 +version: 2.23.0 doi: 10.5281/zenodo.7949416 date-released: 2023-10-22 url: "https://github.com/unum-cloud/usearch" diff --git a/CMakeLists.txt b/CMakeLists.txt index d14903f44..8cfca78a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11 FATAL_ERROR) project( usearch - VERSION 2.22.0 + VERSION 2.23.0 LANGUAGES C CXX DESCRIPTION "Smaller & Faster Single-File Vector Search Engine from Unum" HOMEPAGE_URL "https://github.com/unum-cloud/usearch" diff --git a/Cargo.lock b/Cargo.lock index 215b91efc..33cf17b72 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "usearch" -version = "2.22.0" +version = "2.23.0" dependencies = [ "cxx", "cxx-build", diff --git a/Cargo.toml b/Cargo.toml index fb9fa244c..cd95415dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "usearch" -version = "2.22.0" +version = "2.23.0" authors = ["Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>"] description = "Smaller & Faster Single-File Vector Search Engine from Unum" edition = "2021" diff --git a/README.md b/README.md index 4d4c39641..242d66e20 100644 --- a/README.md +++ b/README.md @@ -552,7 +552,7 @@ doi = {10.5281/zenodo.7949416}, author = {Vardanian, Ash}, title = {{USearch by Unum Cloud}}, url = {https://github.com/unum-cloud/usearch}, -version = {2.22.0}, +version = {2.23.0}, year = {2023}, month = oct, } diff --git a/VERSION b/VERSION index f48f82fa2..e9763f6bf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.22.0 +2.23.0 diff --git a/conanfile.py b/conanfile.py index a34fed33f..74ebbe389 100644 --- a/conanfile.py +++ b/conanfile.py @@ -7,7 +7,7 @@ class USearchConan(ConanFile): name = "usearch" - version = "2.22.0" + version = "2.23.0" license = "Apache-2.0" description = "Smaller & Faster Single-File Vector Search Engine from Unum" homepage = "https://github.com/unum-cloud/usearch" diff --git a/csharp/nuget/nuget-package.props b/csharp/nuget/nuget-package.props index cb9aa78fa..d90e4b66e 100644 --- a/csharp/nuget/nuget-package.props +++ b/csharp/nuget/nuget-package.props @@ -1,7 +1,7 @@ - 2.22.0 + 2.23.0 Unum Unum diff --git a/include/usearch/index.hpp b/include/usearch/index.hpp index a14acb936..93e19e1ef 100644 --- a/include/usearch/index.hpp +++ b/include/usearch/index.hpp @@ -8,7 +8,7 @@ #define UNUM_USEARCH_HPP #define USEARCH_VERSION_MAJOR 2 -#define USEARCH_VERSION_MINOR 22 +#define USEARCH_VERSION_MINOR 23 #define USEARCH_VERSION_PATCH 0 // Inferring C++ version diff --git a/java/README.md b/java/README.md index c6ce64205..1df4193f7 100644 --- a/java/README.md +++ b/java/README.md @@ -19,7 +19,7 @@ repositories { // Task to download USearch JAR from GitHub releases task downloadUSearchJar { doLast { - def usearchVersion = '2.22.0' + def usearchVersion = '2.23.0' def usearchUrl = "https://github.com/unum-cloud/usearch/releases/download/v${usearchVersion}/usearch-${usearchVersion}.jar" def usearchFile = file("lib/usearch-${usearchVersion}.jar") @@ -38,7 +38,7 @@ compileJava.dependsOn downloadUSearchJar dependencies { // USearch JAR from local lib directory (downloaded automatically) - implementation name: 'usearch', version: '2.22.0', ext: 'jar' + implementation name: 'usearch', version: '2.23.0', ext: 'jar' } ``` diff --git a/package-lock.json b/package-lock.json index 2c317e83b..0d5a4eb4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "usearch", - "version": "2.22.0", + "version": "2.23.0", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index 51067ed39..5e0841ef4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "usearch", - "version": "2.22.0", + "version": "2.23.0", "description": "Smaller & Faster Single-File Vector Search Engine from Unum", "author": "Ash Vardanian (https://ashvardanian.com/)", "license": "Apache 2.0", diff --git a/wasmer.toml b/wasmer.toml index 6f92dd39a..d76485179 100644 --- a/wasmer.toml +++ b/wasmer.toml @@ -1,6 +1,6 @@ [package] name = "unum/usearch" -version = "2.22.0" +version = "2.23.0" description = "Smaller & Faster Single-File Vector Search Engine from Unum" license = "Apache-2.0" readme = "README.md" From 76040d84d529c013ee06fd6cff4d0d9ab2306f83 Mon Sep 17 00:00:00 2001 From: Edward205 <52004020+Edward205@users.noreply.github.com> Date: Mon, 12 Jan 2026 19:47:55 +0200 Subject: [PATCH 2/2] fix build in qt environment - prevent redefining NOMINMAX - rename slots function because of naming conflict - explicitly call CreateFileA for char* parameter --- include/usearch/index.hpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/include/usearch/index.hpp b/include/usearch/index.hpp index 93e19e1ef..efbd0071c 100644 --- a/include/usearch/index.hpp +++ b/include/usearch/index.hpp @@ -72,7 +72,9 @@ // OS-specific includes #if defined(USEARCH_DEFINED_WINDOWS) #define _USE_MATH_DEFINES +#ifndef NOMINMAX #define NOMINMAX +#endif #include #include // `fstat` for file size #undef NOMINMAX @@ -500,7 +502,7 @@ template > class bitset_gt { static constexpr std::size_t bits_per_slot() { return sizeof(compressed_slot_t) * CHAR_BIT; } static constexpr compressed_slot_t bits_mask() { return sizeof(compressed_slot_t) * CHAR_BIT - 1; } - static constexpr std::size_t slots(std::size_t bits) { return divide_round_up(bits); } + static constexpr std::size_t bits_slots(std::size_t bits) { return divide_round_up(bits); } compressed_slot_t* slots_{}; /// @brief Number of slots. @@ -524,8 +526,8 @@ template > class bitset_gt { } bitset_gt(std::size_t capacity) noexcept - : slots_((compressed_slot_t*)allocator_t{}.allocate(slots(capacity) * sizeof(compressed_slot_t))), - count_(slots_ ? slots(capacity) : 0u) { + : slots_((compressed_slot_t*)allocator_t{}.allocate(bits_slots(capacity) * sizeof(compressed_slot_t))), + count_(slots_ ? bits_slots(capacity) : 0u) { clear(); } @@ -1778,7 +1780,7 @@ class memory_mapped_file_t { #if defined(USEARCH_DEFINED_WINDOWS) HANDLE file_handle = - CreateFile(path_, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + CreateFileA(path_, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (file_handle == INVALID_HANDLE_VALUE) return result.failed("Opening file failed!");