Revision: 0228e0eb2836fe34031d
Author: Davis King
Date: Nov 14, 2026 (05:26:41 UTC)

Created release v20.1

 dlib/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Revision: 61e01983b6edfc7c3094
Author: Davis King
Date: Nov 14, 2026 (05:26:25 UTC)

adjusts version

 dlib/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Revision: f912c88816b970a6b2ad
Author: Adrià Arrufat
Date: Nov 14, 2026 (17:18:37 UTC)

Add text_classification_ex.cpp (#3182)

 dlib/statistics/feature_hashing.h          | 147 +++++++++---
 dlib/statistics/feature_hashing_abstract.h |  67 ++++--
 dlib/svm/auto.h                            | 146 ++++++++++++
 dlib/svm/auto_abstract.h                   |  42 ++++
 dlib/test/CMakeLists.txt                   |   1 +
 dlib/test/auto_train_linear_classifier.cpp | 197 ++++++++++++++++
 dlib/test/feature_hashing.cpp              |  32 +++
 dlib/test/makefile                         |   1 +
 examples/CMakeLists.txt                    |   1 +
 examples/text_classification_ex.cpp        | 357 +++++++++++++++++++++++++++++
 10 files changed, 945 insertions(+), 46 deletions(-)

Revision: 958e2c199f7a20997b34
Author: Davis E. King
Date: Nov 06, 2026 (14:55:28 UTC)

Merge pull request #3184 from arrufat/aligned-union


Revision: afa2a37e8966450b5e38
Author: Davis King
Date: Nov 06, 2026 (14:09:33 UTC)

Preserve type_safe_union storage layout

 dlib/test/type_safe_union.cpp                 | 58 +++++++++++++++++++++++++++
 dlib/type_safe_union/type_safe_union_kernel.h |  8 +++-
 2 files changed, 65 insertions(+), 1 deletion(-)

Revision: 2d8e36ef8e70154799d0
Author: Davis King
Date: Nov 06, 2026 (13:55:00 UTC)

A bit more checking/testing

 dlib/svm/svm.h              |  5 +++++
 dlib/test/probabilistic.cpp | 19 +++++++++++++++++--
 2 files changed, 22 insertions(+), 2 deletions(-)

Revision: 43a64aabfe124839d917
Author: Adrià Arrufat
Date: Nov 03, 2026 (23:31:15 UTC)

Replace the deprecated std::aligned_union in type_safe_union

 dlib/type_safe_union/type_safe_union_kernel.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Revision: eb45cd8d1b6015564d1a
Author: Adrià Arrufat
Date: Nov 03, 2026 (22:59:29 UTC)

Require each Platt fold to hold out both classes

 dlib/svm/svm.h              | 12 +++++++-----
 dlib/svm/svm_abstract.h     |  8 ++++++--
 dlib/test/probabilistic.cpp | 16 ++++++++++++++++
 3 files changed, 29 insertions(+), 7 deletions(-)

Revision: 4ff3c75546a0ee4bd540
Author: Adrià Arrufat
Date: Nov 03, 2026 (14:30:51 UTC)

Add hash_word_ngrams() and hash_char_ngrams() (#3181)

 dlib/statistics.h                          |   1 +
 dlib/statistics/feature_hashing.h          | 140 +++++++++++++++++++++++++
 dlib/statistics/feature_hashing_abstract.h |  81 +++++++++++++++
 dlib/test/CMakeLists.txt                   |   1 +
 dlib/test/feature_hashing.cpp              | 158 +++++++++++++++++++++++++++++
 dlib/test/makefile                         |   1 +
 6 files changed, 382 insertions(+)

Revision: 720dbd1c984589bc1fd1
Author: Adrià Arrufat
Date: Nov 03, 2026 (05:33:14 UTC)

Pass unsigned char to the <cctype> functions (#3179)

 dlib/cpp_tokenizer/cpp_tokenizer_kernel_1.h |  2 +-
 dlib/data_io/arc_agi.h                      |  8 ++++----
 dlib/gui_widgets/widgets.cpp                |  8 ++++----
 dlib/server/server_http.h                   |  4 ++--
 dlib/string/string.h                        | 12 ++++++------
 dlib/test/string.cpp                        |  7 +++++++
 6 files changed, 24 insertions(+), 17 deletions(-)

Revision: 9c579f92fc99e1c19f95
Author: Davis King
Date: Oct 31, 2026 (14:07:35 UTC)

prepare for new release, basically just updating docs

 dlib/CMakeLists.txt                                |   4 +-
 .../cpp_pretty_printer_kernel_1.h                  |  25 +++-
 .../cpp_pretty_printer_kernel_2.h                  |   9 ++
 .../cpp_pretty_printer_kernel_abstract.h           |  16 +++
 dlib/dnn/onnx_abstract.h                           |  44 ++++---
 dlib/geometry/line_abstract.h                      |   2 +-
 .../full_object_detection_abstract.h               |   9 +-
 dlib/sockets/sockets_kernel_abstract.h             |  11 +-
 dlib/tokenizer/bpe_tokenizer_abstract.h            |   8 +-
 dlib/unicode/unicode_abstract.h                    |   6 +-
 tools/htmlify/htmlify.cpp                          | 133 +++++++++++++++++++--
 tools/htmlify/test_htmlify.py                      | 118 ++++++++++++++++++
 tools/python/src/image2.cpp                        |   4 +-
 tools/python/src/image4.cpp                        |   6 +-
 14 files changed, 351 insertions(+), 44 deletions(-)

Revision: 6f27b541859021d43e31
Author: Adrià Arrufat
Date: Nov 01, 2026 (01:06:23 UTC)

Add tfidf_transformer (#3178)

 dlib/statistics.h                 |   1 +
 dlib/statistics/tfidf.h           | 264 ++++++++++++++++++++++++++++++++++++++
 dlib/statistics/tfidf_abstract.h  | 230 +++++++++++++++++++++++++++++++++
 dlib/svm/sparse_vector.h          |  33 +++++
 dlib/svm/sparse_vector_abstract.h |  31 +++++
 dlib/test/CMakeLists.txt          |   1 +
 dlib/test/makefile                |   1 +
 dlib/test/sparse_vector.cpp       |  36 ++++++
 dlib/test/tfidf.cpp               | 242 ++++++++++++++++++++++++++++++++++
 9 files changed, 839 insertions(+)

Revision: 9dfc591c950a45f7cdc3
Author: Davis King
Date: Oct 20, 2026 (13:04:36 UTC)

Speed up global optimization candidate selection with early rejection

 .../global_optimization/global_function_search.cpp | 88 ++++++++++++++++++++-
 dlib/global_optimization/upper_bound_function.h    |  7 ++
 dlib/test/global_optimization.cpp                  | 89 ++++++++++++++++++++++
 3 files changed, 180 insertions(+), 4 deletions(-)

Revision: 6baa5c5151594f0e8a9b
Author: Davis E. King
Date: Oct 17, 2026 (11:08:09 UTC)

Merge pull request #3170 from lippinj/upstream-fix-2


Revision: 8070802fcdafebc55146
Author: Davis E. King
Date: Oct 17, 2026 (10:53:36 UTC)

Merge pull request #3171 from lippinj/upstream-fix-3


Revision: ca06f11ca47bf56728fd
Author: Davis E. King
Date: Oct 17, 2026 (10:52:05 UTC)

Merge pull request #3175 from lippinj/upstream-fix-6


Revision: b4ac0501a2c4d73e0b25
Author: Davis E. King
Date: Oct 17, 2026 (10:31:54 UTC)

Merge pull request #3169 from lippinj/upstream-fix-1


Revision: c58f26118a90fa221c2e
Author: Davis E. King
Date: Oct 17, 2026 (10:03:10 UTC)

Merge pull request #3174 from lippinj/upstream-fix-5


Revision: 1a4f87e80c1e25e05a95
Author: Davis E. King
Date: Oct 17, 2026 (10:01:53 UTC)

Merge pull request #3173 from lippinj/upstream-fix-7


Revision: 7828f80cf751fc5a2d98
Author: Davis E. King
Date: Oct 17, 2026 (10:00:59 UTC)

Merge pull request #3172 from lippinj/upstream-fix-4


Revision: e5d7b938e8e90e7f5543
Author: Davis King
Date: Oct 16, 2026 (18:09:06 UTC)

Preserve Gaussian filter cutoff without dividing by tails

 dlib/image_transforms/spatial_filtering.h |  4 +-
 dlib/test/image.cpp                       | 86 +++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+), 3 deletions(-)

Revision: 0266408ef52b1271dd2e
Author: Davis King
Date: Oct 16, 2026 (18:08:21 UTC)

Fix correlation normalization without epsilon regularization

 dlib/statistics/statistics.h          |  14 ++--
 dlib/statistics/statistics_abstract.h |   2 +
 dlib/test/statistics.cpp              | 140 ++++++++++++++++++++++++++++++++++
 3 files changed, 151 insertions(+), 5 deletions(-)

Revision: d77612fecde4aedcc939
Author: Davis King
Date: Oct 16, 2026 (18:08:15 UTC)

Initialize kkmeans assignments with an invalid cluster

 dlib/svm/kkmeans.h |  5 ++-
 dlib/test/svm.cpp  | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+), 1 deletion(-)

Revision: f106830e1e9b9289b12f
Author: Davis King
Date: Oct 16, 2026 (18:07:34 UTC)

Test max-point interpolation and update tracker reference score

 dlib/test/correlation_tracker.cpp |  2 +-
 dlib/test/matrix.cpp              | 63 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 64 insertions(+), 1 deletion(-)

Revision: fdba441d8b9a5393ec4f
Author: Joonas Lipping
Date: Oct 16, 2026 (11:11:44 UTC)

fix(optimization): prevent integer overflow when computing oca stop time

 dlib/optimization/optimization_oca.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Revision: fa6436caab0cc0764fc9
Author: Joonas Lipping
Date: Oct 16, 2026 (11:11:57 UTC)

fix: remove unused variables that produce compiler warnings

 dlib/geometry/point_transforms.h           | 4 +---
 dlib/image_processing/scan_image_pyramid.h | 2 --
 2 files changed, 1 insertion(+), 5 deletions(-)

Revision: 81b3d0e1f81b4c71011a
Author: Joonas Lipping
Date: Oct 16, 2026 (11:11:37 UTC)

fix(simd): make simd4f::sum() consistent across all SIMD paths

 dlib/simd/simd4f.h | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Revision: c90ef3f8bba6aad228c8
Author: Joonas Lipping
Date: Oct 16, 2026 (11:11:28 UTC)

fix(image_transforms): guard against division by zero in create_gaussian_filter()

 dlib/image_transforms/spatial_filtering.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Revision: 8d9e2b8e9583dcfe0a3d
Author: Joonas Lipping
Date: Oct 16, 2026 (11:11:50 UTC)

fix(svm): initialize assignments vector after resize in kkmeans

 dlib/svm/kkmeans.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 0a79024ea8075760eae9
Author: Joonas Lipping
Date: Oct 16, 2026 (11:11:22 UTC)

fix(statistics): guard against division by zero in correlation()

 dlib/statistics/statistics.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Revision: 964d0fc8cbfe2c061ef3
Author: Joonas Lipping
Date: Oct 16, 2026 (11:11:07 UTC)

fix(matrix): correct column index in max-point interpolation

 dlib/matrix/matrix_la.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: ac7d55406eae4faf5960
Author: Davis King
Date: Oct 04, 2026 (11:58:01 UTC)

fix bug in unit test

 dlib/test/dnn.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Revision: d1fc6b60f03e573abe2b
Author: bakedsnake
Date: Oct 04, 2026 (16:00:39 UTC)

cblas: update cmake_minimum_required to 3.10.0

 dlib/external/cblas/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 51be5914e83a0aa05a1e
Author: MUGUNDAN
Date: Oct 04, 2026 (22:41:19 UTC)

Add support for building dlib on Windows ARM64 (#3164)

 .../set_compiler_specific_options.cmake            |  18 ++-
 dlib/cmake_utils/test_for_simd_options.cmake       |  37 ++++++
 dlib/simd/simd4f.h                                 |  17 ++-
 dlib/simd/simd4i.h                                 |  28 ++++-
 dlib/simd/simd_check.h                             |   6 +-
 dlib/test/CMakeLists.txt                           |   1 +
 dlib/test/simd.cpp                                 | 129 +++++++++++++++++++++
 tools/python/test/test_setup.py                    |  46 ++++++++
 8 files changed, 274 insertions(+), 8 deletions(-)

Revision: 25a9c63fd9bee40aeaf8
Author: Davis E. King
Date: Oct 03, 2026 (13:48:10 UTC)

Let's start using C++17 (#3167)

 dlib/CMakeLists.txt                                |  7 +++++--
 dlib/algs.h                                        | 16 +++++++---------
 dlib/java/cmake_swig_jni                           |  2 +-
 dlib/serialize.h                                   |  2 +-
 dlib/test/WINDOWS_build_and_run_all_unit_tests.bat | 12 ++++++------
 dlib/test/constexpr_if.cpp                         |  2 +-
 dlib/test/makefile                                 |  2 +-
 7 files changed, 22 insertions(+), 21 deletions(-)

Revision: 51670b766e51e73e622a
Author: Juha Reunanen
Date: Oct 03, 2026 (24:12:57 UTC)

Fall back to the cuDNN heuristics when benchmarking runs out of memory (#3166)

 dlib/cuda/cudnn_dlibapi.cpp | 87 ++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 75 insertions(+), 12 deletions(-)

Revision: 46fa4a281a35b16aed65
Author: Juha Reunanen
Date: Oct 02, 2026 (08:00:53 UTC)

Choose each convolution algorithm when first needed (#3162)

 dlib/cuda/cudnn_dlibapi.cpp | 331 +++++++++++++++++++++++++-------------------
 dlib/cuda/cudnn_dlibapi.h   |  15 +-
 2 files changed, 197 insertions(+), 149 deletions(-)

Revision: 41883fe7765e1df095bb
Author: Juha Reunanen
Date: Oct 01, 2026 (19:03:45 UTC)

Optionally choose the convolution algorithms for each input shape (#3161)

 dlib/cuda/cudnn_dlibapi.cpp | 67 +++++++++++++++++++++++++++++++++-----
 dlib/cuda/tensor_tools.cpp  | 20 ++++++++++++
 dlib/cuda/tensor_tools.h    |  2 ++
 dlib/dnn/core_abstract.h    | 25 +++++++++++++++
 dlib/test/dnn.cpp           | 78 +++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 184 insertions(+), 8 deletions(-)

Revision: 7a63829d4ea7aab39bd0
Author: Juha Reunanen
Date: Oct 01, 2026 (18:37:13 UTC)

Use the C++ tests' tolerance in the Holder table Python test (#3163)

 tools/python/test/test_global_optimization.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 01e4809710775b8aab5c
Author: Seth Troisi
Date: Oct 01, 2026 (-02:35:59 UTC)

Add CUDA 13 config removing SM_70 (#3160)

 dlib/CMakeLists.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Revision: 6938c23d25c95b7cc98f
Author: Davis King
Date: Sep 22, 2026 (18:59:44 UTC)

update libpng and zlib

 dlib/external/README.png.md                        |   30 +
 dlib/external/libpng/LICENSE                       |  199 +-
 dlib/external/libpng/README                        |  309 +-
 dlib/external/libpng/arm/arm_init.c                |  166 +-
 dlib/external/libpng/arm/filter_neon.S             |  267 +-
 dlib/external/libpng/arm/filter_neon_intrinsics.c  |   67 +-
 dlib/external/libpng/arm/palette_neon_intrinsics.c |   78 +-
 dlib/external/libpng/png.c                         | 1539 +--
 dlib/external/libpng/png.h                         | 1269 ++-
 dlib/external/libpng/pngconf.h                     |   68 +-
 dlib/external/libpng/pngdebug.h                    |   12 +-
 dlib/external/libpng/pngerror.c                    |  205 +-
 dlib/external/libpng/pngget.c                      |  590 +-
 dlib/external/libpng/pnginfo.h                     |  104 +-
 dlib/external/libpng/pnglibconf.h                  |   25 +-
 dlib/external/libpng/pngmem.c                      |   59 +-
 dlib/external/libpng/pngpread.c                    |  213 +-
 dlib/external/libpng/pngpriv.h                     | 1512 +--
 dlib/external/libpng/pngread.c                     |  700 +-
 dlib/external/libpng/pngrio.c                      |    5 +-
 dlib/external/libpng/pngrtran.c                    |  541 +-
 dlib/external/libpng/pngrutil.c                    | 1906 ++--
 dlib/external/libpng/pngset.c                      |  493 +-
 dlib/external/libpng/pngstruct.h                   |  123 +-
 dlib/external/libpng/pngtrans.c                    |   57 +-
 dlib/external/libpng/pngwio.c                      |    9 +-
 dlib/external/libpng/pngwrite.c                    |  235 +-
 dlib/external/libpng/pngwtran.c                    |    1 -
 dlib/external/libpng/pngwutil.c                    |  203 +-
 dlib/external/zlib/README                          |   44 +-
 dlib/external/zlib/adler32.c                       |   32 +-
 dlib/external/zlib/compress.c                      |   61 +-
 dlib/external/zlib/crc32.c                         | 1193 ++-
 dlib/external/zlib/crc32.h                         | 9877 +++++++++++++++++++-
 dlib/external/zlib/deflate.c                       | 1028 +-
 dlib/external/zlib/deflate.h                       |   80 +-
 dlib/external/zlib/gzclose.c                       |    4 +-
 dlib/external/zlib/gzguts.h                        |  102 +-
 dlib/external/zlib/gzlib.c                         |  216 +-
 dlib/external/zlib/gzread.c                        |  396 +-
 dlib/external/zlib/gzwrite.c                       |  369 +-
 dlib/external/zlib/infback.c                       |  133 +-
 dlib/external/zlib/inffast.c                       |   46 +-
 dlib/external/zlib/inffast.h                       |    2 +-
 dlib/external/zlib/inffixed.h                      |  182 +-
 dlib/external/zlib/inflate.c                       |  367 +-
 dlib/external/zlib/inflate.h                       |    7 +-
 dlib/external/zlib/inftrees.c                      |  154 +-
 dlib/external/zlib/inftrees.h                      |   16 +-
 dlib/external/zlib/trees.c                         |  692 +-
 dlib/external/zlib/uncompr.c                       |   74 +-
 dlib/external/zlib/zconf.h                         |   67 +-
 dlib/external/zlib/zlib.h                          |  845 +-
 dlib/external/zlib/zutil.c                         |  144 +-
 dlib/external/zlib/zutil.h                         |  150 +-
 55 files changed, 18508 insertions(+), 8758 deletions(-)

Revision: f28ef5001187a8742bd2
Author: Davis King
Date: Aug 10, 2026 (19:03:28 UTC)

make this test more robust

 dlib/test/timer.cpp | 271 ++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 199 insertions(+), 72 deletions(-)

Revision: ea3595370f331d3a6270
Author: N'yoma Diamond
Date: Aug 10, 2026 (13:10:42 UTC)

Gate PUBLIC compiler-specific flags by consumer compiler ID (#3157)

 dlib/CMakeLists.txt                                | 13 ++--
 dlib/cmake_utils/dlibConfig.cmake.in               | 72 ++++++++++++++++++++--
 .../set_compiler_specific_options.cmake            | 15 +++--
 .../test_for_dlib_config/CMakeLists.txt            | 37 +++++++++++
 .../test_for_dlib_config/dlib_config_test.cpp      | 10 +++
 5 files changed, 132 insertions(+), 15 deletions(-)

Revision: e5b7afe67b79ddcb332b
Author: Davis E. King
Date: Aug 09, 2026 (17:53:23 UTC)

Pybind11 free threading (#3158)

 dlib/external/pybind11/CMakeLists.txt              |  176 +-
 dlib/external/pybind11/README.dlib                 |   13 +
 dlib/external/pybind11/README.rst                  |   84 +-
 dlib/external/pybind11/include/pybind11/attr.h     |   62 +-
 .../pybind11/include/pybind11/buffer_info.h        |   35 +-
 dlib/external/pybind11/include/pybind11/cast.h     |  867 ++++++++--
 dlib/external/pybind11/include/pybind11/chrono.h   |    4 +-
 dlib/external/pybind11/include/pybind11/complex.h  |   23 +-
 .../pybind11/include/pybind11/conduit/README.txt   |   15 +
 .../include/pybind11/conduit/pybind11_conduit_v1.h |  116 ++
 .../pybind11/conduit/pybind11_platform_abi_id.h    |   87 +
 .../pybind11/conduit/wrap_include_python_h.h       |   72 +
 .../pybind11/include/pybind11/critical_section.h   |   56 +
 .../include/pybind11/detail/argument_vector.h      |  417 +++++
 .../pybind11/include/pybind11/detail/class.h       |  322 ++--
 .../pybind11/include/pybind11/detail/common.h      |  558 +++---
 .../pybind11/include/pybind11/detail/cpp_conduit.h |   75 +
 .../pybind11/include/pybind11/detail/descr.h       |   55 +
 .../detail/dynamic_raw_ptr_cast_if_possible.h      |   39 +
 .../pybind11/detail/exception_translation.h        |   71 +
 .../pybind11/detail/function_record_pyobject.h     |  192 +++
 .../detail/holder_caster_foreign_helpers.h         |  104 ++
 .../pybind11/include/pybind11/detail/init.h        |  170 +-
 .../pybind11/include/pybind11/detail/internals.h   | 1121 ++++++++----
 .../include/pybind11/detail/native_enum_data.h     |  227 +++
 .../pybind11/detail/pybind11_namespace_macros.h    |   82 +
 .../include/pybind11/detail/struct_smart_holder.h  |  398 +++++
 .../include/pybind11/detail/type_caster_base.h     |  917 +++++++---
 .../include/pybind11/detail/using_smart_holder.h   |   22 +
 .../include/pybind11/detail/value_and_holder.h     |   92 +
 .../pybind11/include/pybind11/eigen/matrix.h       |   29 +-
 .../pybind11/include/pybind11/eigen/tensor.h       |   23 +-
 dlib/external/pybind11/include/pybind11/embed.h    |   96 +-
 dlib/external/pybind11/include/pybind11/eval.h     |   17 +-
 .../pybind11/include/pybind11/functional.h         |  107 +-
 dlib/external/pybind11/include/pybind11/gil.h      |  120 +-
 .../pybind11/include/pybind11/gil_safe_call_once.h |  192 ++-
 .../pybind11/include/pybind11/gil_simple.h         |   37 +
 dlib/external/pybind11/include/pybind11/iostream.h |   44 +-
 .../pybind11/include/pybind11/native_enum.h        |   76 +
 dlib/external/pybind11/include/pybind11/numpy.h    |  467 +++--
 dlib/external/pybind11/include/pybind11/pybind11.h | 1775 +++++++++++++++-----
 dlib/external/pybind11/include/pybind11/pytypes.h  |  250 ++-
 dlib/external/pybind11/include/pybind11/stl.h      |  336 +++-
 .../pybind11/include/pybind11/stl/filesystem.h     |   48 +-
 dlib/external/pybind11/include/pybind11/stl_bind.h |   51 +-
 .../pybind11/include/pybind11/subinterpreter.h     |  291 ++++
 .../pybind11/trampoline_self_life_support.h        |   65 +
 dlib/external/pybind11/include/pybind11/typing.h   |  186 +-
 dlib/external/pybind11/include/pybind11/warnings.h |   75 +
 dlib/external/pybind11/tools/FindCatch.cmake       |    2 -
 .../pybind11/tools/FindPythonLibsNew.cmake         |   14 +-
 .../tools/codespell_ignore_lines_from_errors.py    |    5 +-
 dlib/external/pybind11/tools/libsize.py            |    2 +
 dlib/external/pybind11/tools/make_changelog.py     |   95 +-
 dlib/external/pybind11/tools/make_global.py        |   33 +
 dlib/external/pybind11/tools/pybind11Common.cmake  |  155 +-
 .../pybind11/tools/pybind11Config.cmake.in         |   13 +-
 .../tools/pybind11GuessPythonExtSuffix.cmake       |   94 ++
 .../external/pybind11/tools/pybind11NewTools.cmake |  168 +-
 dlib/external/pybind11/tools/pybind11Tools.cmake   |   56 +-
 dlib/external/pybind11/tools/pyproject.toml        |    3 -
 dlib/external/pybind11/tools/setup_global.py.in    |   63 -
 dlib/external/pybind11/tools/setup_main.py.in      |   44 -
 .../tools/test-pybind11GuessPythonExtSuffix.cmake  |  185 ++
 tools/python/CMakeLists.txt                        |   14 +-
 tools/python/src/cnn_face_detector.cpp             |    5 +
 tools/python/src/dlib.cpp                          |    2 +-
 tools/python/src/face_recognition.cpp              |    6 +-
 tools/python/src/numpy_returns.cpp                 |    2 +-
 tools/python/test/test_numpy_returns.py            |   11 +
 71 files changed, 9419 insertions(+), 2310 deletions(-)

Revision: e8d99e55570386e8cc46
Author: Compaile
Date: Jul 22, 2026 (15:44:41 UTC)

Add dependency-free ONNX export for DNNs (#3145)

 dlib/dnn.h                               |    3 +-
 dlib/dnn/onnx.h                          | 2089 ++++++++++++++++++++++++++++++
 dlib/dnn/onnx_abstract.h                 |  127 ++
 dlib/test/dnn.cpp                        |  511 +++++++-
 dlib/test/onnx_test_helpers.h            |  494 +++++++
 examples/CMakeLists.txt                  |    1 +
 examples/dnn_imagenet_export_onnx_ex.cpp |  118 ++
 7 files changed, 3340 insertions(+), 3 deletions(-)

Revision: 19f6be75a8209abb1cd1
Author: Kane Scipioni
Date: Jul 19, 2026 (11:05:22 UTC)

Allow setting sockstreambuf buffer size and max putback (#3154)

 dlib/sockstreambuf/sockstreambuf.cpp        | 10 ++--
 dlib/sockstreambuf/sockstreambuf.h          | 74 ++++++++++++-----------
 dlib/sockstreambuf/sockstreambuf_abstract.h | 28 ++++++++-
 dlib/test/sockstreambuf.cpp                 | 93 +++++++++++++++++++++++++++++
 4 files changed, 164 insertions(+), 41 deletions(-)

Revision: 71d98f0e32213d42cf26
Author: Kane Scipioni
Date: Jul 15, 2026 (13:34:34 UTC)

Added support for unix sockets (#3152)

 dlib/sockets/sockets_extensions.cpp        |  18 +
 dlib/sockets/sockets_extensions.h          |   6 +
 dlib/sockets/sockets_extensions_abstract.h |  16 +
 dlib/sockets/sockets_kernel_1.cpp          | 517 ++++++++++++++++++++++------
 dlib/sockets/sockets_kernel_1.h            | 160 ++++++++-
 dlib/sockets/sockets_kernel_2.cpp          | 527 +++++++++++++++++++++--------
 dlib/sockets/sockets_kernel_2.h            | 137 +++++++-
 dlib/sockets/sockets_kernel_abstract.h     | 192 ++++++++++-
 dlib/test/sockets2.cpp                     |  86 ++++-
 9 files changed, 1388 insertions(+), 271 deletions(-)

Revision: ced441fdbc8b2c0ec02b
Author: Kane Scipioni
Date: Jun 27, 2026 (12:56:15 UTC)

use auto for sorted_rects iterator (#3150)

 dlib/image_processing/scan_image_pyramid_tools.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 3d40bf5790ca9073c160
Author: Julien Schueller
Date: May 07, 2026 (04:12:44 UTC)

lbfgs_search_strategy: Fix gcc 16 warning (#3144)

 dlib/optimization/optimization_search_strategies.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 779eb39b53f68679bd80
Author: Kane Scipioni
Date: May 03, 2026 (14:15:34 UTC)

Support for runtime CPU/CUDA selection (#3060)

 dlib/cuda/cuda_dlib.cu        |   69 ++-
 dlib/cuda/cuda_dlib.h         |    6 +
 dlib/cuda/curand_dlibapi.cpp  |   12 +-
 dlib/cuda/gpu_data.cpp        |   22 +-
 dlib/cuda/gpu_data.h          |   24 +-
 dlib/cuda/gpu_data_abstract.h |   15 +-
 dlib/cuda/tensor.h            |   57 +-
 dlib/cuda/tensor_abstract.h   |   12 +-
 dlib/cuda/tensor_tools.cpp    | 1183 +++++++++++++++++++++++------------------
 dlib/cuda/tensor_tools.h      |  170 +++++-
 dlib/dnn/core_abstract.h      |   17 +
 dlib/dnn/loss.h               |   60 ++-
 dlib/test/cublas.cpp          |    2 +
 dlib/test/dnn.cpp             |  911 +++++++++++++++----------------
 14 files changed, 1508 insertions(+), 1052 deletions(-)

Revision: 173d93ed9cc745a26af3
Author: Davis King
Date: Apr 25, 2026 (08:13:07 UTC)

Do some cleanup

 dlib/data_io/image_dataset_metadata.cpp | 32 ++++++++++++++-
 dlib/data_io/image_dataset_metadata.h   | 37 ++++++++---------
 dlib/test/data_io.cpp                   | 72 ++++++++++++++++++++++++++++++++-
 tools/imglab/src/metadata_editor.cpp    | 48 ++++++++++++++++------
 tools/imglab/src/metadata_editor.h      | 11 +++--
 5 files changed, 159 insertions(+), 41 deletions(-)

Revision: 55e8b46fa207b6eda8f5
Author: Yasin GÖZÜBÜYÜK
Date: Apr 25, 2026 (22:12:52 UTC)

Add undo and redo functionality to imglab (#606) (#3143)

 dlib/data_io/image_dataset_metadata.h | 21 ++++++++++
 tools/imglab/src/metadata_editor.cpp  | 79 +++++++++++++++++++++++++++++++++++
 tools/imglab/src/metadata_editor.h    |  7 ++++
 3 files changed, 107 insertions(+)

Revision: de23db42df8684be7373
Author: Davis King
Date: Mar 29, 2026 (09:06:42 UTC)

set back to .99

 dlib/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 9b09738b26276eb50cb9
Author: Davis King
Date: Mar 29, 2026 (09:05:49 UTC)

tag 20.0.1

 dlib/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 0828f313d4221f1f24d8
Author: Alex Shek
Date: Mar 18, 2026 (14:56:17 UTC)

fix(test/string): fix gcc 16 build issue (#3137)

 dlib/test/string.cpp    | 4 ++--
 dlib/test/tokenizer.cpp | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

Revision: 8f29efb2a1028c95f023
Author: Davis King
Date: Mar 09, 2026 (10:28:34 UTC)

Improve numerical robustness of find_min_trust_region()

 dlib/optimization/optimization_trust_region.h | 10 +++-
 dlib/test/trust_region.cpp                    | 75 +++++++++++++++++++++++++++
 2 files changed, 83 insertions(+), 2 deletions(-)

Revision: 2a70e7b318bda778f863
Author: Kane Scipioni
Date: Feb 14, 2026 (13:41:38 UTC)

Update path to mkl and kiss fft headers (#3136)

 dlib/test/fft.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Revision: 2a878a651c7f85d9775b
Author: Juha Reunanen
Date: Jan 01, 2026 (21:02:39 UTC)

Problem: on Blackwell GPUs, functions such as `cudnnFindConvolutionBackwardDataAlgorithm` may run out of stack space on Windows (leading to a stack overflow error) (#3130)

 examples/CMakeLists.txt | 10 ++++++++++
 1 file changed, 10 insertions(+)

Revision: 07c1e739fada4aa6a524
Author: joelnn
Date: Dec 28, 2025 (10:38:13 UTC)

Fix cuDNN convolution precision on Ampere+ GPUs (#3127)

 dlib/cuda/cudnn_dlibapi.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

Revision: 60adc6551273c92a098e
Author: Davis King
Date: Dec 28, 2025 (10:26:10 UTC)

Set test threshold more appropriately so it doesn't randomly fail.

 dlib/test/dnn.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Revision: 98016e81d2ed47751098
Author: joelnn
Date: Dec 28, 2025 (09:57:51 UTC)

Fix flaky holder table test by increasing max function calls (#3129)

 tools/python/test/test_global_optimization.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Revision: 0f86c8856813589e01d6
Author: joelnn
Date: Dec 28, 2025 (09:48:50 UTC)

Fix ACT layer gradient computation on CUDA (#3128)

 dlib/cuda/cpu_dlib.cpp     |  7 +++++++
 dlib/cuda/cpu_dlib.h       |  2 ++
 dlib/cuda/cuda_dlib.cu     |  9 +++++++++
 dlib/cuda/cuda_dlib.h      |  2 ++
 dlib/cuda/tensor_tools.cpp | 10 ++++++----
 dlib/cuda/tensor_tools.h   |  9 ++++++---
 dlib/dnn/layers.h          | 30 ++----------------------------
 7 files changed, 34 insertions(+), 35 deletions(-)

Revision: 23d73beb62b3673d13b6
Author: SamareshSingh
Date: Nov 22, 2025 (03:34:06 UTC)

Fix callable detection to support functools.partial and all callable objects (#3121)

 tools/python/src/global_optimization.cpp | 44 ++++++++++++++++++++++++++++----
 1 file changed, 39 insertions(+), 5 deletions(-)

Revision: 20b217246953268e1e2d
Author: Cydral
Date: Oct 11, 2025 (23:04:01 UTC)

Implementation of ARC-AGI dataset loader (#3115)

 dlib/data_io.h                  |   1 +
 dlib/data_io/arc_agi.h          | 909 ++++++++++++++++++++++++++++++++++++++++
 dlib/data_io/arc_agi_abstract.h | 302 +++++++++++++
 3 files changed, 1212 insertions(+)

Revision: 2ac06f9bbe52b769fab8
Author: Juha Reunanen
Date: Sep 29, 2025 (06:06:26 UTC)

Improve numerical stability of batch normalization on CPUs (#3113)

 dlib/cuda/cpu_dlib.cpp | 90 ++++++++++++++++++++++++++------------------------
 dlib/test/dnn.cpp      |  4 +--
 2 files changed, 48 insertions(+), 46 deletions(-)

Revision: d890f7d2c5bbbaaf2026
Author: Cydral
Date: Sep 28, 2025 (18:31:41 UTC)

Add Adaptive Computation Time (ACT) layer (#3111)

 dlib/cuda/cpu_dlib.cpp     | 147 +++++++++++++++++
 dlib/cuda/cpu_dlib.h       |  48 ++++++
 dlib/cuda/cuda_dlib.cu     | 260 ++++++++++++++++++++++++++++-
 dlib/cuda/cuda_dlib.h      |  48 ++++++
 dlib/cuda/tensor_tools.cpp |  84 ++++++++++
 dlib/cuda/tensor_tools.h   | 126 +++++++++++++-
 dlib/dnn/layers.h          | 398 ++++++++++++++++++++++++++++++++++++++++++++-
 dlib/dnn/layers_abstract.h | 119 ++++++++++++++
 dlib/test/dnn.cpp          | 203 ++++++++++++++---------
 9 files changed, 1357 insertions(+), 76 deletions(-)

Revision: 35a8e1fa3fa1bd168911
Author: Juha Reunanen
Date: Sep 28, 2025 (20:19:52 UTC)

Improve the somewhat flaky `test_loss_multibinary_log` by avoiding samples very close to class boundaries (#3112)

 dlib/test/dnn.cpp | 45 +++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 41 insertions(+), 4 deletions(-)

Revision: 5ce4891406d32d8b49ee
Author: Glenn
Date: Sep 06, 2025 (19:36:44 UTC)

Replace FindCUDA with FindCUDAToolkit (fix #2833) (#3090)

 dlib/CMakeLists.txt                            | 249 +++++++------------------
 dlib/cmake_utils/FindCUDNN.cmake               |  81 ++++++++
 dlib/cmake_utils/dlibConfig.cmake.in           |   4 +
 dlib/cmake_utils/test_for_cuda/CMakeLists.txt  |  14 --
 dlib/cmake_utils/test_for_cuda/cuda_test.cu    |  21 ---
 dlib/cmake_utils/test_for_cudnn/CMakeLists.txt |  18 --
 dlib/cmake_utils/test_for_cudnn/find_cudnn.txt |  24 ---
 tools/python/dlib/__init__.py.in               |  15 +-
 8 files changed, 161 insertions(+), 265 deletions(-)

Revision: ffe78814638d100cbd12
Author: pfeatherstone
Date: Aug 22, 2025 (02:47:16 UTC)

[unicode] fixed warning in convert_mbstring_to_wstring() (#3110)

 dlib/unicode/unicode.cpp | 33 +++++++++++++++++++++++++--------
 1 file changed, 25 insertions(+), 8 deletions(-)

Revision: 0d2153abd0da7f9bba81
Author: pfeatherstone
Date: Aug 13, 2025 (14:16:36 UTC)

FFMpeg 7.1 API (#3105)

 dlib/media/ffmpeg_muxer.h | 92 +++++++++++++++++++++++++++++++++--------------
 1 file changed, 65 insertions(+), 27 deletions(-)

Revision: fb0865ba8c7f04ee1f8f
Author: ribbon-otter
Date: Aug 11, 2025 (-02:25:08 UTC)

fix -Wcast-user-defined (#3103)

 dlib/dnn/layers.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Revision: 4cf8f5759fe715b0defb
Author: Davis E. King
Date: Aug 10, 2025 (17:09:12 UTC)

update python packaging to work with newer toolchains (#3102)

 tools/python/CMakeLists.txt | 7 -------
 1 file changed, 7 deletions(-)

Revision: 561759c7eb7f7506930b
Author: Davis King
Date: Aug 10, 2025 (15:25:55 UTC)

Suppress a spurious warning in unit tests and make colors not always output

 dlib/test/CMakeLists.txt | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Revision: 56b806d1d389ea016c84
Author: Davis King
Date: Aug 09, 2025 (08:21:07 UTC)

fix up build errors with the regular makefile and non-cmake builds.

 dlib/all/source.cpp            |  4 +++-
 dlib/image_loader/png_loader.h | 10 ++--------
 dlib/test/makefile             |  2 +-
 3 files changed, 6 insertions(+), 10 deletions(-)

Revision: e93a0ef1d81b3747b84d
Author: ribbon-otter
Date: Aug 09, 2025 (-02:58:04 UTC)

std::aligned_storage_t is deprecated in c++23 (#3100)

 dlib/any/storage.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Revision: 043bed89bd5e922446b0
Author: Sandro
Date: Aug 04, 2025 (15:29:58 UTC)

Account for change in ref count in Python 3.14+ (#3098)

 tools/python/test/test_numpy_returns.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

Revision: 36f42268f662c01ab867
Author: Davis King
Date: Jul 24, 2025 (19:31:57 UTC)

cleanup

 dlib/image_processing/full_object_detection.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Revision: c1fbfb59fa7ee82752b7
Author: Naresh Jagadeesan
Date: Jul 25, 2025 (14:31:27 UTC)

full_object_detection: API Support for dpoint (#2183) (#3095)

 dlib/data_io/load_image_dataset.h                  |  2 +-
 dlib/image_processing/full_object_detection.h      | 40 ++++++++++++++++------
 .../full_object_detection_abstract.h               | 22 ++++++++----
 dlib/image_processing/scan_image_pyramid.h         |  2 +-
 dlib/image_transforms/interpolation.h              |  2 +-
 dlib/test/object_detector.cpp                      |  2 +-
 6 files changed, 49 insertions(+), 21 deletions(-)

Revision: 52d38c779888b84e0936
Author: Davis King
Date: Jul 24, 2025 (19:23:05 UTC)

updated docs

 dlib/dnn/layers_abstract.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 7889cf3a2ad7e89ecfd0
Author: Cydral
Date: Jul 25, 2025 (07:22:46 UTC)

Add transformer example with RoPE and MoE-like mechanisms (#3078)

 dlib/dnn/layers.h                       |   37 +-
 dlib/tokenizer/bpe_tokenizer.h          |  697 +++++++++-------
 dlib/tokenizer/bpe_tokenizer_abstract.h |   46 +-
 examples/CMakeLists.txt                 |    1 +
 examples/slm_advanced_train_ex.cpp      | 1362 +++++++++++++++++++++++++++++++
 5 files changed, 1812 insertions(+), 331 deletions(-)

Revision: 131e46e4c5fb75a89a3c
Author: Richard Barnes
Date: Jun 28, 2025 (07:44:52 UTC)

`throw()` -> `noexcept` (#3092)

 dlib/any/any_abstract.h                         |  2 +-
 dlib/cmd_line_parser/cmd_line_parser_check_1.h  |  2 +-
 dlib/cmd_line_parser/cmd_line_parser_kernel_1.h |  2 +-
 dlib/config_reader/config_reader_kernel_1.h     |  4 ++--
 dlib/error.h                                    |  6 +++---
 dlib/misc_api/misc_api_kernel_1.h               |  2 +-
 dlib/std_allocator.h                            | 14 +++++++-------
 dlib/svm/one_vs_all_trainer.h                   |  2 +-
 dlib/svm/one_vs_one_trainer.h                   |  2 +-
 dlib/type_safe_union/type_safe_union_kernel.h   |  2 +-
 10 files changed, 19 insertions(+), 19 deletions(-)

Revision: 3cb1f350021b5d64771d
Author: Juha Reunanen
Date: Jun 21, 2025 (08:19:26 UTC)

Problem: reading large images (in my case, it was a 40792x20480 RGBA PNG one) causes a crash, when the product row-number * width-step overflows a 32-bit integer (#3091)

 dlib/array2d/array2d_generic_image.h   |  2 +-
 dlib/array2d/array2d_kernel.h          |  2 +-
 dlib/array2d/array2d_kernel_abstract.h |  2 +-
 dlib/image_processing/generic_image.h  | 16 ++++++++--------
 dlib/image_transforms/interpolation.h  |  8 ++++----
 dlib/matrix/matrix_generic_image.h     |  2 +-
 dlib/opencv/cv_image.h                 |  4 ++--
 dlib/opencv/cv_image_abstract.h        |  2 +-
 dlib/python/numpy_image.h              |  2 +-
 9 files changed, 20 insertions(+), 20 deletions(-)

Revision: d0f41798be7a64cb15f9
Author: gmm
Date: Jun 17, 2025 (27:24:26 UTC)

fix the miss of including matlab ut library (#3089)

 dlib/matlab/cmake_mex_wrapper | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Revision: 79e2d1373add8d9e265d
Author: Adrià
Date: Jun 13, 2025 (20:11:32 UTC)

Fix: Correct YOLO loss gradient for x,y coordinates (#3088)

 dlib/dnn/loss.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Revision: 81cd1f19166248517ef4
Author: Juha Reunanen
Date: Jun 09, 2025 (05:06:54 UTC)

Minor optimization: `emplace_back` neighbors (#3086)

 dlib/image_transforms/label_connected_blobs.h | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

Revision: a078e810f7e653daa417
Author: ribbon-otter
Date: Jun 01, 2025 (11:50:20 UTC)

remove std::move where clang warns of pessimizing-move (#3080)

 dlib/any/any.h     | 2 +-
 dlib/any/storage.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Revision: 278ac4ce4d6f4c5ea484
Author: Davis King
Date: May 27, 2025 (16:15:07 UTC)

Record last changeset and set PATCH version to 99

 dlib/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Revision: 2e0b3846b4dcd0953951
Author: Davis King
Date: May 27, 2025 (16:07:10 UTC)

Created release v20.0

 dlib/CMakeLists.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)