Skip to content

Releases: jacobwilliams/json-fortran

7.0.0

27 Jan 02:48
Compare
Choose a tag to compare

See also

Summary

  • Added support for multiple real kinds:
    • The library now supports the default real kind specified (real32, real64 and real128) as well as the kinds in this set with less precision than the default. For example, if real64 is specified (which is the default), then both real32 and real64 are available in all the public APIs. Internally, the values are always stored in a variable of the default kind.
    • Added a create_real() method and a json_real parameter to replace create_double() and json_double. The old versions are still available for backward compatibility.
    • Added CMake options to control integer and real kinds
    • Updated the default real format statement to correctly correspond to the specified real kind.
  • Added new json_file constructor functions for strings. This allows a json_file to be initialized using syntax such as: f = json_file('{"x": 1}').
  • Fixed some links in the documentation.
  • Renamed the integrated tests preprocessor flag to INTEGRATED_TESTS since it was misspelled.
  • Fixed an issue where the parser would fail if the JSON structure was just a lone integer. 🐞
  • Fixed an issue where the unit tests did not compile when using real32 or real128. 🐞
  • Fixed various issues preventing compilation if the integer kind was changed from the default. 🐞

6.11.0

20 Jan 03:04
Compare
Choose a tag to compare

See also

Summary

  • Speed up writing JSON to a string

6.10.0

20 Oct 21:10
Compare
Choose a tag to compare

See also

Summary

  • Speed up JSON file parsing.
  • CMake updates for Windows.
  • Parser no longer stops after main object, ignoring the rest of the file. 🐞

6.9.0

29 Jul 14:05
Compare
Choose a tag to compare

See also

Summary

  • Some efficiency improvements when parsing strings.
    • Speed up the unescape_string() routine.
    • Some cleanup and efficiency improvements for hex string validation.
  • Various updates to error message reporting.
    • The two arguments to json_file_check_for_errors() are now optional to match the core routine.
    • Some adjustments to error messages for invalid hex strings. Validation of hex strings is now done in the unescape_string() routine.
    • A string that ends in an escape character \ is now flagged as invalid.
  • Fixed a bug in the annotate_invalid_json() routine. 🐞
  • Fixed an issue with the jf_test_06 unit test failing on Windows. 🐞

6.8.0

20 Jul 00:53
Compare
Choose a tag to compare

See also

Summary

  • Added some additional checks so that the destroy method could still be used to destroy some malformed JSON linked lists. Also updated the validate method to check for circular references.
  • Added missing arguments (trim_str and adjustl_str) to some of the string wrapper routines.
  • Fixed a dangling pointer bug in the destroy method that was causing unpredictable behavior in this routine which could cause a crash for some compilers. 🪲
  • Various minor changes to remove some compiler warnings and a line length standards violation.
  • Various documentation string updates.

6.7.0

10 Jul 13:14
Compare
Choose a tag to compare

See also

Summary

  • Made the two arguments to json_check_for_errors() optional, so now either or both can be used. Note that if no error has been raised, then error_msg is now returned unallocated.
  • Added an additional error check in json_value_print() to check for an unassociated pointer.
  • Added remove() method to json_file
  • Added additional error checks to json_value_add_member(). Now it will raise an exception if try to add a child to a non-array or non-object.
  • Added some additional unit tests to increase coverage.
  • Fixed a bug in json_value_clone_func() where it could crash if attempting to clone an array element. Updated this routine to improve behavior when cloning an array element (the subsequent entries are no longer cloned). 🐞

6.6.0

02 Jul 01:55
Compare
Choose a tag to compare

See also

Summary

  • Now, attempting to get a string variable as an integer, double, or logical will attempt to convert it from a string if strict_type_checking=False. Formerly these cases would raise an exception.
  • Fixed an inconsistency in json_get_by_path(). Now if using the optional found argument, any exceptions raised by this routine are cleared.
  • Changed the name argument in json_value_remove_if_present() to 'path' to be consistent with other routines since it is really a path.
  • Fixed a bug in wrap_json_get_path() where an optional argument was being used without checking if it was present. 🐞
  • Various documentation string updates.

6.5.0

24 Jun 04:12
Compare
Choose a tag to compare

See also

Summary

  • Added optional trim and adjustl arguments to all the various routines for adding strings and string vectors to JSON.
  • The trailing_spaces_significant flag is now respected for name keys when creating a JSON structure.

6.4.0

10 Jun 14:02
Compare
Choose a tag to compare

See also

Summary

  • Added optional stop_on_error argument to the various initialize() routines to immediately stop the program if an exception is raised (the default is False).
  • Added routines to check if a name key is present in a json_file object, which is also available using the .in. operator (e.g., if ('key' .in. json) ...).
  • Added routines to rename a JSON variable by specifying the path.
  • Added a Fobis rule for running the test programs. Run using: FoBis.py rule --execute tests -f json-fortran.fobis

6.3.0

21 Apr 01:50
Compare
Choose a tag to compare

See also

Summary

  • Fixed a bug in the escaping logic where / characters in strings would not be printed under some circumstances. This bug was introduced in the 6.2.0 release.
  • Added a FoBiS configuration file that can be used to build the library, tests, and documentation.
  • CMake produced Visual Studio Project works now.
  • Minor changes: renamed some of the example files and reverted back to older versions of FoBiS and markdown for documentation building on Travis-CI.