Download Latest Version stringzilla_shared_macos_arm64_4.2.1.zip (62.5 kB)
Email in envelope

Get an email when there's a new version of StringZilla

Home / v4.2.1
Name Modified Size InfoDownloads / Week
Parent folder
stringzilla_bare_linux_arm64_4.2.1.deb 2025-10-12 62.8 kB
stringzilla_bare_linux_arm64_4.2.1.so 2025-10-12 102.3 kB
stringzilla_bare_linux_amd64_4.2.1.deb 2025-10-12 74.0 kB
stringzilla_bare_linux_amd64_4.2.1.so 2025-10-12 156.0 kB
stringzilla_shared_macos_arm64_4.2.1.zip 2025-10-12 62.5 kB
README.md 2025-10-12 3.0 kB
v4.2.1_ SHA-256 for JS, Swift, Go source code.tar.gz 2025-10-12 605.2 kB
v4.2.1_ SHA-256 for JS, Swift, Go source code.zip 2025-10-12 663.0 kB
Totals: 8 Items   1.7 MB 4

Exposing SHA-256 to GoLang was tricky. Clang worked fine. GCC failed. It turned out that GCC was too shy about inlining my code, resulting in excessive stack space usage... Now, JavaScript, Swift, and GoLang bindings all support incremental SHA-256 procedures 🥳. Thanks to @MarekKnapek for reducing the stack memory usage of the serial SHA variant!

Moreover, thanks to @laurenspriem for highlighting the SIGILL when probing ID registers on older Arm CPUs. I've now guarded first mrs probes with signal handlers. Ugly solution, but it may work 😅 I've also improved the capability detection code on Arm-based Windows machines, using the OS-specific <processthreadsapi.h> functionality, so now not only pure NEON, but also NEON+SHA+AES kernels, should be dispatched just fine!

Thanks to @ashbob999, StringZilla is also getting more stable Windows builds and stringzilla_bare coverage in our CI 🦺

Patch

  • Make: Removed rand/free/malloc stubs when avoiding libc (0148282)
  • Make: Deploy stringzilla_bare for windows (e4ddce8)
  • Make: Added .lib file to uploaded windows archives (2dc6936)
  • Make: Add MSVC bare builds back (5cc5f01)
  • Make: Added stringzilla_bare checks (bbc5cca)
  • Fix: Avoid unused POSIX extensions on macOS (aeb06a5)
  • Make: Deprecate old cross-compilation scripts (2f34c2d)
  • Improve: Drop -pedantic for POSIX extensions (e99d557)
  • Make: Pre-define CMake properties, like -lpthread and pointer size (7722bb1)
  • Improve: serialize_capability for Ice Lake on Clang (58f8cf9)
  • Make: Skip compiler checks for cross-compilation (60988f3)
  • Fix: Unused capabilities in Arm macOS builds (511a09e)
  • Docs: Listing ./scripts and StringWars (5af84dd)
  • Make: Pass -D CMAKE_SYSROOT in cross-compiling CI (a26fc73)
  • Fix: Suppress unused alloc warnings (4868d7f)
  • Make: Reduce CMake nesting (dda024d)
  • Make: Propagate cross-compilation settings (5070321)
  • Improve: Detect NEON+SHA+AES via WinAPI (3b175f8)
  • Fix: Probe mrs for avoid SIGILL on older Arm (d2f8e97)
  • Fix: Isolate & skip SHA-256 tests in Go with GCC (0874b13)
  • Fix: Deprecates sz_checksum (97f9ecf)
  • Make: More aggressive inlining (e8f33c1)
  • Make: Uniform hardware specs logging (f826dfc)
  • Improve: Expose Capabilities to GoLang (5f2cc97)
  • Improve: Branchless serial SHA-256 block processor (fe7efe2)
  • Fix: Missing modulo in SHA [#254] (5a513b7)
  • Improve: Smaller stack usage in SHA-256 (#253) (a298be0)
  • Fix: No noescape/nocallback for stateful hashes (f8d321f)
  • Fix: Violating u32/u64 aliasing (7e55e5c)
  • Fix: Missing SSE flags for SHA (403b28b)
  • Improve: io.Writer & hash.Hash64 interface for Go (05f89ca)
  • Improve: Expose sz_dispatch_table_init for Go (5ff7ba1)
  • Fix: Missing Goldmont & Ice SHA dispatch (e29bded)
  • Fix: Supporting unaligned SHA-256 states (c770e48)
  • Fix: Missing C.sz_checksum (652735d)
  • Fix: Hex formatting in Swift on Linux (fc65328)
  • Improve: SHA for Go, JS, Swift (a165322)
Source: README.md, updated 2025-10-12