Releases: Goddard-Fortran-Ecosystem/yaFyaml
Workaround for NAG 7.1 (7110)
v1.0.1 Merge pull request #53 from Goddard-Fortran-Ecosystem/hotfix/compiler…
Formal release of 1.0.0
New compiler workarounds appear to allow this implementation to be much more stable. Hence, dropping the "beta" from the releases.
Fixed
- Found various/improved workarounds for various compiler issues. Most problems were with GFortran (11.2).
- Redemontrated that intrinsic FINAL does not work for map containers - needs user code to add RECURSIVE.
- Improved workaround for Parser. GFortran recursion was doing very weird things with local polymorphic allocatable variables. Previous workaround was a global stack, but this iteration found that a simple wrapper type suffices to workaround the issue. Various other compiler workarounds from earlier releases could then be removed - mostly this was unnecessary explicit deep-copies in containers (except when definitely required by Fortran (e.g., Set containers).
Bug Fix - CMake Logic (1.0-beta5)
This release backports a CMake fix from v1.0-beta8 to be applied onto v1.0-beta5 for inclusion in a release of GFE.
Fixed
- Error in CMake check for the target "test" that prevents yaFyaml
from being bundled with other GFE packages.
Bug Fix - CMake Logic (1.0-beta4)
This release backports a CMake fix from v1.0-beta8 to be applied onto v1.0-beta4 for inclusion in a release of GFE.
Fixed
- Error in CMake check for the target "test" that prevents yaFyaml
from being bundled with other GFE packages.
Bug fix - CMake logic
Fixed
- Error in CMake check for the target "test" that prevents yaFyaml
from being bundled with other GFE packages.
v1.0-beta7
Changed
-
YAML_Node is now an abstract type. Semantics are slightly changed
as a consequence, but most interfaces are unaffected.
Main object should now be declared asclass(YAML_Node), allocatable ::
-
Iteration on MappingNode and SequenceNode objects is now done with abstract NodeIterator.
The concrete subclasses: MappingNodeIterator SequenceNodeIterator
have methods for both vector and map iterators but return an optional error if used in the
wrong case. Also they produce null() pointer results if used in the wrong case.
Added
- Test for reproducer of ifort issue encountered in pFlogger upstream.
Added setters and implemented compiler workarounds
Note this release is not quite backwardly compatible with v1.0-beta5.
[1.0-beta6] 2022-03-24
Added
-
Interfaces for config setters
call node%set(<value>, SELECTORS, err_msg, rc)
Where can be:
. integer (32/64 bit), real (32/64 bit), logical or string.
. scalar or 1D array -
Add
NVHPC.cmake
andPGI.cmake
files for NVHPC support (requires nvfortran 22.3) -
A new interface to initialize
YAML_node
(formerlyConfiguration
)
objects. This is now the interface that associates the internal
pointer with the target argument. Previously was the constructor.
Changed
-
The derived type
Configuration
has been renamed toYAML_Node
. A
temporary workaround is provided to users to allow the older name to
be used, but it is deprecated and will go away whev V2.0.0 is
formally released. -
YAML_Node
constructor now copies the argument. Before it only
associated pointer with target.
v1.0-beta5
Added
- New interface to Parser::load() to allow a user to directly load a configuration from just a filename rather than being required to first construct a FileStream from the filename.
Minor bugfix
The default implementation of is_scalar()
was not overridden in some subclasses. A proper fix will be to leave it as deferred in the base class.
CI extensions
Extended CI to cover more cases.