This is where to find the documentation corresponding to an official,
tagged release. If you are looking for the most current documentation
of the master branch, please head back to the
main page.
Documentation: 9.0.5
Download: https://github.com/jacobwilliams/json-fortran/releases/latest
Note: There is currently no way to navigate back to the general/master documentation from the documentation for official releases other than using the browser’s back button. Feel free to bookmark this page, or the main project page for convenient navigation.
Documentation for the latest development version may be found at https://jacobwilliams.github.io/json-fortran/prev/9.0.5/index.html or generated locally using the build.sh build script.
Included below is the changelog–a list of significant changes implemented between each release.
Table of Contents
Complete Changeset or Download v9.0.5
Changes:
Complete Changeset or Download v9.0.4
Changes:
.VERSION.in in CMAKE_CURRENT_SOURCE_DIR in main CMakeLists.txt. #585 #586 (mcharlou)Complete Changeset or Download v9.0.3
Changes:
gh-pages history. #583 #584 (jacobwilliams)Complete Changeset or Download v9.0.2
Bug Fixes:
ifort compiler. #577 (robertrueger)Complete Changeset or Download v9.0.1
Enhancements:
Complete Changeset or Download v9.0.0
Enhancements:
json_file is now destroyed before loading. This is to prevent a memory leak if the type is used later to load another file. #561 #562 (jacobwilliams) Also added a new option destroy_pointer to the json_file load routines, which can be set to False to get the old behavior (not to destroy it). #561 #562 (jacobwilliams)nullify_pointer option to the json_file constructor (default is True) (jacobwilliams)
#564 #566allow_trailing_comma argument to the initialize routines (default is True). If set to False, this disallows extra trailing commas in arrays and objects. #569
#570 (jacobwilliams)Complete Changeset or Download v8.5.2
Bug Fixes:
Complete Changeset or Download v8.5.1
Bug Fixes:
JSONFORTRAN_STATIC_LIBRARY_ONLY to False. Also restored some of the original CMake settings from 8.4.0. Specifically, the tests are enabled by default, and both the shared and static libraries are built by default. #558 #559 (jacobwilliams)Complete Changeset or Download v8.5.0
Enhancements:
find_package, fetch_content, and add_subdirectory easily. #526 #527 , #528, #529 #556 (K20shores)3.18.Bug Fixes:
Complete Changeset or Download v8.4.0
Enhancements:
Bug Fixes:
REAL128 kind #550 (jacobwilliams)Complete Changeset or Download v8.3.0
Enhancements:
Bug Fixes:
Complete Changeset or Download v8.2.5
Enhancements:
forall construct from unit test 12Bug Fixes:
get_current_line_from_file_streamComplete Changeset or Download v8.2.4
Enhancements:
MultiProcessorCompilation="true" to the Visual Studio project file.Bug Fixes:
name values. #491Complete Changeset or Download v8.2.3
Enhancements:
Complete Changeset or Download v8.2.2
Enhancements:
Bug fixes:
Complete Changeset or Download v8.2.1
Enhancements:
-std15 with -std18 for the Intel compiler in the FoBiS build file.Bug fixes:
json_value_remove: the parent and previous pointers should also be nullified when removing from an array. #477 #479 (jacobwilliams)Complete Changeset or Download v8.2.0
Enhancements:
compress_vectors option so that now vectors of mixed integers and reals are also compressed. #470 #471 (jacobwilliams)Complete Changeset or Download v8.1.0
Enhancements:
json_file = string assignment operator #463 #464 #465 (jacobwilliams)#!/ as comment lines. #456 #461 (jacobwilliams)recursive attribute to json_get_array #291 #453 (jacobwilliams)json_get_*_by_path routines #208 #462 (jacobwilliams)Bug fixes:
json_get_path #452 #454 (jacobwilliams)Complete Changeset or Download v8.0.0
Enhancements:
print, load, serialize and deserialize. Note that the previous ones are still present for backward compatibility. #397 #409 (jacobwilliams)json_file type #199 #406 (jacobwilliams)null_to_real_mode, non_normal_mode, use_quiet_nan) to the initialize routines to handle NaN and Infinity. #395strict_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. #444 #446 (jacobwilliams)json_info will now check for exceptions and raise one if the pointer is not associated #424 #425 (jacobwilliams)+, no leading digit before decimal, D/d format). #417 #418 (jacobwilliams)json_file assignment operator #410 #411 (jacobwilliams)json_print_to_console method to json_core to match the one in json_file #408json_get_*_vec routine #416 #419 (jacobwilliams)Bug fixes:
json_file_check_for_errors if the error_msg was not present. #420CMake updates:
-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.)CI updates:
Complete Changeset or Download v7.1.0
Enhancements:
json_value_get_child_by_index efficiency #401 #402 (jacobwilliams)Bug fixes:
json%add() to create new variables in a structure would stop the program if stop_on_failure was enabled. #403 #404 (jacobwilliams)Complete Changeset or Download v7.0.0
Enhancements:
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. #386 #387 (jacobwilliams)create_real() method and a json_real parameter to replace create_double() and json_double. The old versions are still available for backward compatibility.json_file constructor functions for strings. This allows a json_file to be initialized using syntax such as: f = json_file('{"x": 1}'). #381 #382 (jacobwilliams)Bug fixes:
real32 or real128. #383 #384 (jacobwilliams)INTEGRATED_TESTS since it was mispelled. #390 #391 (jacobwilliams)Complete Changeset or Download v6.11.0
Enhancements:
Complete Changeset or Download v6.10.0
Enhancements:
Bug fixes:
Complete Changeset or Download v6.9.0
Enhancements:
unescape_string() routine. #351json_file_check_for_errors() are now optional to match the core routine.
#356unescape_string() routine. #354\ is now flagged as invalid. #353Fixed bugs:
annotate_invalid_json() routine. #355jf_test_06 unit test failing on Windows. #357Complete Changeset or Download v6.8.0
Enhancements:
destroy method could still be used to destroy some malformed JSON linked lists. Also updated the validate method to check for circular references.
#346 #349 (jacobwilliams)trim_str and adjustl_str) to some of the string wrapper routines. #347 #348 (jacobwilliams)Fixed bugs:
destroy method that was causing unpredictable behavior in this routine which could cause a crash for some compilers #307 #350 (jacobwilliams)Complete Changeset or Download v6.7.0
Enhancements:
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. #344 #345 (jacobwilliams)json_value_print() to check for an unassociated pointer. #342 #343 (jacobwilliams)remove() method to json_file #339 #340 (jacobwilliams)json_value_add_member(). Now it will raise an exception if try to add a child to a non-array or non-object. #337 #338 (jacobwilliams)Fixed bugs:
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). #334 #335 (jacobwilliams)Complete Changeset or Download v6.6.0
Enhancements #332 (jacobwilliams)
strict_type_checking=False. Formerly these cases would raise an exception. #331json_get_by_path(). Now if using the optional found argument, any exceptions raised by this routine are cleared. #330name argument in json_value_remove_if_present() to ‘path’ to be consistent with other routines since it is really a path. #329Fixed bugs:
wrap_json_get_path() where an optional argument was being used without checking if it was present. #333Complete Changeset or Download v6.5.0
Enhancements & Fixed Issues:
trim and adjustl arguments were added to all the various routines for adding strings and string vectors to JSON #323 (jacobwilliams)trailing_spaces_significant flag is now respected for name keys when creating a JSON structure. #324 #326 (jacobwilliams)Complete Changeset or Download v6.4.0
Enhancements:
Added optional stop_on_error argument to the various initialize() routines to immediately stop the program if an exception is raised. #318 #320 (jacobwilliams)
Added routines to check if a name key is present in a json_file object, which is also available using the .in. operator. #316 #319 (jacobwilliams)
Added routines to rename a json variable by specifying the path. #314 #317 (jacobwilliams)
Added a Fobis rule for running the test programs. #321 (jacobwilliams)
Complete Changeset or Download v6.3.0
Enhancements:
Fixed issues:
/ characters in strings would not be printed under some circumstances. This bug was introduced in the 6.2.0 release. #312 (jacobwilliams)Complete Changeset or Download v6.2.0
Enhancements:
escape_solidus to specify if the forward slash (“/”) is to be escaped when serializing JSON. By default, it is no longer escaped (this changes the behavior introduced in 6.0.0) #304 #305 (jacobwilliams)Fixed issues:
Complete Changeset or Download v6.1.0
Enhancements:
allow_duplicate_keys argument to the various initialize routines. This is True by default. If False, then duplicate keys are considered an error. Also added check_for_duplicate_keys and check_children_for_duplicate_keys methods that can be called. #250 #290 (jacobwilliams)Fixed issues:
CMAKE_INSTALL_LIBDIR with INSTALL_LIB_DIR in the CMake project. #286 (foeroyingur)lowercase_string routine that could cause a crash for Debug builds. #293 #294 (jacobwilliams)Complete Changeset or Download v6.0.0
Enhancements:
Fixed issues:
no_whitespace mode could still print line breaks in some cases #288 (jacobwilliams)Complete Changeset or Download v5.3.0
Enhancements:
update routines also now use this new feature so if the variable is not present, it will be added using the path (formerly, it added it as a name, which was inconsistent). Renamed the argument to the update routines from name to path.
#257 #261 #268 #270 (jacobwilliams)get routine to return an allocatable string array #245 #265 (jacobwilliams)Fixed issues:
char_count wasn’t always correct, which caused the error message for invalid JSON to be wrong.
#272 #274 (jacobwilliams)json_get_path for RFC 6091 path mode. Special characters weren’t being encoded properly, and it didn’t work if the final key was all whitespace. #262 #264 (jacobwilliams)Complete Changeset or Download v5.2.0
Enhancements:
compact_reals and real_format='*' can now be used at the same time. #226
#227 (jacobwilliams)Fixed issues:
Complete Changeset or Download v5.1.0
Enhancements:
traverse routine to json_file #204 #206 (jacobwilliams)get and set routines for the json_core in a json_file #206 (jacobwilliams)get_path routine #223 #224 (jacobwilliams)strict_type_checking is False, the get routines will now return integer, double, logical, and null values as strings. #224 (jacobwilliams)insert_after routine #220 #221 (jacobwilliams)json_parameters module #218 #219 (jacobwilliams)info routines (json_info_by_path, json_matrix_info_by_path, and json_matrix_info) #213 #212 (jacobwilliams)Fixed issues:
Complete Changeset or Download v5.0.2
Note: This release contains no changes to the library, only the documentation.
Complete Changeset or Download v5.0.1
Note: This release contains no changes to the library, only the build system and documentation.
Fixed issues:
Merged pull requests:
Complete Changeset or Download v5.0.0
See also this Wiki page on how to update your code to be compatible with this release.
Enhancements:
json_module into multiple files. #168 #170 (jacobwilliams)initialize(), failed(), print_error_message(), check_to_errors(), and clear_exceptions() to the json_file class. #170 (jacobwilliams)validate() method for validating JSON linked lists #196 #197 (jacobwilliams)is_child_of to check if one json_value is a descendant of another #182 (jacobwilliams)json_value linked list #177 #182 (jacobwilliams)RK, IK, LK, CK, and CDK using less generic names (json_RK, json_IK, json_LK, json_CK, and json_CDK) #172 (jacobwilliams)initialize() method (which is now in json_core and json_file) is no longer mandatory #171 (jacobwilliams)rename() method for renaming a json_value variable #184 #187 (jacobwilliams)get routines #173 (jacobwilliams)get_child method to get the first child. [9d4f736] (jacobwilliams)Fixed Issues
traverse() routine, where the finished output flag was not being correctly checked #182 (jacobwilliams)Complete Changeset or Download v4.3.0
Enhancements:
parent, next, previous, and tail pointers #161 (jacobwilliams)json_value structures #160 (jacobwilliams)Fixed issues:
fmt=* formatting #157 (jacobwilliams)Merged pull requests:
Complete Changeset or Download v4.2.0
Enhancements
exception_thrown flag is now true by default before the json_initialize routine is called to initialize the module. #142 (jacobwilliams)json_info to get name of json_value variable.
#141 (jacobwilliams)json_traverse) to traverse all nodes of a JSON structure #140
via PR #144 from (jacobwilliams)make check and exclude tests
from all target
#103
implemented via
PR #104
from zbeekmanFixed issues:
error_unit (0) due to JSON-Fortran’s
special interpretation of unit=0
#85
fixed via
PR #111
from zbeekmanMerged pull requests:
Complete Changeset or Download v4.1.1
Enhancements
Fixed issues:
CMakeLists.txt accidentally defaulting to Unicode build due to small typo #96, fixed by PR #97 from zbeekman
Merged pull requests:
Complete Changeset or Download v4.1.0
Enhancements:
Merged pull requests:
Complete Changeset or Download v4.0.0
Enhancements
build.sh build script
PR #82
(zbeekman)build.sh build script
PR #88
(zbeekman)Fixed issues:
get and get_..._vec procedures
#79module procedure :: change to module
procedure with no double colon
PR #78
from kmanalojf_test_9.f90 broke
#74
(zbeekman)Merged pull requests:
Complete Changeset or Download v3.1.0
Enhancements:
0.0 instead of 0.00000...E000)
with ability to revert to old behavior
#39
(implemented in
PR #60
from zbeekman and
PR #61
from jacobwilliams)CONTRIBUTING.md
#47Fixed issues:
build.sh) failing with Intel’s ifort
#53,
fixed by
PR #54
(from zbeekman)if (present(…))
#52Merged pull requests:
Complete Changeset or Download v3.0.0
Fixed issues:
robodoc.rc
#31Merged pull requests:
Complete Changeset or Download v2.0.0
Enhancements: - Significant changes to the API including new procedures - Code re-factoring - SCons build added thanks to @bruceravel
Fixed issues:
Enhancements:
associate construct work around, via
PR #2
(zbeekman)Fixed issues:
test1.json, test5.json)
#10,
fixed by
PR #11
(zbeekman)char() is processor dependent, use achar()
#20
(pull request from zbeekman)libjson to libjsonfortran
#4* This Change Log was generated with help from github_changelog_generator