Releases: stephenberry/glaze
v3.2.5
More hashing optimizations for special cases
- Longer front hash algorithms (uint32_t and uint64_t) by @stephenberry in #1259
- Three element hash optimization by @stephenberry in #1260
Minor Improvements
- glaze_BUILD_EXAMPLES rename for proper grouping in CMake
Full Changelog: v3.2.4...v3.2.5
v3.2.4
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
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
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
v3.2.1
Fixes
- Fixed nested
glz::file_include
andglz::hostname_include
issues due to buffer reuse during recursive calls in #1244
Improvements
- Faster compilation due to binary macro expansion in #1242
Full Changelog: v3.2.0...v3.2.1
v3.2.0
Faster Compilation
Reduced use of always inline and removed flattening. Building jump tables in a way that is easier for the compiler to optimize. These changes improve compile time performance without sacrificing runtime speed.
Fixes an issue where GCC would emit variable tracking size limit exceeded
due to flattening.
Full Changelog: v3.1.9...v3.2.0
v3.1.9
Hotfix for MSVC
Removed addition of [[msvc::flatten]] from v3.1.8 as it could cause massive compilation times in some cases
by @stephenberry in #1235
Full Changelog: v3.1.8...v3.1.9
v3.1.8
Fixes
- Fixed a rare thread pool issue that could result in hanging for extremely short tasks by @stephenberry in #1218
- Avoid linker warnings by changing internal linkage on header constants to external by @arturbac in #1223
Performance Improvements
- GLZ_FLATTEN for MSVC by @stephenberry in #1230
- increase naive map max size by @bryan-felipe in #1219
Improvements
- GLAZE_BUILD_EXAMPLES option by @stephenberry in #1231
Full Changelog: v3.1.7...v3.1.8
v3.1.7
Critical bug fix for v3.1.6 and glz::json_t
Recursive depth counting was added in v3.1.6 (#1202) to prevent stack overflows from deep recursive JSON inputs parsing into glz::json_t
(this would typically only be encountered as an nefarious attack). This fixes a bug that missed counting object closures.
by @stephenberry in #1216
Other Fixes
- Added missing check for surrogate unicode pair parsing by @stephenberry in #1214
Full Changelog: v3.1.6...v3.1.7
v3.1.6
Now fuzz testing with every merge!
Many thanks to @pauldreik for adding fuzz testing to Glaze. Fuzzing has revealed a number of issues, especially with glz::json_t
and invalid input. These issues have been resolved in this release, making Glaze much safer with untrusted inputs.
As of 3.1.5 floating point numbers are exactly round-tripped and now every float
value is tested for proper round-tripping.
Fixes and Improvements
- Fix if constexpr scoping in find_perfect_hash by @stephenberry in #1199
- Eliminated out-of-line definition of constexpr static data member by @stephenberry in #1200
- max_recursive_depth_limit for variants by @stephenberry in #1202
- Add fuzzing by @pauldreik in #1194
- Fixed valid hex character test by @stephenberry in #1205
- Add exhaustive float testing and tighten float fuzzer for denormals by @pauldreik in #1207
- json::rpc example with working expected error handling by @arturbac in #1206
- Updating fast_float to 6_1_3 by @stephenberry in #1210
- Fix handle_unicode_code_point for null character out of buffer read by @stephenberry in #1211
Full Changelog: v3.1.5...v3.1.6