Skip to content

Releases: jacobwilliams/json-fortran

8.2.3

05 Jun 22:38
Compare
Choose a tag to compare

See also

Summary

  • No code changes. Only documentation updates.

8.2.2

05 Jun 19:45
Compare
Choose a tag to compare

See also

Summary

  • Added support for the Fortran Package Manger.
  • Updated CI to use GitHub Actions, including auto-deployment of documentation.
  • Eliminated some compiler warnings about real conversions.
  • Fixed a bug in test case 47. 🐞

8.2.1

02 Jan 18:14
8c12e7a
Compare
Choose a tag to compare

See also

Summary

  • Bug fix in json_value_remove: the parent and previous pointers should also be nullified when removing from an array. 🐞
  • Fixed a couple compiler warnings when using the latest Intel Fortran compiler.
  • replaced -std15 with -std18 for the Intel compiler in the FoBiS build file.
  • Updated the Visual Studio test project with some missing test cases.

8.2.0

16 Aug 23:05
Compare
Choose a tag to compare

See also

Summary

  • Updated the compress_vectors option so that now vectors of mixed integers and reals are also compressed.

8.1.0

22 Jun 03:40
Compare
Choose a tag to compare

See also

Summary

  • Added a json_file = string assignment operator.
  • Added optional "default" argument to json_get_*_by_path routines.
  • Added support for multiple comment characters. The default is now to recognize any of #!/ as comment lines.
  • Added recursive attribute to json_get_array.
  • Updated readme to document the cmake build instructions.
  • Fixed bug in json_get_path. 🐞

8.0.0

05 Apr 02:18
Compare
Choose a tag to compare

See also

Summary

  • Cleanup of the API for reading and writing JSON. The main methods are now called print, load, serialize and deserialize. Note that the previous ones are still present for backward compatibility.
  • Added a finalizer to the json_file type.
  • Added new optional arguments (null_to_real_mode, non_normal_mode, use_quiet_nan) to the initialize routines to handle NaN and Infinity.
  • Added a new optional argument (strict_integer_type_checking) to the initialize routines. If enabled, when parsing an integer value, if the parsing fails (e.g., the integer is outside the range of the integer kind), it will then attempt to convert it to a real.
  • json_info will now check for exceptions and raise one if the pointer is not associated.
  • Allow the parser to work with some nonstandard real value representations (leading +, no leading digit before decimal, D/d format).
  • Added a character string to json_file assignment operator.
  • Added a json_print_to_console method to json_core to match the one in json_file.
  • The output array is now deallocated if an exception occurs in a json_get_*_vec routine.
  • Updated CMake to enable building JSON-Fortran as a subdirectory of another project.
  • Updated CMake for compatibility with older versions < 3.7.
  • Allow linking to JSON-Fortran from GFortran programs using OpenCoarrays as the coarray runtime implementation. Use the -DJSON_FORTRAN_USE_OpenCoarrays:BOOL=ON option to CMake to enable this. (NOTE: The fact that this is required may be a bug in GFortran.)
  • Updated the CI system to Travis-CI.com. Expanded and compilers tested, and migrated test setup/teardown to fixtures.
  • Fixed a crash in json_file_check_for_errors if the error_msg was not present. 🐞
  • Fixed a potential issue with real to integer conversion when the library is compiled with a non-default integer kind. 🐞
  • Fixed a dangling pointer in unit test 10. 🐞

7.1.0

24 Jun 01:28
Compare
Choose a tag to compare

See also

Summary

  • Added a Visual Studio Code workspace file.
  • Improvements to json_value_get_child_by_index() efficiency.
  • Updates to CMake install rule for better compatibility with Visual Studio.
  • Fix for undeclared variable causing failing test on Mac 🐞
  • Fixed a bug where using json%add() to create new variables in a structure would stop the program if stop_on_failure was enabled. 🐞

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. 🐞