Skip to content

Releases: WANDEX/algorithms

0.1.0

06 Nov 02:26

Choose a tag to compare

Huge overhaul using wndx::sane lib cmake modules:
Much of the cmake project configuration code has been abstracted
and placed into appropriate reusable cmake modules of wndx::sane lib.

namespace wndx -> wndx::algo

dev build script heavily overhauled - build.sh -> wndx_cmake_build.sh:

  • use of more flexible getopt approach instead of positional arguments.
  • improved script structure, readability, more obvious project defaults.
  • test existence of the script dependencies - git-bash shell/GNU utilities.

[cicd_cmake_multi_platform.yml]

  • improve job strategy matrix.
  • extract git tag annotation for release body text
  • WNDX_ALGO_MEMCHECK_ENABLE=ON -> memcheck step cmake --target memcheck

default memcheck utility per platform:

  • use Xcode leaks util on macOS
  • use drmemory on Windows
  • use valgrind on Linux
  • use of drmemory tool can be forced on all platforms (drmemory is cross-platform).

cache memcheck dependencies in local dir with:

  • install from source valgrind
  • install libc6-dbg (valgrind dep)
  • install drmemory from source or via winget

NOTES drmemory:

  • drmemory install occupies to much space in cache - 434 Mb.
  • drmemory require parent dirs with other DynamoRIO project dependencies.
  • Whole drmemory install dir must be cached, not only bin64.
  • Thus currently in CICD workflow, drmemory is installed via winget without local caching.
  • Currently on win11/windows-2025 drmemory not works - Dr. Memory internal crash at PC *.

NOTES wndx::algo::gen:

fix: win10 drmemory errors related to std::random_device
"UNADDRESSABLE ACCESS: reading" & "WARNING: writing to readonly memory".

fixed via deterministic seeding without std::random_device specifically
on the MSC/WIN32 compiler/platform. -> WNDX_ALGO_FIXED_SEED=1
WNDX_MSC - non cryptographic randomness via chrono time_since_epoch() used by default.

drmemory complained because of the SH*TTY WIN random_* implementation:
BCryptGenRandom, CryptGenRandom, etc.

After wasting 20 days total on this issue! I conclude the following.
That the Windows & MSC should not be used for anything serious
and especially something related to cryptography and random numbers
generation.

Earlier those errors felt like a false positives.
Now I think that drmemory detected and points onto unsafe implementation
of cryptography related code in MSC implementation of the std
and specifically onto the proprietary system libraries (DLL).

Full Changelog: v0.0.1.1...0.1.0

v0.0.1.1

01 Apr 21:46

Choose a tag to compare

v0.0.1.1 Pre-release
Pre-release

minor: added git hook scripts to automate repetative work (pre-push hook with: md tree & coverage upd).

Full Changelog: v0.0.1.0-rc1...v0.0.1.1

v0.0.1.0-rc1

31 Mar 11:26

Choose a tag to compare

v0.0.1.0-rc1 Pre-release
Pre-release

initial release