Releases: Goddard-Fortran-Ecosystem/gFTL
v1.5.0
This will be the final (non bugfix) release of version 1.
Future version 2 releases will break backwards compatibility by making
the v2 containers default, but v1 containers will still be accessible with
minimal changes.
Documentation for v2 containers should be completed soon, but as
always, the comparable C++ STL documentation is generally quite close
modulo Fortran syntax.
Fixed
- Added support for compiling on Windows with Intel compiler.
- Corrected uninitialized value problem with v2 maps. Detected
by NAG with aggressive debug flags. - Corrected logic for default value for vectors of (polymorphic)
abstract objects. - Corrected logic for standard GFortran workarounds for fHamcrest tests.
Changed
- Simplified various expressions involving type operations. Intel 2021.1 was choking
on an external use case but seems happier if intemediate variables are introduced
within expressions involving user defined==
and<
. Some attempt was made to use
ASSOCIATE
instead, but NAG 7.0 had trouble with one of those. A reproducer for
the Intel problem has been created and will be submitted. - Set container now uses ALLOCATABLE for children rather than pointers. This makes
some internal algorithms a bit painful to implement, but avoids the need for explicit
FINAL methods which appear to expose buggy compilers. (Hard to isolate though.)
Deleted
- Deleted altSet support in v2 containers. This was always intendend
as a workaround for limitations in FINAL implementation by various
compilers. But v2 set now uses allocatable containers and sidesteps
this. (Also, altset was never completed in v2 containers anyway.)
Bug fix
Introducing v2 interfaces
This release introduces a 2nd set of interfaces for existing containers, as well as a slew of new containers. The new interfaces are intended to be even closer to the STL standard, but are not backwards compatible with v1.
v1 interfaces remain the default, but users can now link against GFTL::gftl-v2 to use the new interfaces. Users can also explicitly link with GFTL::gftl-v1 to insulate against changes when v2 becomes the default in release v2.0.
Comments on how to further improve the consistency with STL interfaces are strongly encouraged. We will also welcome contributions to the API documentation. Prototypes are in ./include/v2/vector/vector.md
and ./include/v2/map.md
.
Backport of intel workaround
Weird case of 132 columns mattering.
Fix for using CMake namespace in exports
gFTL now uses CMake namespaces. Upstream projects should now link with
GFTL::gftl
instead of gftl
. Technically a backward incompatibility, but
does not seem serious enough to warrant a major release.
Compiler workaround workaround
Undoing previous commit. Caused insidious downstream issues with 18.0.5. Better to just kludge the failing test and move on.
Compiler workarounds
Fixed one more test that was missed in previous update. (Was using -f filter to focus on some failing tests. Blinded to thore tests.)
Minor bug fix
Eliminated a stray in source code.
Workaround for PGI compiler
v1.2.3 Merge pull request #91 from Goddard-Fortran-Ecosystem/feature/pgi-wor…