GFTL Versions Save

Software containers for Fortran

v1.13.0

2 months ago

Fixed

  • Implemented workarounds for ifx compiler and v1 interfaces. v2 tests were fine.
    1. Removed previous workaround for older Intel compilers that did not support polymorphic assignment.
    2. Introduced workaround for comparing polymorphic pointers for Set and altSet

Changed

  • Removed macos-11 from CI, added macos-13
  • Added -quiet flag for NAG compiler
  • Removed stray print statements in tests.

v1.12.0

2 months ago

Added

  • Fujitsu compiler support

Fixed

  • (#211) Fixed bug in implementation of erase(first, last) for vector & deque containers. When the range was empty, then some cases would erronously call MOVE_ALLOC(x,x) which is illegal.

v1.11.0

6 months ago

Added

  • Introduced new preprocessing options to disable override of assignment(=) in v2 map and set templates. This is to workaround a case where intel compiler is producing erroneous results. Disabling everywhere is too risky.

Changed

  • Behavior of at(key) (without rc) now will not extend the map. This change may be reverted if it breaks any downstream projects.
  • Remove Ubuntu 20 and gfortran-9 from CI

Fixed

  • Add -check nouninit for Intel LLVM to work around ifx bug.

v1.10.0

1 year ago

Added

  • Added 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.)

What's Changed

Full Changelog: https://github.com/Goddard-Fortran-Ecosystem/gFTL/compare/v1.9.0...v1.10.0

v1.9.0

1 year ago

Added

  • 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
    

v1.8.3

1 year ago

Fixed

  • Missing KIND= on size() procedure. Gave incorrect response for large containers. Only affects V1 containers.

v1.8.2

1 year ago

Fixed

  • Fix issues with GNU Make builds

v1.8.1

1 year ago

Fixed

  • Prevented some macro redefinitions in v1/map.inc that caused warning messages and broke documentation tool on downstream projects.

v1.8.0

2 years ago

Changed

  • Interfaces (intents) to map::at() and ordered_map::at(). The self object should be INTENT(IN) for these interfaces.
  • Updated GitHub Actions
    • OSs
      • Remove macos-10.15
      • Add ubuntu-22.04 and macos-12
    • Compilers
    • Removed gfortran-8
    • Added gfortran-11
    • Added gfortran-12 (for ubuntu-22.04)

Fixed

  • 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

Removed

  • 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.

v1.7.2

2 years ago

Fixed

  • 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.

Added

  • A verify() method was added to several containers to aid in debugging some of the problems mentioned above. Users of gFTL should not use this method - its interface may change and the procedure may even disappear in later releases.