Skip to content

Releases: danielaparker/jsoncons

Release 0.178.0

31 Oct 13:22
Compare
Choose a tag to compare

Defect fixes:

  • Fixed issue with jmespath::join function through PR #546

  • Fixed issue with the path for cmake config files through PR #547

  • Related to #539, made the basic_json constructor basic_json(const Allocator&)
    consistent with basic_json(json_object_arg_t, const Allocator& alloc = Allocator()).

  • Related to #539, basic_json copy construction now applies allocator traits select_on_container_copy_construction
    to the allocator obtained from other. For pmr allocators, this gives a default constructed pmr allocator rather
    than a copy of the allocator in other.

Enhancements:

  • Improved the implementation of basic_json swap. Previously in some cases it would allocate.

  • Improved the implementation of basic_json copy assignment. Reduced allocations when assigning from array to array and object to
    object.

  • Documented the rules for basic_json allocators here,
    and added numerous tests for conformance to the rules.

  • Added missing basic_json constructor

basic_json(json_array_arg_t, 
    std::size_t count, const basic_json& value, semantic_tag tag = semantic_tag::none, 
    const Allocator& alloc = Allocator());   

Release 0.177.0

16 Aug 15:38
Compare
Choose a tag to compare

Changes

  • Removed deprecated functions and type names identified in #487

  • Reduced the size of some initial json_parser allocations to help with #531

Defect fixes

  • Fixed #528

  • Fixed #530 by making jmespath_expression::evaluate const

  • Fixed #488 related to some standard libraries that don't support strings with stateful allocators.

  • Fixed issue identified in PR #532 with basic_json::compare function

Release 0.176.0

10 Jun 18:44
Compare
Choose a tag to compare

Compiler support

  • Update to Supported compilers
    documentation to reflect the compilers that are currently in continuous integration testing.

  • Support for some ancient compilers, in particular g++ 4.8 and 4.9, has been dropped.

  • Accepted pr #519 to support build with with llvm-toolset-7 on CentOS 7.

  • We (and users) have seen some compilation errors with tests of std::scoped_allocator_adaptor using our sample stateful allocator FreeListAllocator
    in versions of clang predating version 11, and versions of g++ predating version 10. We've therefore excluded these tests when testing with
    the older compilers.

Enhancements

  • basic_json now supports using C++ 17 structured binding, so you can write
for (const auto& [key, value] : j.object_range())
{
    std::cout << key << " => " << value << std::endl;
}
  • Addressed issue #509 of over allocating memory due to alignment constraints through pr #510

jsonschema extension defect fixes:

  • Fixed issue #520 where enabling format validation resulted in a premature abort to validation

  • Addressed issue #521 so that jsonschema now supports big integers

Other defect fixes:

  • Resolved #518 about CUDA and int128 and float 128

Release 0.175.0

02 May 19:21
Compare
Choose a tag to compare

This release contains two breaking changes to recently added
features.

Change to jsonpath::get function

  • The return value for jsonpath::get has been changed from a
    pointer to the selected JSON value, or null if not found, to a
    std::pair<Json*,bool>, where the bool component indicates
    whether the get operation succeeded.

Change to new jsonschema classes and functions introduced in 0.174.0:

  • The overload of json_schema<Json>::validate that takes a callback
    must now be passed a lambda that returns walk_result::advance or
    walk_result::abort. This supports early exit from validation.

Note that this change does not affect the legacy pre-0.174.0 jsonschema
classes and functions (make_schema, json_validator).

Enhancement to jsonschema library:

  • New json_schema member function walk for walking through the schema.

Release 0.174.0

22 Apr 14:59
Compare
Choose a tag to compare

Defect fixes:

  • Fixed issue #499 with nan_to_str, inf_to_str and neginf_to_str

Core library enhancements

  • New json_options line_splits option that addresses issue #490

jsonpath library enhancements

  • New function jsonpath::replace analagous to jsonpointer::replace,
    but for normalized paths.

jsonschema library enhancements

  • The jsonschema extension now supports Drafts 4, 6, 2019-09 and 2020-12
    in addition to Draft 07.

    • New function make_json_schema that returns a representation of
      a compiled JSON Schema document.

    • New class validation_message

    • The legacy function make_schema and classes json_validator and
      validation_output remain for backward compatibility, but have been
      deprecated.

Release 0.173.4

04 Feb 23:08
Compare
Choose a tag to compare

Defect fixes

  • Fixed issue #485 where basic_json member names did not use polymorphic_allocator

  • Addressed issue #482 by replacing static_assert with runtime exception

Release 0.173.3

31 Jan 23:02
Compare
Choose a tag to compare

Defect fixes:

Release 0.173.2

20 Dec 18:52
Compare
Choose a tag to compare
  • Removed use of deduced return types in jsonpath extension (C++ 14 feature)

Release 173.1

19 Dec 03:26
Compare
Choose a tag to compare
  • Fixed issue #473 about bigint and -Werror=stringop-overflow

Release 0.173.0

14 Dec 13:50
Compare
Choose a tag to compare

Defect fixes:

  • Fixed issue #473 about bigint and -Werror=stringop-overflow

  • Fixed jmespath issue #471 about jmespath::search and ojson with AddressSanitizer in macos environment

  • Fixed jsonpointer issue with json_pointer::parse for empty string keys (which had implications
    for jsonschema definitions keyword with empty keys.)

  • Fixed jsonschema issue with definitions keyword with empty keys

  • Fixed jsonschema issue #474 about JSON Schema maximum keyword error message

  • Fixed jsonschema issue with multipleOf keyword and type integer and multipleOf a floating point number

  • Fixed jsonschema issue with the behavior of $id for rebasing in some keywords, particularly if, then, and else.

Enhancements:

  • The jsonschema::make_schema functions now support providing a retrieval URI, to initialize the base URI.