diff --git a/.gitignore b/.gitignore index 226c1608..1c23eb5f 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,31 @@ __pycache__/ /examples/cpp/lib/ /examples/lib/ +/examples/bin +/examples/c/bin +/examples/cpp/bin + +/examples/lib +/examples/c/lib +/examples/cpp/lib + +projects/util/vc10-generated/ + +perf_test/ + +scripts/internal/ + +/include/b64/ +/include/shwild/ +/include/xcontract/ +/include/xcover/ +/include/xtests/ +/src/b64/ +/src/shwild/ +/src/xcontract/ +/src/xcover/ +/src/xtests/ + Debug Multithreaded Dll/ Debug Multithreaded DLL/ Debug Multithreaded pseudoUnix/ diff --git a/CHANGES.md b/CHANGES.md index edead870..e9b96890 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,10 @@ # STLSoft - CHANGES +## 1.11.2-alpha1 - 10th October 2026 + + + ## 1.11.1-rc6 - 21st September 2026 * CMake/CI — optional **ACE** discovery (**cmake/FindACE.cmake**, **NO_ACE** / **prepare_cmake.sh --no-ace**); dedicated **cell-ace** job (**with-ace**); @@ -25,7 +29,7 @@ * **stlsoft/api/external/string.h** — case-insensitive aliases (`STLSOFT_API_EXTERNAL_string_stricmp` and kin) for Clang as well as GCC, and for macOS (`__APPLE__`); added **test.unit.stlsoft.api.external.string**; -## 1.11.1-rc5 - 4th August 2026 +## 1.11.1-rc5 - 9th August 2026 * Fixed `stlsoft::basic_simple_string<>#resize()` — expanding a non-empty string no longer over-reads the source buffer (MinGW unit-test segfault in **test.unit.stlsoft.string.simple_string**); * Converted **CHANGES.txt** to **CHANGES.md** and removed **HISTORY.md**; @@ -36,6 +40,7 @@ * CMake — minimum version **3.20**; **BUILD_TESTING** option; project homepage URL; patch/revision version regex; * Project boilerplate — **.gitattributes**, **.vimrc**, **.vscode/settings.json**; * **test.unit.versions** — aligned with **1.11.1-rc5** (**_STLSOFT_VER_1_11_1_RC5**); +* All unit/component test assertions use xTests Terse API; ## 1.11.1-rc4 - 29th July 2026 diff --git a/NEWS.md b/NEWS.md index 4c133f6c..b32fbdad 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,7 @@ | Date | News Item | Details | | ------------------- | ----------------------------------- | ------- | +| 10th October 2026 | 1.11.2-alpha1 | - | | 21st September 2026 | Release of [STLSoft 1.11.1-rc6](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc6) | ACE/ATL/MFC CI; Clang/macOS `stricmp` aliases | | 4th August 2026 | Release of [STLSoft 1.11.1-rc5](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc5) | `basic_simple_string<>#resize()`; **CHANGES.md**; docs | | 29th July 2026 | Release of [STLSoft 1.11.1-rc4](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc4) | GitHub Actions CI; VC++ 18.x; MinGW | diff --git a/TODO.md b/TODO.md index b1564d42..846a1ab5 100644 --- a/TODO.md +++ b/TODO.md @@ -31,9 +31,7 @@ * [x] ~~~ACESTL: implement `invoke_ACE_OS_snprintf` in terms of `stlsoft_C_snprintf()`~~~ - ✅; * [x] ~~~CI: exercise **ATLSTL** on a Windows cell~~~ - ✅; * [x] ~~~Unit/component tests — adopt **xTests** terse API throughout~~~ - ✅; -* [ ] Remove **WTL**; -* [ ] Resolve finally the structure and semantics of the top-level execution scripts (**run_all_unit_tests.sh**, **run_all_scratch_tests.sh**, **run_all_examples.sh**, **execute_performance_tests.sh**, and Windows `.cmd` counterparts) on all platforms — discovery globs, execute-bit / artifact restore, zero-match failure, verbosity, and CI wiring; -* [ ] bring in some essential unit-tests from interal repo; +* [x] ~~~bring in some essential unit-tests from internal repo~~~ - ✅; ### 1.11.2 @@ -43,6 +41,15 @@ Dedicated increment: **test analysis and coverage only** — no other product ch * [ ] Existing test consistency (deep analysis); * [ ] Complete coverage of currently tested components (improvement / completion); * [ ] Coverage of currently untested components; +* [ ] Remove **WTL**; +* [ ] bring in some essential unit-tests from internal repo; +* [ ] Resolve finally the structure and semantics of the top-level execution scripts (**run_all_unit_tests.sh**, **run_all_scratch_tests.sh**, **run_all_examples.sh**, **execute_performance_tests.sh**, and Windows `.cmd` counterparts) on all platforms — discovery globs, execute-bit / artifact restore, zero-match failure, verbosity, and CI wiring; + +Must resolve before finalising the **1.11.2** release: + +* [ ] **CMake scripts:** Diff all CMake script files (**CMakeLists.txt**, **\*.cmake**) since **1.11.1-rc4**; discuss each change — likely adding comments in the scripts and/or notes in the project documentation guidelines — so the newer techniques are clearly explained; +* [ ] **Build helper scripts:** Thorough review of the build helper scripts (especially the run scripts) and the means by which executable files are identified; separate those aspects correctly and clearly. Same concern applies across other SIS freelib projects. Scope includes discovery globs, execute-bit / artifact restore, zero-match failure, verbosity, and CI wiring for **run_all_unit_tests.sh**, **run_all_scratch_tests.sh**, **run_all_examples.sh**, **execute_performance_tests.sh**, and Windows `.cmd` counterparts; +* [ ] **CI configuration:** Thorough review of **ci.yml** and **ci-cell.yml** — identify and separate the various aspects correctly and clearly. Same concern applies across other SIS freelib projects; ### 1.11.3 diff --git a/include/acestl/acestl.hpp b/include/acestl/acestl.hpp index d2a87aab..dd6ff1ec 100644 --- a/include/acestl/acestl.hpp +++ b/include/acestl/acestl.hpp @@ -50,7 +50,7 @@ # define ACESTL_VER_ACESTL_HPP_ACESTL_MAJOR 1 # define ACESTL_VER_ACESTL_HPP_ACESTL_MINOR 8 # define ACESTL_VER_ACESTL_HPP_ACESTL_REVISION 2 -# define ACESTL_VER_ACESTL_HPP_ACESTL_EDIT 57 +# define ACESTL_VER_ACESTL_HPP_ACESTL_EDIT 58 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ /** \file acestl/acestl.hpp @@ -497,9 +497,9 @@ typedef as_int32_t int32_t; //!< 32-bit integer typedef as_sint32_t sint32_t; //!< 32-bit signed integer typedef as_uint32_t uint32_t; //!< 32-bit unsigned integer # ifdef STLSOFT_CF_64BIT_INT_SUPPORT - typedef as_int64_t int64_t; //!< 64-bit integer - typedef as_sint64_t sint64_t; //!< 64-bit signed integer - typedef as_uint64_t uint64_t; //!< 64-bit unsigned integer +typedef as_int64_t int64_t; //!< 64-bit integer +typedef as_sint64_t sint64_t; //!< 64-bit signed integer +typedef as_uint64_t uint64_t; //!< 64-bit unsigned integer # endif /* STLSOFT_CF_64BIT_INT_SUPPORT */ //typedef as_short_t short_t; //!< short integer typedef as_int_t int_t; //!< integer diff --git a/include/inetstl/inetstl.h b/include/inetstl/inetstl.h index db1fe52e..d321faeb 100644 --- a/include/inetstl/inetstl.h +++ b/include/inetstl/inetstl.h @@ -253,7 +253,7 @@ #elif defined(STLSOFT_COMPILER_IS_INTEL) /* ******************************* Intel ******************************* */ - # if (__INTEL_COMPILER < 700) +# if (__INTEL_COMPILER < 700) # error Versions of Intel C++ prior to 7.0 are not supported by the InetSTL libraries # endif /* __INTEL_COMPILER */ diff --git a/include/stlsoft/stlsoft.h b/include/stlsoft/stlsoft.h index 1d7130cb..6e237a0c 100644 --- a/include/stlsoft/stlsoft.h +++ b/include/stlsoft/stlsoft.h @@ -5,7 +5,7 @@ * and platform discriminations, and definitions of types. * * Created: 15th January 2002 - * Updated: 21st September 2026 + * Updated: 10th October 2026 * * Home: http://stlsoft.org/ * @@ -421,12 +421,14 @@ # define _STLSOFT_VER_1_11_1_RC4 0x010b01c4 /*!< Version 1.11.1 rc 4 (1st July 2026) */ # define _STLSOFT_VER_1_11_1_RC5 0x010b01c5 /*!< Version 1.11.1 rc 5 (4th August 2026) */ # define _STLSOFT_VER_1_11_1_RC6 0x010b01c6 /*!< Version 1.11.1 rc 6 (21st September 2026) */ + +# define _STLSOFT_VER_1_11_2_A01 0x010b0241 /*!< Version 1.11.1 alpha 2 (10th October 2026) */ #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ #define _STLSOFT_VER_MAJOR 1 #define _STLSOFT_VER_MINOR 11 -#define _STLSOFT_VER_PATCH 1 -#define _STLSOFT_VER_ALPHABETA 0xc6 +#define _STLSOFT_VER_PATCH 2 +#define _STLSOFT_VER_ALPHABETA 0x41 #define _STLSOFT_VER \ (0\ @@ -2355,10 +2357,10 @@ typedef STLSOFT_UI64_T_BASE_TYPE STLSOFT_UI64_T_BASE_ /* ptr-bit */ #ifdef STLSOFT_SPTR_T_BASE_TYPE - typedef STLSOFT_SPTR_T_BASE_TYPE STLSOFT_SPTR_T_BASE_TYPE_; +typedef STLSOFT_SPTR_T_BASE_TYPE STLSOFT_SPTR_T_BASE_TYPE_; #endif #ifdef STLSOFT_UPTR_T_BASE_TYPE - typedef STLSOFT_UPTR_T_BASE_TYPE STLSOFT_UPTR_T_BASE_TYPE_; +typedef STLSOFT_UPTR_T_BASE_TYPE STLSOFT_UPTR_T_BASE_TYPE_; #endif #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ diff --git a/include/unixstl/filesystem/filesystem_traits.hpp b/include/unixstl/filesystem/filesystem_traits.hpp index b8aab10e..fd9b3bb1 100644 --- a/include/unixstl/filesystem/filesystem_traits.hpp +++ b/include/unixstl/filesystem/filesystem_traits.hpp @@ -5,7 +5,7 @@ * Unicode specialisations thereof. * * Created: 15th November 2002 - * Updated: 6th May 2025 + * Updated: 10th October 2026 * * Thanks: To Sergey Nikulov, for spotting a preprocessor typo that broke * GCC -pedantic; to Michal Makowski and Zar Eindl for reporting @@ -61,7 +61,7 @@ # define UNIXSTL_VER_UNIXSTL_FILESYSTEM_HPP_FILESYSTEM_TRAITS_MAJOR 4 # define UNIXSTL_VER_UNIXSTL_FILESYSTEM_HPP_FILESYSTEM_TRAITS_MINOR 16 # define UNIXSTL_VER_UNIXSTL_FILESYSTEM_HPP_FILESYSTEM_TRAITS_REVISION 1 -# define UNIXSTL_VER_UNIXSTL_FILESYSTEM_HPP_FILESYSTEM_TRAITS_EDIT 188 +# define UNIXSTL_VER_UNIXSTL_FILESYSTEM_HPP_FILESYSTEM_TRAITS_EDIT 189 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ @@ -1726,7 +1726,7 @@ struct filesystem_traits } private: -#if _STLSOFT_VER >= 0x010b01ff +#if _STLSOFT_VER >= 0x010b03ff # error Sort get_root_len_() properly #endif diff --git a/include/unixstl/unixstl.h b/include/unixstl/unixstl.h index 390583b5..830a7383 100644 --- a/include/unixstl/unixstl.h +++ b/include/unixstl/unixstl.h @@ -5,7 +5,7 @@ * platform discriminations, and definitions of types. * * Created: 15th January 2002 - * Updated: 17th September 2026 + * Updated: 10th October 2026 * * Home: http://stlsoft.org/ * @@ -51,7 +51,7 @@ # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_MAJOR 3 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_MINOR 11 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_REVISION 3 -# define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_EDIT 130 +# define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_EDIT 131 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ /** \file unixstl/unixstl.h @@ -801,9 +801,9 @@ typedef us_int32_t int32_t; /*!< typedef us_sint32_t sint32_t; /*!< 32-bit signed integer */ typedef us_uint32_t uint32_t; /*!< 32-bit unsigned integer */ # ifdef STLSOFT_CF_64BIT_INT_SUPPORT - typedef us_int64_t int64_t; /*!< 64-bit integer */ - typedef us_sint64_t sint64_t; /*!< 64-bit signed integer */ - typedef us_uint64_t uint64_t; /*!< 64-bit unsigned integer */ +typedef us_int64_t int64_t; /*!< 64-bit integer */ +typedef us_sint64_t sint64_t; /*!< 64-bit signed integer */ +typedef us_uint64_t uint64_t; /*!< 64-bit unsigned integer */ # endif /* STLSOFT_CF_64BIT_INT_SUPPORT */ /* typedef us_short_t short_t; */ /*!< short integer */ typedef us_int_t int_t; /*!< integer */ diff --git a/include/winstl/conversion/windows_type_conversions.hpp b/include/winstl/conversion/windows_type_conversions.hpp index 1d165959..824152d1 100644 --- a/include/winstl/conversion/windows_type_conversions.hpp +++ b/include/winstl/conversion/windows_type_conversions.hpp @@ -1,14 +1,14 @@ /* ///////////////////////////////////////////////////////////////////////// - * File: winstl/conversion/windows_type_conversions.hpp (originally MWWinCmn.h, ::SynesisWin) + * File: winstl/conversion/windows_type_conversions.hpp (originally MWWinCmn.h, ::SynesisWin) * - * Purpose: Type conversions for Windows. + * Purpose: Type conversions for Windows. * - * Created: 1st June 2003 - * Updated: 20th March 2025 + * Created: 1st June 2003 + * Updated: 18th August 2026 * - * Home: http://stlsoft.org/ + * Home: http://stlsoft.org/ * - * Copyright (c) 2019-2025, Matthew Wilson and Synesis Information Systems + * Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems * Copyright (c) 2003-2019, Matthew Wilson and Synesis Software * All rights reserved. * @@ -55,7 +55,7 @@ # define WINSTL_VER_WINSTL_CONVERSION_HPP_WINDOWS_TYPE_CONVERSIONS_MAJOR 4 # define WINSTL_VER_WINSTL_CONVERSION_HPP_WINDOWS_TYPE_CONVERSIONS_MINOR 1 # define WINSTL_VER_WINSTL_CONVERSION_HPP_WINDOWS_TYPE_CONVERSIONS_REVISION 6 -# define WINSTL_VER_WINSTL_CONVERSION_HPP_WINDOWS_TYPE_CONVERSIONS_EDIT 51 +# define WINSTL_VER_WINSTL_CONVERSION_HPP_WINDOWS_TYPE_CONVERSIONS_EDIT 52 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ @@ -201,11 +201,11 @@ typedef STLSOFT_NS_QUAL(union_caster) LRESULT2HICO /** Checked conversion from LPARAM to LPNMHDR. * \ingroup group__library__Conversion */ - typedef union_caster LPARAM2LPNMHDR; +typedef union_caster LPARAM2LPNMHDR; /** Checked conversion from LONG to HTREEITEM. * \ingroup group__library__Conversion */ - typedef union_caster LONG2HTREEITEM; +typedef union_caster LONG2HTREEITEM; #endif /* _INC_COMMCTRL || _COMMCTRL_H */ /* ////////////////////////////////////////////////////////////////////// */ diff --git a/include/winstl/registry/util/defs.hpp b/include/winstl/registry/util/defs.hpp index d9bcbb66..bc24a593 100644 --- a/include/winstl/registry/util/defs.hpp +++ b/include/winstl/registry/util/defs.hpp @@ -1,14 +1,15 @@ /* ///////////////////////////////////////////////////////////////////////// - * File: winstl/registry/util/defs.hpp + * File: winstl/registry/util/defs.hpp * - * Purpose: Contains common type and feature discriminations for the Registry Library. + * Purpose: Contains common type and feature discriminations for the + * Registry Library. * - * Created: 19th January 2002 - * Updated: 20th March 2025 + * Created: 19th January 2002 + * Updated: 18th August 2026 * - * Home: http://stlsoft.org/ + * Home: http://stlsoft.org/ * - * Copyright (c) 2019-2025, Matthew Wilson and Synesis Information Systems + * Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems * Copyright (c) 2002-2019, Matthew Wilson and Synesis Software * All rights reserved. * @@ -54,7 +55,7 @@ # define WINSTL_VER_WINSTL_REGISTRY_UTIL_HPP_DEFS_MAJOR 4 # define WINSTL_VER_WINSTL_REGISTRY_UTIL_HPP_DEFS_MINOR 0 # define WINSTL_VER_WINSTL_REGISTRY_UTIL_HPP_DEFS_REVISION 6 -# define WINSTL_VER_WINSTL_REGISTRY_UTIL_HPP_DEFS_EDIT 73 +# define WINSTL_VER_WINSTL_REGISTRY_UTIL_HPP_DEFS_EDIT 74 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ @@ -224,19 +225,19 @@ const ws_size_t CCH_REG_API_AUTO_BUFFER = 512; // ANSI /// String type for ANSI character encoding used by the Registry library. - typedef STLSOFT_NS_QUAL(basic_simple_string) reg_string_a_t; +typedef STLSOFT_NS_QUAL(basic_simple_string) reg_string_a_t; # define _WINSTL_REG_STRING_STRING_A_DEFINED // Unicode /// String type for Unicode character encoding used by the Registry library. - typedef STLSOFT_NS_QUAL(basic_simple_string) reg_string_w_t; +typedef STLSOFT_NS_QUAL(basic_simple_string) reg_string_w_t; // TCHAR /// String type for TCHAR character encoding used by the Registry library. - typedef STLSOFT_NS_QUAL(basic_simple_string) reg_string_t; +typedef STLSOFT_NS_QUAL(basic_simple_string) reg_string_t; # define _WINSTL_REG_STRING_STRING_W_DEFINED diff --git a/test/unit/inetstl/shims/access/string/test.unit.inetstl.shims.access.string.std.in_addr/entry.cpp b/test/unit/inetstl/shims/access/string/test.unit.inetstl.shims.access.string.std.in_addr/entry.cpp index 82e834d7..4044d822 100644 --- a/test/unit/inetstl/shims/access/string/test.unit.inetstl.shims.access.string.std.in_addr/entry.cpp +++ b/test/unit/inetstl/shims/access/string/test.unit.inetstl.shims.access.string.std.in_addr/entry.cpp @@ -4,7 +4,7 @@ * Purpose: Unit-tests for string-access-shims for `struct in_addr`. * * Created: ... - * Updated: 9th August 2026 + * Updated: 18th August 2026 * * ////////////////////////////////////////////////////////////////////// */ @@ -72,7 +72,7 @@ namespace { * types */ - namespace { +namespace { typedef std::basic_string string_a_t; typedef std::basic_string string_w_t; diff --git a/test/unit/stlsoft/iterator/test.unit.stlsoft.iterator.FILE_iterator/entry.cpp b/test/unit/stlsoft/iterator/test.unit.stlsoft.iterator.FILE_iterator/entry.cpp index 0c951fa1..f2e0a400 100644 --- a/test/unit/stlsoft/iterator/test.unit.stlsoft.iterator.FILE_iterator/entry.cpp +++ b/test/unit/stlsoft/iterator/test.unit.stlsoft.iterator.FILE_iterator/entry.cpp @@ -17,7 +17,7 @@ * test component header file include(s) */ - #include +#include /* ///////////////////////////////////// * general includes diff --git a/test/unit/test.unit.versions/entry.cpp b/test/unit/test.unit.versions/entry.cpp index 83be0623..c6544d8f 100644 --- a/test/unit/test.unit.versions/entry.cpp +++ b/test/unit/test.unit.versions/entry.cpp @@ -4,7 +4,7 @@ * Purpose: Unit-tests for versions * * Created: 23rd August 2025 - * Updated: 21st September 2026 + * Updated: 10th October 2026 * * ////////////////////////////////////////////////////////////////////// */ @@ -133,7 +133,7 @@ namespace { static void TEST__STLSOFT_VER() { - TEST_INT_EQ(_STLSOFT_VER_1_11_1_RC6, _STLSOFT_VER); + TEST_INT_EQ(_STLSOFT_VER_1_11_2_A01, _STLSOFT_VER); } #ifdef STLSOFT_HAS_ACE