Skip to content

Releases: RealTimeChris/Jsonifier

Release v0.9.98

28 Nov 13:26
Compare
Choose a tag to compare
Release v0.9.98 Pre-release
Pre-release

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

13 Oct 11:59
Compare
Choose a tag to compare
Release v0.9.97 Pre-release
Pre-release

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

04 Jul 14:41
Compare
Choose a tag to compare
Release v0.9.96 Pre-release
Pre-release

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

03 May 21:22
Compare
Choose a tag to compare
Release v0.9.95 Pre-release
Pre-release

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

27 Dec 06:47
Compare
Choose a tag to compare
Release v0.9.94 Pre-release
Pre-release

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

12 Dec 11:41
Compare
Choose a tag to compare
Release v0.9.93 Pre-release
Pre-release

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

27 Nov 23:12
Compare
Choose a tag to compare
Release v0.9.92 Pre-release
Pre-release

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

06 Nov 17:03
Compare
Choose a tag to compare
Release v0.9.91 Pre-release
Pre-release

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

08 Oct 02:30
Compare
Choose a tag to compare
Release v0.9.9 Pre-release
Pre-release

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

15 Sep 04:53
Compare
Choose a tag to compare
Release v0.9.8 Pre-release
Pre-release

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.