Table of Contents
- Change Log
- Unreleased
- 6.0.0 (2017-08-24)
- 5.3.0 (2017-04-07)
- 5.2.0 (2017-03-05)
- 5.1.0 (2016-08-14)
- 5.0.2 (2016-06-11)
- 5.0.1 (2016-06-11)
- 5.0.0 (2016-05-09)
- 4.3.0 (2015-12-05)
- 4.2.0 (2015-08-03)
- 4.1.1 (2015-05-27)
- 4.1.0 (2015-05-05)
- 4.0.0 (2015-03-16)
- 3.1.0 (2015-02-28)
- 3.0.0 (2015-01-18)
- 2.0.0 (2014-12-27)
- 1.0.0 (2014-06-23)
6.0.0 (2017-08-24)
Complete Changeset or Download v6.0.0
Enhancements:
- Added a routine to reverse an array or object #280 #281 (jacobwilliams)
Fixed issues:
- Fixed a bug where using
no_whitespace
mode could still print line breaks in some cases #288 (jacobwilliams) - Strings (name key and value) were not being properly escaped/unescaped in some contexts. This change introduces a small backward incompatibility (formerly, if keys contained escape characters, the user would have to include them when getting their value). Now, the string variables in all user-facing API calls are unescaped (i.e., the user does not have to manually escape the keys to get their associated value). All strings are also now properly returned unescaped, no matter how the JSON structure was constructed. Escaping is now done in all cases if necessary when the JSON is printed to a string, file or the console. #287 #289 (jacobwilliams)
5.3.0 (2017-04-07)
Complete Changeset or Download v5.3.0
Enhancements:
- It is now possible to build a JSON structure by specifying the paths to the variables. The
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 theupdate
routines fromname
topath
. #257 #261 #268 #270 (jacobwilliams) - Added new
get
routine to return an allocatable string array #245 #265 (jacobwilliams) - Arrays of scalar values can now optionally be printed on a single line #228 #273 (jacobwilliams)
- When reading an empty JSON array it is now returned as an allocated array with zero length (rather than an unallocated array). #276 #277 (jacobwilliams)
Fixed issues:
- Fixed an issue where the
char_count
wasn’t always correct, which caused the error message for invalid JSON to be wrong. #272 #274 (jacobwilliams) - Fixed an issue where values with significant trailing whitespace were being trimmed when printed. #263 (jacobwilliams)
- Fixed two bugs in
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) - Fixed an issue with indenting of arrays within arrays. #269 #271 (jacobwilliams)
5.2.0 (2017-03-05)
Complete Changeset or Download v5.2.0
Enhancements:
- Added support for comments in JSON files. #256 #234 #259 (jacobwilliams) #240 (jacobwilliams)
- Added support for RFC 6901 paths. #249 #253 #255 #258 (jacobwilliams) #252 (jacobwilliams) #251 (jacobwilliams)
- Can now specify default real and integer kinds using compiler directives. #236 #238 #239 (jacobwilliams)
compact_reals
andreal_format='*'
can now be used at the same time. #226 #227 (jacobwilliams)- Added option to change default path separator character. #254 (jacobwilliams)
- Add pkg-config file #242 (wesbarnett)
Fixed issues:
- Real numbers now written with 17 digits of precision (previously it was using 16 which doesn't accurately represent all values to full precision) #230 #241 (jacobwilliams) #232 (jacobwilliams)
5.1.0 (2016-08-14)
Complete Changeset or Download v5.1.0
Enhancements:
- Added a
traverse
routine tojson_file
#204 #206 (jacobwilliams) - Added added
get
andset
routines for thejson_core
in ajson_file
#206 (jacobwilliams) - Added new
get_path
routine #223 #224 (jacobwilliams) - Added new option for returning strings in their escaped form. Also, when
strict_type_checking
is False, theget
routines will now return integer, double, logical, and null values as strings. #224 (jacobwilliams) - Added new
insert_after
routine #220 #221 (jacobwilliams) - Move json type integer variables into the
json_parameters
module #218 #219 (jacobwilliams) - Added new option to print JSON without extra whitespace #216 #217 (jacobwilliams)
- Added new
info
routines (json_info_by_path
,json_matrix_info_by_path
, andjson_matrix_info
) #213 #212 (jacobwilliams) - Added an API for adding Null variables #210 #214 (jacobwilliams)
Fixed issues:
5.0.2 (2016-06-11)
Complete Changeset or Download v5.0.2
Note: This release contains no changes to the library, only the documentation.
- Minor documentation fix.
5.0.1 (2016-06-11)
Complete Changeset or Download v5.0.1
Note: This release contains no changes to the library, only the build system and documentation.
Fixed issues:
- FORD now uses the Intel preprocessor when library is built with the Intel compiler #205
- ShellCheck script files #181
Merged pull requests:
- De-lint shell scripts with ShellCheck, debug FORD upgrade, and various updates to documentation and build system. #201 (zbeekman)
5.0.0 (2016-05-09)
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:
- Split
json_module
into multiple files. #168 #170 (jacobwilliams) - The library is now thread safe #36 #170 (jacobwilliams)
- Added new
initialize()
,failed()
,print_error_message()
,check_to_errors()
, andclear_exceptions()
to thejson_file
class. #170 (jacobwilliams) - The number of spaces for indenting can now be user specified. #170 (jacobwilliams)
- Updates for Visual Studio project #170 (jacobwilliams)
- Added a
validate()
method for validating JSON linked lists #196 #197 (jacobwilliams) - Added some additional error checks for malformed JSON linked lists #182 (jacobwilliams)
- Added a new routine
is_child_of
to check if onejson_value
is a descendant of another #182 (jacobwilliams) - Added new options for case-insensitive searching of names/paths, as well as the option to consider trailing space significant #185 #192 (jacobwilliams)
- Added a routine to enable swapping of elements in a
json_value
linked list #177 #182 (jacobwilliams) - Rename parameters
RK
,IK
,LK
,CK
, andCDK
using less generic names (json_RK
,json_IK
,json_LK
,json_CK
, andjson_CDK
) #172 (jacobwilliams) - Calling the
initialize()
method (which is now injson_core
andjson_file
) is no longer mandatory #171 (jacobwilliams) - Added a
rename()
method for renaming ajson_value
variable #184 #187 (jacobwilliams) - Added some compiler directives so that workarounds for Gfortran bugs are not used for other compilers #190 (jacobwilliams)
- Added option for strict typing for
get
routines #173 (jacobwilliams) - Various cosmetic changes and renaming of some of the dummy arguments in some procedures. #198 (jacobwilliams)
- Added checks to avoid unnecessary looping when traversing arrays if an exception is thrown #183 (jacobwilliams)
- Added a new
get_child
method to get the first child. [9d4f736] (jacobwilliams) - Added some additional error checks for unassociated pointers [9d4f736] (jacobwilliams)
- Ensure null pointers are returned for some error cases [838f476] (jacobwilliams)
Fixed Issues
- Fixed a bug in the
traverse()
routine, where thefinished
output flag was not being correctly checked #182 (jacobwilliams)
4.3.0 (2015-12-05)
Complete Changeset or Download v4.3.0
Enhancements:
- Added routines for getting the
parent
,next
,previous
, andtail
pointers #161 (jacobwilliams) - Added a deep copy routine for
json_value
structures #160 (jacobwilliams) - Updated the Visual Studio solution to VS 2013. Also removed the test projects (it now just compiles the library) (jacobwilliams)
Fixed issues:
- Rewrote logic for decoding strings, and fixed bugs related to parsing strings with certain escape character combinations #164 (jacobwilliams)
- Fixed a bug where some real numbers weren't being read in properly. Also added an option to output real numbers with
fmt=*
formatting #157 (jacobwilliams)
Merged pull requests:
- Minor documentation change. #153 (jacobwilliams)
- Enabled FORD graphs in documentation. #149 (jacobwilliams)
- Tag documentation fix #147 (zbeekman)
- Fix url in 4.2.0 tag documentation #146 (zbeekman)
4.2.0 (2015-08-03)
Complete Changeset or Download v4.2.0
Enhancements
- The
exception_thrown
flag is now true by default before thejson_initialize
routine is called to initialize the module. #142 (jacobwilliams) - Updated
json_info
to get name ofjson_value
variable. #141 (jacobwilliams) - Added a new routine (
json_traverse
) to traverse all nodes of a JSON structure #140 via PR #144 from (jacobwilliams) - Added FORD documentation automatic deployment via PR #137 from zbeekman
- Added new version release checklist, #122 via PR #137 from zbeekman
- Added finer control of real format printing, #117 via PR #137 from zbeekman, and #143 from jacobwilliams
- Removed official SCons support to facilitate faster development cycle, #121 via PR #130 from zbeekman
- Add a CHANGELOG #120 via PR #123 from zbeekman
- Spell 'Fortran' correctly #118 via PR #124 from zbeekman
- Migrate to Codecov.io #106 via PR #107 from zbeekman
- CMake emulate
make check
and exclude tests fromall
target #103 implemented via PR #104 from zbeekman
Fixed issues:
- Fixed bad gcov reports being generated due to a gcov/gfortran bug, #131 via PR #137 from zbeekman
- Fixed inaccurate coverage reports via PR #109 from zbeekman
- Fixed a small consistency issue when outputting floating point numbers via PR #125
- Problems writing JSON to
error_unit
(0) due to JSON-Fortran's special interpretation ofunit=0
#85 fixed via PR #111 from zbeekman - Broken parsing error message for empty line PR #110 (jacobwilliams)
Merged pull requests:
- Documentation fixes & coverage improvements #112 (zbeekman)
- Speedier container based Travis-CI builds #130 (zbeekman)
4.1.1 (2015-05-27)
Complete Changeset or Download v4.1.1
Enhancements
- Installation now possible with a Homebrew package on Mac OS X
- CMake install option to use a more traditional Gnu install structure (to support Homebrew installation) PR #101 from zbeekman
Fixed issues:
-
CMakeLists.txt accidentally defaulting to Unicode build due to small typo #96, fixed by PR #97 from zbeekman
Merged pull requests:
4.1.0 (2015-05-05)
Complete Changeset or Download v4.1.0
Enhancements:
- Run-time speed improvements #75 implemented in PR #93 from jacobwilliams
Merged pull requests:
- Small formatting and addition of a unit test #95 (jacobwilliams)
4.0.0 (2015-03-16)
Complete Changeset or Download v4.0.0
Enhancements
- Unicode support #35 added in PR #84 from zbeekman
- Automate testing of the stand alone programs listed in the README.md #67 added in PR #71 from zbeekman
- Automatically analyze and report test coverage info with coveralls.io and Travis-CI #63 implemented in PR #72 from zbeekman
- Enhanced command line user interface for
build.sh
build script PR #82 (zbeekman) - Additional options and improvements made to command line interface
of the
build.sh
build script PR #88 (zbeekman) - Added unit tests for improved unit test coverage PR #83 (jacobwilliams) and PR #73 (jacobwilliams)
Fixed issues:
- Stack overflow in destroy for large structure #76 fixed in PR #77 from jacobwilliams
- Discrepancy with dummy argument attributes for
path between
get
andget_..._vec
procedures #79 - Small bug fix for CMake install #68 (zbeekman)
- JSON output files from tests are overwriting expected outputs and outputs from other tests #86 (zbeekman)
- NAG Fortran Errors on
module procedure ::
change tomodule procedure
with no double colon PR #78 from kmanalo - CMake for
jf_test_9.f90
broke #74 (zbeekman)
Merged pull requests:
3.1.0 (2015-02-28)
Complete Changeset or Download v3.1.0
Enhancements:
- Compact real number printing (
0.0
instead of0.00000...E000
) with ability to revert to old behavior #39 (implemented in PR #60 from zbeekman and PR #61 from jacobwilliams) - Read JSON structure from a character string #5
- Adopted official contributing guidelines and added a
CONTRIBUTING.md
#47
Fixed issues:
- Build script (
build.sh
) failing with Intel's ifort #53, fixed by PR #54 (from zbeekman) - Segfaults and unexpected behavior due to optional dummy arguments
being dereferenced outside of
if (present(…))
#52 - Documentation not being produced for tests because tests directory should be sub-directory of src #49
- Example 8 failing on gfortran 4.9.2 #44
- CMake Tests 3 and 8 fail due to new test case, example 6, added in e636f96 #30
- CMake build using makefiles fails if parallel build is specified #8, fixed by PR #50 from zbeekman
Merged pull requests:
- Unit test updates #65 (jacobwilliams)
- Unit test cleanup as discussed in #30 #64 (zbeekman)
- Stops PRs by @jacobwilliams from deploying master docs #62 (zbeekman)
- Auto deploy script #59 (zbeekman)
- Getting ready for auto-deployment #57 (zbeekman)
- Travis-CI build matrix #56 (zbeekman)
3.0.0 (2015-01-18)
Complete Changeset or Download v3.0.0
Fixed issues:
- Intel compiler bug triggered by commit d2622a8 #41
- Unaligned data warnings with Intel compiler #34
- CMake fails due to bad path to
robodoc.rc
#31 - Indentation of output wrong for some nested objects #29
- Intel build broke #28
- CMake misbehaving when ROBODoc absent #26
- Differentiate internal (low level, private) procedures/types/etc from public API in documentation #21
Merged pull requests:
2.0.0 (2014-12-27)
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:
- enable wiki contributions from the public #23
1.0.0 (2014-06-23)
Enhancements:
- Validate hex values in strings #14
- Add CMake build infrastructure #6 (pull request from zbeekman)
- CMake build now builds the example program and runs tests #9
- Added CMake logic to build ROBODoc documentation #12 (pull request from zbeekman)
- Upload ROBODoc documentation to gh-pages project page #7
- Add CMake testing infrastructure #18 (zbeekman)
- Implement better support for Intel compiler,
DPD200247629
associate
construct work around, via PR #2 (zbeekman)
Fixed issues:
- Unit tests fail when compiled with GFortran #19
- CMake outputs of ROBODoc must be specified in CMakeLists.txt manually #17
- Invalid JSON input files (
test1.json
,test5.json
) #10, fixed by PR #11 (zbeekman) char()
is processor dependent, useachar()
#20 (pull request from zbeekman)- Bug-fix for ROBODoc documentation generation with CMake #16 (pull request from zbeekman)
- Change library file from
libjson
tolibjsonfortran
#4
* This Change Log was generated with help from github_changelog_generator