Releases: RealTimeChris/Jsonifier
Release v0.9.98
Hey everyone, just a new release with the following changes being primary:
- Removed dependence upon a compile-time script for CPU architecture selection.
- Implemented partial reading/writing.
- Added newly optimized float parsing algorithm.
- Added a new tuple implementation to significantly reduce compile time.
Full Changelog: v0.9.97...v0.9.98
Release v0.9.97
Hey everyone, just a new release with the following changes being primary:
- Added likely/unlikely to a bunch of if/else statements.
- Swapped std::copy_n for std::memcpy in a few places.
- Moved a couple masks for the Neon functions out into global scope.
- Replaced jsonifier_internal::const_iterator with jsonifier_internal::iterator.
- Moved the vector of prettifier states out of the function scope to the prettifier classes' scope.
- Separated jsonifier_internal::string_literal out into its own header.
- Moved a bunch of string-utility functions out into the derailleur class.
- Replaced the join function with combineLiterals.
- Modified the logic of the parse_impl classes.
- Implemented a compile-time jump table to improve parsing performance significantly.
- Replaced the float/double parsing/serializing methods with more conformant version.
- Modified the serializing code to no longer rely on hash-maps for serializing members.
- Marked a bunch of additional functions as noexcept.
- Added an ALWAYS_INLINE macro in addition to the INLINE one.
Release v0.9.96
Hey everyone, just a new release with the following changes being primary:
- Added support for directly prettifying the Json data as it's written.
- Fixed a string parsing issue with sizes.
- Added the ARM-NEON implementation for various string operations.
- Added new simd-based hashmap implementation to improve key find-performance.
- Added a new minimal-char-based hashmap implementation to improve key find-performance.
Release v0.9.95
Hey everyone, just a new release with the following changes being primary:
- Added support for Arm-Neon 128-bit SIMD intrinsics.
- Modified some lines to correct cleanliness.
- Updated the raw_json_data class to remove superfluous functions.
- Updated some of the error_codes.
- Modified the parser, validator, serializer, and minifier classes to reduce function call overhead.
- Refactored the usage of ascii_classes to instead utilize the json_structural_type enumeration.
- Modified the CPU-detection script.
- Added a new compare function to accelerate string comparisons.
- Added MSVC, CLANG and GNU macros.
Release v0.9.94
Hey everyone, just a new release with the following changes being primary:
- Implemented a prettify function that utilizes simd instructions.
- Implemented a minify function that utilizes simd instructions.
- Implemented a validate function that utilizes simd instructions.
- Implemented a function for parsing/serializing into std::variant types.
- Implemented a fix to a buffer-overflow.
Release v0.9.93
Hey everyone, just a new release with the following changes being primary:
- Refactored the simd_base classes' functions to use perfect forwarding.
- Updated some types.
- Fixed an issue related to parsing/serializing raw array types.
- Implemented a jsonifier_value_t for parsing/serializing single values.
- Updated the parsing and serializing string functions to utilize a fuller range of simd-types.
Release v0.9.92
Hey everyone, just a new release with the following changes being primary:
- Refactored the number-parsing functions to use lookup tables instead of subtraction operations.
- Refactored the simd_string_reader class.
- Refactored some functions with fold-expressions for manual loop unrolliing.
- Refactored the toChars and parseNumber functions.
- Removed some superfluous typedefs.
- Testing new simd logic for string parsing.
- Renamed some types to snake_case.
- Refactored the jsonifier_core, parser, and serializer classes to utilize the CRTP.
- Refactored the simd_structural_iterator and serialization_iterator classes to remain contained.
Release v0.9.91
Hey everyone, just a new release with the following changes being primary:
- Removed store and storeu functions from being class-contained to free-standing.
- Removed unnecessary branch statements from serialize_impl functions.
- Improved some of the preprocessor macros for setting architecture.
- Replaced a function that uses intrinsics with a non-intrinsic (but more rapid) version.
- Renamed parsestring to parseString,.
- Fixed a heap-buffer-overflow issue on two of the comparison functions.
- Added more implementation to the raw_json_data class.
- Added a dedicated concepts namespace.
- Added some string-to-number functions.
- Split the parseNumber function into multiple specializations to improve performance.
- Refactored the jsonifier_object_t and jsonifier_array_t related functions.
- Refactored the AVX-types into a statically-operating class instead of a containing one, to improve performance.
- Renamed a bunch of things.
- Added the structural_index_vector and buffer_string classes for parsing performance.
- Improved error output - for debugging the indices.
- Implemented new serialization logic for strings.
- New subtraction logic.
- Reorganized some of the headers.
Release v0.9.9
Hey everyone, just a new release with the following changes being primary:
- Modified some concepts.
- Modified the DetectArchitecture.cmake script.
- Also adding a couple of concepts.
- Implemented a bunch of compile-time loops instead of runtime ones.
- Implemented a new find function for the string classes.
- Also added a couple of concepts.
- Removed a bunch of superfluous constructors/destructors/copy/move operators.
- Updated some of the integer-postfixes.
- Switched to camel-case for types, and concepts.
- Modified the DetectArchitecture.cmake script.
- Added the check for the lzcnt instruction.
- Added a universal fallback tzcnt function.
- Modified the string class.
- Removed a few unnecessary explicit template parameters.
- Implemented the new SelectMenuDefaultValues type.
- Improved the ISADetection headers, by splitting it into multiple different headers.
- Added an implementation for parsing tuple-array-types.
- Moved the concepts out into their own header.
Release v0.9.8
Hey everyone, just a new release with the following changes being primary:
- Improved the Vector classes' implementation.
- Improved the collectEscapedCharacters function.
- Implemented the non-AVX fallback logic.