Skip to content

Releases: stephenberry/glaze

v3.3.4

10 Sep 17:20
Compare
Choose a tag to compare

Experimental glz::repe::registry reworking of locking logic by @stephenberry in #1290

This makes the registry locking logic behave the same for reading and writing. This limits reading a bit more by not allowing asynchronous reads to the exact same field, but it makes asynchronous writing possible, and keeps the locking logic simpler. We can now asynchronously write to differing targets, and importantly we can call asynchronous invocations.

We are removing automatic invoke locking. With variables, there is no place for a user to put logic when it comes to locking/unlocking access. However, when it comes to functions, there is room for users to add mutexes and locks to customize lock behavior. Also, functions often have complex side effects that need to be known to the programmer. On top of this, if we don't manipulate references in an RPC, we'd like the default behavior to be able to asynchronously call these functions. For these reasons we don't automatically lock the path taken to the function call. Because we also don't want to assume that a function call would manipulate the returned state of a data, which would block reads to the data.

Full Changelog: v3.3.3...v3.3.4

v3.3.3

09 Sep 13:14
Compare
Choose a tag to compare

32-bit support

Many thanks to @Bolderaysky for fixing build issues with 32-bit and adding GitHub Action runners to the CI pipeline so that 32-bit support can be maintained. #1287

Fixes

Full Changelog: v3.3.2...v3.3.3

v3.3.2

03 Sep 13:20
Compare
Choose a tag to compare

Fixes

  • Fixed key parsing issue with variant object reading of unknown keys by @stephenberry in #1283
  • Fixed Apple clang precompiled headers due to std::filesystem::path hashing in #1284

Full Changelog: v3.3.1...v3.3.2

v3.3.1

15 Aug 22:21
Compare
Choose a tag to compare

Fixes

  • Fixed lvalue lambda compilation error in corner cases within glz::meta in #1270
  • Better validation and excluding trailing whitespace for get_sv_json in #1271
  • Additional optional guard to fix compilation on the latest version of MSVC in #1273

Full Changelog: v3.3.0...v3.3.1

v3.3.0

15 Aug 16:07
Compare
Choose a tag to compare

Non-null terminated buffers!

JSON

Non-null terminated buffer reading when using glz::read<glz::opts{.null_terminated = false}>.

In order to not introduce any breaking changes glz::read_json (using default glz::opts) has null_terminated = true.

The default behavior requires null termination for maximum performance.

glz::prettify_json and glz::minify_json also support non-null terminated buffers.

BEVE (binary)

For BEVE we don't care whether a buffer is null terminated anymore, we just always handle the data as if it is not, because we wouldn't get significant performance improvements like we do with JSON. The reason is that a null character is valid binary so we can't make decisions on this value.

What's Changed

  • Support for non-null terminated buffers when parsing JSON and BEVE by @stephenberry in #1262

Full Changelog: v3.2.6...v3.3.0

v3.2.6

15 Aug 13:17
Compare
Choose a tag to compare

Minor Breaking Improvement

  • Glaze's pair concept is now more restrictive and requires the member types first_type and second_type. This prevents normal structs with keys named first and second from being misinterpreted as a pair.
    by @stephenberry in #1267

Fixes

Full Changelog: v3.2.5...v3.2.6

v3.2.5

12 Aug 21:17
Compare
Choose a tag to compare

More hashing optimizations for special cases

Minor Improvements

  • glaze_BUILD_EXAMPLES rename for proper grouping in CMake

Full Changelog: v3.2.4...v3.2.5

v3.2.4

12 Aug 02:28
Compare
Choose a tag to compare

Improvements

  • More hashing performance improvements for JSON reading
  • Optimized and reduced resulting hashing binary for objects with only two elements
  • Full, flat hashing using new jump tables for faster read performance

Full Changelog: v3.2.3...v3.2.4

v3.2.3

11 Aug 12:10
Compare
Choose a tag to compare

Improvements

  • Faster hashing/read performance in JSON for objects with similar keys using the new jump table approach, by @stephenberry in #1253
  • Fixed more MSVC warnings

Full Changelog: v3.2.2...v3.2.3

v3.2.2

09 Aug 18:23
Compare
Choose a tag to compare

Improvements

  • Faster floating point read performance by @stephenberry in #1251
  • Using [[msvc::forceinline]] where appropriate on MSVC in #1250
  • Using new hash map approach for internal enum reading in #1252

Full Changelog: v3.2.1...v3.2.2