Software containers for Fortran
macos-11
from CI, added macos-13
-quiet
flag for NAG compilerassignment(=)
in v2 map and set templates. This is to workaround a case where intel compiler is producing erroneous results. Disabling everywhere is too risky.at(key)
(without rc) now will not extend the map. This change may be reverted if it breaks any downstream projects.-check nouninit
for Intel LLVM to work around ifx
bug.IntelLLVM.cmake
file as a copy of Intel.cmake
to support the LLVM Intel compiler frontends
(Note - this has not been tested due to lack of system access.)Full Changelog: https://github.com/Goddard-Fortran-Ecosystem/gFTL/compare/v1.9.0...v1.10.0
Added Fortran-friendly iterator factories (and tests) to
ftn_begin()
and ftn_end()
have been added to vector, set, map,
and ordered_map templates. ftn_begin()
points to just-before the
1st element of a container, while ftn_end()
points to the last
element. This allows the next()
invocation to be at the start of the loop which
is less error prone in the presence of CYCLE
statements. Example usage:
type(Vector) :: v
type(VectorIterator) :: iter
...
associate (e => v%ftn_end())
iter = v%ftn_begin()
do while (iter /= e)
call iter%next()
...
if (<cond>) cycle ! does the right thing
...
end do
end associate
INTENT(IN)
for these interfaces.Fixed bug in vector::insert_range()
(needs a unit test)
Added TARGET
to some dummy arguments to prevent NAG from doing copy-in / copy-out. Seems to
have been causing a memory corruption issue with the yaFyaml package, but might indicate a bug
in yaFyaml (or gFTL).
Fixed non-standard-conforming mismatched integer KIND in deque implementation.
Fixed misspelling of SUCCESS
Various unused local variables that were causing annoying compiler warnings.
Reactivated unit tests (involving Foo) that were deactivated as a workaround for some NAG 7.1 compiler releases.
Patched (again) such that the assignment operator for Set invokes a deep copy. Previously I mistakenly thought that since the data structure now uses ALLOCATABLE components that Fortran intrinsic assignment would suffice. But forgot that the "parent" component is still a pointer. Failures from this assumption were subtle as often parents would point to correctly looking copies outside the intended data structure.
Missing RECURSIVE declarations on some procedures. The issue arises for YAML data structures where a map may contain items of the same map type and similarly for vectors.