Skip to content

Latest commit

 

History

History
174 lines (138 loc) · 7.93 KB

VERSIONS.md

File metadata and controls

174 lines (138 loc) · 7.93 KB

1._ Series

1.4

  • 1.4.0: 2019 September 13
    • Core
      • Removes use of variable length arrays in character conversion code
    • Serialization
      • Adds support for required fields
    • Platform
      • Adds support for newer Ubuntu, Fedora, and openSUSE flavors

1.3

  • 1.3.0: 2018 July 13
    • Core
      • Expands testing for strings with the Big List of Naughty Strings
    • Serialization
      • Return old formats value when using formats::set_global
      • Allow duplicate types when building formats
      • Convenience methods for checking formats references while building a formats instance
    • Platform
      • Easy way to build packages for all platforms

1.2

  • 1.2.1: 2018 June 13

    • Workaround an issue in GCC 8.1.0 where unicode points would be incorrectly parsed at -O3.
  • 1.2.0: 2018 April 13

    • Core
      • Parsing performance improvements -- about twice as fast as 1.1
      • Eliminated usage of regular expressions
      • No more reliance on <codecvt> or Boost.Locale for UTF conversions
    • Platform
      • Expanded support for Debian, Fedora, OpenSUSE, and Arch Linux
    • Serialization
      • Added support for type-level defaults -- type_default_on_null and type_default_value
      • Default formats now support going to and from string_view
      • extraction_context now supports extraction based on std::type_info

1.1

  • 1.1.1: 2016 January 22

    • Cover odd integer types on OSX
  • 1.1.0: 2015 November 13

    • Less bad Windows support (and true MSVC 2015)
    • Easier functions for case-insensitive comparisons
    • Faster parsing
    • Faster comparisons
    • Full checking for proper character encodings
    • Support for std::wstring access methods on a value
    • Serialization DSL expansions
      • Enumeration type support
      • Simple DSL::extend function
      • Support for extracting and encoding polymorphic types

Stabilizing the API and finalizing things for a release.

  • 1.0.0: 2015 March 13
    • Moves to CMake as the build system
    • Greatly improves the speed of the parser
    • Removes nullptr as a type for null in preference of jsonv::null
    • Better support for MSVC

0._ Series

The focus of this release is extensible serialization between JSON values and C++ types.

  • 0.5.1: 2015 February 17

    • Creates null to be used in place of nullptr
    • Adds the ability to set the default size of tokenizer's buffer
    • Fixes issue in parsing where string divisions on buffer boundaries would yield incorrect results (and potentially crash)
  • 0.5.0: 2015 February 13

    • Creates formats, extractor, serializer and adapter classes
    • Creates the extract and to_json free functions for conversion
    • Creates the Serialization Builder DSL for easily making type adapters
    • Adds support for compiling with GCC and Clang on Windows with Cygwin
    • Adds experimental support for Microsoft Visual Studio 14 (CTP 5)
    • Adds the value::is_X convenience functions for checking kind values.

The focus of this release was the creation of tools to traverse and manipulate the JSON AST.

  • 0.4.1: 2015 January 19

    • Adds reverse iteration to array_view and object_view
    • Adds the map algorithm
    • Adds the diff algorithm
    • Adds value::count_path
    • Fixes issue in parsing where large inputs would buffer incorrectly
  • 0.4.0: 2015 January 13

    • Creates a generic visitor system for jsonv::value
    • Creates the path system, which is a very simplified version of JSONPath
    • Creates the merge and traverse families of algorithms
    • Creates the coerce library for non-strict conversion
    • Extends array_view and object_view to have owning versions, so calling value::as_array and value::as_object on rvalues works as you would expect (safely)
    • Make kind::decimal and kind::integer equivalent in almost all cases
    • Various bugfixes

The main focus of this release is access and modification of the low-level parsing and encoding system.

  • 0.3.1: 2014 September 27

    • Greatly expands the flexibility of parse_options
    • Adds all the tests from JSON_Checker
    • Adds a parse that takes a string_ref, which unifies the const char* and std::string overloads
    • Changes the installer to put header files inside of a jsonv folder
    • Adds Arch Linux PKGBUILD to the installer folder
    • Fixes issue with incorrectly escaping \\\"
    • Fixes issue with value::compare(const value&) const returning non-zero when two decimal kinds were within the epsilon value (and operator== would have returned true)
  • 0.3.0: 2014 September 21

    • Creates tokenizer for easier access to JSON parsing
    • Creates encode for customization of JSON output
    • Creates value::array_view and value::object_view for use in range-based for loops
    • Creates the make install recipe (with customization of versioned SOs)
    • Re-write of the parsing system to be stream-based so not everything has to reside in memory at the same time
    • Expose string_ref as part of the encode and tokenizer systems
    • Improved exception-handling in value
    • Improved documentation, including automatic Doxygen generation with Travis CI

0.2

The main focus of this release was the unification of the JSON type into jsonv::value. Another major addition is full support for parsing and emitting strings into a proper encoding.

  • 0.2.2: 2014 May 18

    • Adds std::hash<jsonv::value>
  • 0.2.1: 2014 May 9

    • Adds support for building with Clang (version 3.3 and beyond)
  • 0.2.0: 2014 May 7

    • Elimination of array and object types in preference of just value
    • Added the ability to specify parsing options
    • Use JSONV_ as the macro prefix everywhere
    • Full support for decoding JSON numeric encodings (\uNNNN) as UTF-8 or CESU-8
    • Various fixes for comparison and assignment

0.1

The original prototype, which allows for parsing input to the JSON AST, manipulation of said AST and eventually encoding it as a string.

  • 0.1.1: 2014 April 30

    • Minor parsing performance improvements by batching the string read for parse_number
    • Move to GNU Make as the build system
  • 0.1.0: 2014 April 24